Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
Your Cashier
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
Ahmad Abi Mulya
Your Cashier
Commits
bc11d54b
Commit
bc11d54b
authored
Sep 03, 2020
by
Ahmad Abi Mulya
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://git.mdd.co.id:44195/abimulya/your-cashier
parents
c9f33120
59062a52
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
401 additions
and
33 deletions
+401
-33
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+4
-1
CartActivity.java
.../com/example/yourcashiertest/activities/CartActivity.java
+32
-4
MainActivity.java
.../com/example/yourcashiertest/activities/MainActivity.java
+1
-3
OrderActivity.java
...com/example/yourcashiertest/activities/OrderActivity.java
+7
-0
OrderDetailActivity.java
...ample/yourcashiertest/activities/OrderDetailActivity.java
+37
-0
PaymentActivity.java
...m/example/yourcashiertest/activities/PaymentActivity.java
+25
-6
OrderAdapter.java
...va/com/example/yourcashiertest/adapters/OrderAdapter.java
+2
-1
OrderDetailAdapter.java
.../example/yourcashiertest/adapters/OrderDetailAdapter.java
+72
-0
OrderDetailDao.java
...java/com/example/yourcashiertest/daos/OrderDetailDao.java
+6
-0
DBHelper.java
.../java/com/example/yourcashiertest/databases/DBHelper.java
+9
-3
LocalDatabase.java
.../com/example/yourcashiertest/databases/LocalDatabase.java
+10
-2
Transaksi.java
.../java/com/example/yourcashiertest/entities/Transaksi.java
+31
-1
ProductRepository.java
...ample/yourcashiertest/repositories/ProductRepository.java
+4
-0
Convert.java
.../main/java/com/example/yourcashiertest/utils/Convert.java
+9
-0
ProductViewModel.java
.../example/yourcashiertest/viewmodels/ProductViewModel.java
+4
-0
activity_order_detail.xml
app/src/main/res/layout/activity_order_detail.xml
+37
-0
cart_item.xml
app/src/main/res/layout/cart_item.xml
+3
-3
item_order.xml
app/src/main/res/layout/item_order.xml
+21
-8
order_detail_item.xml
app/src/main/res/layout/order_detail_item.xml
+86
-0
styles.xml
app/src/main/res/values/styles.xml
+1
-1
No files found.
app/src/main/AndroidManifest.xml
View file @
bc11d54b
...
@@ -20,11 +20,14 @@
...
@@ -20,11 +20,14 @@
android:roundIcon=
"@mipmap/ic_launcher_round"
android:roundIcon=
"@mipmap/ic_launcher_round"
android:supportsRtl=
"true"
android:supportsRtl=
"true"
android:theme=
"@style/AppTheme2"
>
android:theme=
"@style/AppTheme2"
>
<activity
android:name=
".activities.OrderDetailActivity"
></activity>
<receiver
android:name=
".activities.InetChecker"
>
<receiver
android:name=
".activities.InetChecker"
>
<intent-filter>
<intent-filter>
<action
android:name=
"android.net.conn.CONNECTIVITY_CHANGE"
/>
<action
android:name=
"android.net.conn.CONNECTIVITY_CHANGE"
/>
</intent-filter>
</intent-filter>
</receiver>
</receiver>
<activity
android:name=
".activities.OrderActivity"
/>
<activity
android:name=
".activities.OrderActivity"
/>
<activity
<activity
android:name=
".activities.SkActivity"
android:name=
".activities.SkActivity"
...
...
app/src/main/java/com/example/yourcashiertest/activities/CartActivity.java
View file @
bc11d54b
...
@@ -2,7 +2,6 @@ package com.example.yourcashiertest.activities;
...
@@ -2,7 +2,6 @@ package com.example.yourcashiertest.activities;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.lifecycle.Observer
;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
...
@@ -10,7 +9,6 @@ import android.annotation.SuppressLint;
...
@@ -10,7 +9,6 @@ import android.annotation.SuppressLint;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.util.Log
;
import
android.util.Log
;
import
android.view.View
;
import
android.widget.Toast
;
import
android.widget.Toast
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.R
;
...
@@ -19,10 +17,12 @@ import com.example.yourcashiertest.databases.DBHelper;
...
@@ -19,10 +17,12 @@ import com.example.yourcashiertest.databases.DBHelper;
import
com.example.yourcashiertest.databinding.ActivityCartBinding
;
import
com.example.yourcashiertest.databinding.ActivityCartBinding
;
import
com.example.yourcashiertest.databinding.CartItemBinding
;
import
com.example.yourcashiertest.databinding.CartItemBinding
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.OrderDetail
;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
com.example.yourcashiertest.utils.Convert
;
import
com.example.yourcashiertest.utils.Convert
;
import
com.example.yourcashiertest.viewmodels.CartViewModel
;
import
com.example.yourcashiertest.viewmodels.CartViewModel
;
import
com.example.yourcashiertest.viewmodels.OrderDetailVM
;
import
com.example.yourcashiertest.viewmodels.ProductViewModel
;
import
com.example.yourcashiertest.viewmodels.ProductViewModel
;
import
com.example.yourcashiertest.viewmodels.TransaksiViewModel
;
import
com.example.yourcashiertest.viewmodels.TransaksiViewModel
;
...
@@ -40,6 +40,7 @@ public class CartActivity extends AppCompatActivity {
...
@@ -40,6 +40,7 @@ public class CartActivity extends AppCompatActivity {
ProductViewModel
productViewModel
;
ProductViewModel
productViewModel
;
TransaksiViewModel
transaksiViewModel
;
TransaksiViewModel
transaksiViewModel
;
CartViewModel
cartViewModel
;
CartViewModel
cartViewModel
;
OrderDetailVM
orderDetailVM
;
List
<
Cart
>
cartList
=
new
ArrayList
<>();
List
<
Cart
>
cartList
=
new
ArrayList
<>();
...
@@ -56,7 +57,7 @@ public class CartActivity extends AppCompatActivity {
...
@@ -56,7 +57,7 @@ public class CartActivity extends AppCompatActivity {
product
=
new
Product
();
product
=
new
Product
();
transaksiViewModel
=
new
ViewModelProvider
(
this
).
get
(
TransaksiViewModel
.
class
);
transaksiViewModel
=
new
ViewModelProvider
(
this
).
get
(
TransaksiViewModel
.
class
);
orderDetailVM
=
new
ViewModelProvider
(
this
).
get
(
OrderDetailVM
.
class
);
cartViewModel
=
new
ViewModelProvider
(
this
).
get
(
CartViewModel
.
class
);
cartViewModel
=
new
ViewModelProvider
(
this
).
get
(
CartViewModel
.
class
);
cartViewModel
.
getCarts
().
observe
(
this
,
carts
->
{
cartViewModel
.
getCarts
().
observe
(
this
,
carts
->
{
adapter
.
setCartList
(
carts
);
adapter
.
setCartList
(
carts
);
...
@@ -120,16 +121,43 @@ public class CartActivity extends AppCompatActivity {
...
@@ -120,16 +121,43 @@ public class CartActivity extends AppCompatActivity {
}
}
public
void
saveTransaction
(
int
amount
)
{
public
void
saveTransaction
(
int
amount
)
{
Transaksi
transaksi
=
new
Transaksi
(
0
,
""
);
Transaksi
transaksi
=
new
Transaksi
(
0
,
""
,
""
,
""
);
transaksi
.
setAmount
(
amount
);
transaksi
.
setAmount
(
amount
);
transaksi
.
setStatus
(
"Pending"
);
transaksi
.
setStatus
(
"Pending"
);
transaksi
.
setPaymentType
(
""
);
transaksi
.
setCreatedAt
(
Convert
.
DateNow
());
transaksiViewModel
.
insertTransaksi
(
transaksi
);
transaksiViewModel
.
insertTransaksi
(
transaksi
);
getOrderList
();
cartViewModel
.
clear
();
cartViewModel
.
clear
();
finish
();
finish
();
startActivity
(
new
Intent
(
CartActivity
.
this
,
OrderActivity
.
class
));
startActivity
(
new
Intent
(
CartActivity
.
this
,
OrderActivity
.
class
));
Toast
.
makeText
(
getApplicationContext
(),
"Please Continue Payment"
,
Toast
.
LENGTH_LONG
).
show
();
Toast
.
makeText
(
getApplicationContext
(),
"Please Continue Payment"
,
Toast
.
LENGTH_LONG
).
show
();
}
}
private
void
getOrderList
()
{
cartViewModel
.
getCarts
().
observe
(
this
,
this
::
createOrderDetail
);
}
private
void
createOrderDetail
(
List
<
Cart
>
carts
)
{
for
(
int
i
=
0
;
i
<
carts
.
size
();
i
++){
OrderDetail
orderDetail
=
new
OrderDetail
(
0
,
0
,
0
,
0
);
orderDetail
.
setOrderId
(
getIdOrder
());
orderDetail
.
setPrice
(
carts
.
get
(
i
).
getPrice
());
orderDetail
.
setProductId
(
carts
.
get
(
i
).
getIdProduct
());
orderDetail
.
setQty
(
carts
.
get
(
i
).
getQty
());
orderDetailVM
.
insertOrderDetail
(
orderDetail
);
}
}
private
long
getIdOrder
(){
List
<
Transaksi
>
orders
=
DBHelper
.
getAllTransaksi
(
getApplicationContext
());
Transaksi
order
;
if
(
orders
.
size
()
==
0
)
order
=
orders
.
get
(
0
);
else
order
=
orders
.
get
(
orders
.
size
()
-
1
);
Log
.
d
(
"OrderId"
,
String
.
valueOf
(
order
.
getOrderId
()));
return
order
.
getOrderId
();
}
@Override
@Override
protected
void
onDestroy
()
{
protected
void
onDestroy
()
{
super
.
onDestroy
();
super
.
onDestroy
();
...
...
app/src/main/java/com/example/yourcashiertest/activities/MainActivity.java
View file @
bc11d54b
...
@@ -6,7 +6,6 @@ import androidx.appcompat.app.AppCompatActivity;
...
@@ -6,7 +6,6 @@ import androidx.appcompat.app.AppCompatActivity;
import
androidx.databinding.DataBindingUtil
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.room.FtsOptions
;
import
android.Manifest
;
import
android.Manifest
;
...
@@ -19,7 +18,7 @@ import android.os.Bundle;
...
@@ -19,7 +18,7 @@ import android.os.Bundle;
import
android.text.Editable
;
import
android.text.Editable
;
import
android.text.TextWatcher
;
import
android.text.TextWatcher
;
import
android.view.View
;
import
android.util.Log
;
import
android.util.Log
;
import
android.widget.PopupMenu
;
import
android.widget.PopupMenu
;
import
android.widget.Toast
;
import
android.widget.Toast
;
...
@@ -60,7 +59,6 @@ public class MainActivity extends AppCompatActivity {
...
@@ -60,7 +59,6 @@ public class MainActivity extends AppCompatActivity {
CartViewModel
cartViewModel
;
CartViewModel
cartViewModel
;
boolean
added
=
false
;
boolean
added
=
false
;
@RequiresApi
(
api
=
Build
.
VERSION_CODES
.
N
)
@SuppressLint
(
"WrongConstant"
)
@SuppressLint
(
"WrongConstant"
)
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
...
...
app/src/main/java/com/example/yourcashiertest/activities/OrderActivity.java
View file @
bc11d54b
...
@@ -17,6 +17,7 @@ import com.example.yourcashiertest.R;
...
@@ -17,6 +17,7 @@ import com.example.yourcashiertest.R;
import
com.example.yourcashiertest.adapters.OrderAdapter
;
import
com.example.yourcashiertest.adapters.OrderAdapter
;
import
com.example.yourcashiertest.databases.DBHelper
;
import
com.example.yourcashiertest.databases.DBHelper
;
import
com.example.yourcashiertest.databinding.ActivityOrderBinding
;
import
com.example.yourcashiertest.databinding.ActivityOrderBinding
;
import
com.example.yourcashiertest.entities.OrderDetail
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
com.example.yourcashiertest.viewmodels.TransaksiViewModel
;
import
com.example.yourcashiertest.viewmodels.TransaksiViewModel
;
import
com.google.android.material.dialog.MaterialAlertDialogBuilder
;
import
com.google.android.material.dialog.MaterialAlertDialogBuilder
;
...
@@ -75,6 +76,12 @@ public class OrderActivity extends AppCompatActivity {
...
@@ -75,6 +76,12 @@ public class OrderActivity extends AppCompatActivity {
startActivity
(
new
Intent
(
OrderActivity
.
this
,
PaymentActivity
.
class
)
startActivity
(
new
Intent
(
OrderActivity
.
this
,
PaymentActivity
.
class
)
.
putExtra
(
PaymentActivity
.
DATA_PENDING
,
transaksi
));
.
putExtra
(
PaymentActivity
.
DATA_PENDING
,
transaksi
));
}
}
@Override
public
void
onClickItem
(
Transaksi
transaksi
)
{
startActivity
(
new
Intent
(
OrderActivity
.
this
,
OrderDetailActivity
.
class
)
.
putExtra
(
OrderDetailActivity
.
ORDER_ID
,
transaksi
.
getOrderId
()));
}
});
});
}
}
...
...
app/src/main/java/com/example/yourcashiertest/activities/OrderDetailActivity.java
0 → 100644
View file @
bc11d54b
package
com
.
example
.
yourcashiertest
.
activities
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
android.os.Bundle
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.adapters.OrderDetailAdapter
;
import
com.example.yourcashiertest.databases.DBHelper
;
import
com.example.yourcashiertest.databinding.ActivityOrderDetailBinding
;
import
com.example.yourcashiertest.entities.OrderDetail
;
import
com.example.yourcashiertest.entities.Product
;
import
java.util.List
;
public
class
OrderDetailActivity
extends
AppCompatActivity
{
ActivityOrderDetailBinding
binding
;
OrderDetailAdapter
adapter
;
static
final
String
ORDER_ID
=
"order_id"
;
static
Product
productDetail
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
binding
=
DataBindingUtil
.
setContentView
(
this
,
R
.
layout
.
activity_order_detail
);
adapter
=
new
OrderDetailAdapter
();
binding
.
rvDetailOrder
.
setLayoutManager
(
new
LinearLayoutManager
(
this
));
binding
.
rvDetailOrder
.
setAdapter
(
adapter
);
long
orderId
=
getIntent
().
getLongExtra
(
ORDER_ID
,
0
);
List
<
OrderDetail
>
orderDetails
=
DBHelper
.
getDetailOrders
(
getApplicationContext
(),
orderId
);
adapter
.
setOrderDetails
(
orderDetails
);
}
}
\ No newline at end of file
app/src/main/java/com/example/yourcashiertest/activities/PaymentActivity.java
View file @
bc11d54b
...
@@ -3,6 +3,7 @@ package com.example.yourcashiertest.activities;
...
@@ -3,6 +3,7 @@ package com.example.yourcashiertest.activities;
import
androidx.annotation.RequiresApi
;
import
androidx.annotation.RequiresApi
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.lifecycle.Observer
;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.lifecycle.ViewModelProvider
;
import
android.annotation.SuppressLint
;
import
android.annotation.SuppressLint
;
...
@@ -20,12 +21,14 @@ import com.example.yourcashiertest.adapters.PaymentAdapter;
...
@@ -20,12 +21,14 @@ import com.example.yourcashiertest.adapters.PaymentAdapter;
import
com.example.yourcashiertest.databases.DBHelper
;
import
com.example.yourcashiertest.databases.DBHelper
;
import
com.example.yourcashiertest.databinding.ActivityPaymentBinding
;
import
com.example.yourcashiertest.databinding.ActivityPaymentBinding
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.OrderDetail
;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
com.example.yourcashiertest.models.ResponsePayment
;
import
com.example.yourcashiertest.models.ResponsePayment
;
import
com.example.yourcashiertest.utils.Convert
;
import
com.example.yourcashiertest.utils.Convert
;
import
com.example.yourcashiertest.utils.ViewUtil
;
import
com.example.yourcashiertest.utils.ViewUtil
;
import
com.example.yourcashiertest.viewmodels.CartViewModel
;
import
com.example.yourcashiertest.viewmodels.CartViewModel
;
import
com.example.yourcashiertest.viewmodels.OrderDetailVM
;
import
com.example.yourcashiertest.viewmodels.ProductViewModel
;
import
com.example.yourcashiertest.viewmodels.ProductViewModel
;
import
com.example.yourcashiertest.viewmodels.TransaksiViewModel
;
import
com.example.yourcashiertest.viewmodels.TransaksiViewModel
;
...
@@ -33,7 +36,6 @@ import java.util.ArrayList;
...
@@ -33,7 +36,6 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Stream
;
import
java.util.stream.Stream
;
//@RequiresApi(api = Build.VERSION_CODES.N)
public
class
PaymentActivity
extends
AppCompatActivity
{
public
class
PaymentActivity
extends
AppCompatActivity
{
ActivityPaymentBinding
binding
;
ActivityPaymentBinding
binding
;
...
@@ -44,6 +46,7 @@ public class PaymentActivity extends AppCompatActivity {
...
@@ -44,6 +46,7 @@ public class PaymentActivity extends AppCompatActivity {
CartViewModel
cartViewModel
;
CartViewModel
cartViewModel
;
ProductViewModel
viewModel
;
ProductViewModel
viewModel
;
TransaksiViewModel
payViewModel
;
TransaksiViewModel
payViewModel
;
OrderDetailVM
orderDetailVM
;
public
static
final
String
PAY_WITH
=
"pay_with"
;
public
static
final
String
PAY_WITH
=
"pay_with"
;
private
ArrayList
<
ResponsePayment
>
responsePayments
=
new
ArrayList
<>();
private
ArrayList
<
ResponsePayment
>
responsePayments
=
new
ArrayList
<>();
static
final
String
DATA_PENDING
=
"data_pending"
;
static
final
String
DATA_PENDING
=
"data_pending"
;
...
@@ -58,7 +61,10 @@ public class PaymentActivity extends AppCompatActivity {
...
@@ -58,7 +61,10 @@ public class PaymentActivity extends AppCompatActivity {
payViewModel
=
new
ViewModelProvider
(
this
).
get
(
TransaksiViewModel
.
class
);
payViewModel
=
new
ViewModelProvider
(
this
).
get
(
TransaksiViewModel
.
class
);
cartViewModel
=
new
ViewModelProvider
(
this
).
get
(
CartViewModel
.
class
);
cartViewModel
=
new
ViewModelProvider
(
this
).
get
(
CartViewModel
.
class
);
orderDetailVM
=
new
ViewModelProvider
(
this
).
get
(
OrderDetailVM
.
class
);
viewModel
=
new
ViewModelProvider
(
this
).
get
(
ProductViewModel
.
class
);
viewModel
=
new
ViewModelProvider
(
this
).
get
(
ProductViewModel
.
class
);
amount
=
getIntent
().
getIntExtra
(
CartActivity
.
PRICE
,
0
);
amount
=
getIntent
().
getIntExtra
(
CartActivity
.
PRICE
,
0
);
responsePayments
.
add
(
new
ResponsePayment
(
"https://i.ibb.co/yfcFMHc/undraw-wallet-aym5.png"
,
"Cash"
));
responsePayments
.
add
(
new
ResponsePayment
(
"https://i.ibb.co/yfcFMHc/undraw-wallet-aym5.png"
,
"Cash"
));
responsePayments
.
add
(
new
ResponsePayment
(
"https://i.ibb.co/qNnKh5n/undraw-Credit-card-re-blml.png"
,
"Card"
));
responsePayments
.
add
(
new
ResponsePayment
(
"https://i.ibb.co/qNnKh5n/undraw-Credit-card-re-blml.png"
,
"Card"
));
...
@@ -128,18 +134,31 @@ public class PaymentActivity extends AppCompatActivity {
...
@@ -128,18 +134,31 @@ public class PaymentActivity extends AppCompatActivity {
}
}
private
void
createTransaksi
(
int
amount
)
{
private
void
createTransaksi
(
int
amount
)
{
Transaksi
transaksi
=
new
Transaksi
(
0
,
""
);
Transaksi
transaksi
=
new
Transaksi
(
0
,
""
,
""
,
""
);
transaksi
.
setAmount
(
amount
);
transaksi
.
setAmount
(
amount
);
transaksi
.
setStatus
(
"Success"
);
transaksi
.
setStatus
(
"Success"
);
transaksi
.
setPaymentType
(
paymentMethod
);
transaksi
.
setCreatedAt
(
Convert
.
DateNow
());
payViewModel
.
insertTransaksi
(
transaksi
);
payViewModel
.
insertTransaksi
(
transaksi
);
// createDetailOrder
();
getOrderList
();
}
}
private
void
createDetailOrder
()
{
private
void
getOrderList
()
{
Toast
.
makeText
(
getApplicationContext
(),
String
.
valueOf
(
getOrderId
()),
Toast
.
LENGTH_LONG
).
show
();
cartViewModel
.
getCarts
().
observe
(
this
,
this
::
createOrderDetail
);
}
private
void
createOrderDetail
(
List
<
Cart
>
carts
)
{
for
(
int
i
=
0
;
i
<
carts
.
size
();
i
++){
OrderDetail
orderDetail
=
new
OrderDetail
(
0
,
0
,
0
,
0
);
orderDetail
.
setOrderId
(
getIdOrder
());
orderDetail
.
setPrice
(
carts
.
get
(
i
).
getPrice
());
orderDetail
.
setProductId
(
carts
.
get
(
i
).
getIdProduct
());
orderDetail
.
setQty
(
carts
.
get
(
i
).
getQty
());
orderDetailVM
.
insertOrderDetail
(
orderDetail
);
}
}
}
private
long
get
OrderId
(){
private
long
get
IdOrder
(){
List
<
Transaksi
>
orders
=
DBHelper
.
getAllTransaksi
(
getApplicationContext
());
List
<
Transaksi
>
orders
=
DBHelper
.
getAllTransaksi
(
getApplicationContext
());
Transaksi
order
;
Transaksi
order
;
if
(
orders
.
size
()
==
0
)
order
=
orders
.
get
(
0
);
if
(
orders
.
size
()
==
0
)
order
=
orders
.
get
(
0
);
...
...
app/src/main/java/com/example/yourcashiertest/adapters/OrderAdapter.java
View file @
bc11d54b
package
com
.
example
.
yourcashiertest
.
adapters
;
package
com
.
example
.
yourcashiertest
.
adapters
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewGroup
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
...
@@ -23,6 +22,7 @@ public class OrderAdapter extends RecyclerView.Adapter<OrderAdapter.ViewHolder>
...
@@ -23,6 +22,7 @@ public class OrderAdapter extends RecyclerView.Adapter<OrderAdapter.ViewHolder>
public
interface
TransaksiListener
{
public
interface
TransaksiListener
{
void
onCancel
(
Transaksi
transaksi
);
void
onCancel
(
Transaksi
transaksi
);
void
onContinue
(
Transaksi
transaksi
);
void
onContinue
(
Transaksi
transaksi
);
void
onClickItem
(
Transaksi
transaksi
);
}
}
private
TransaksiListener
listener
;
private
TransaksiListener
listener
;
...
@@ -78,6 +78,7 @@ public class OrderAdapter extends RecyclerView.Adapter<OrderAdapter.ViewHolder>
...
@@ -78,6 +78,7 @@ public class OrderAdapter extends RecyclerView.Adapter<OrderAdapter.ViewHolder>
}
else
binding
.
setVisibility
(
true
);
}
else
binding
.
setVisibility
(
true
);
binding
.
btnCancel
.
setOnClickListener
(
view
->
listener
.
onCancel
(
transaksi
));
binding
.
btnCancel
.
setOnClickListener
(
view
->
listener
.
onCancel
(
transaksi
));
binding
.
btnContinue
.
setOnClickListener
(
view
->
listener
.
onContinue
(
transaksi
));
binding
.
btnContinue
.
setOnClickListener
(
view
->
listener
.
onContinue
(
transaksi
));
binding
.
getRoot
().
setOnClickListener
(
view
->
listener
.
onClickItem
(
transaksi
));
}
}
}
}
}
}
app/src/main/java/com/example/yourcashiertest/adapters/OrderDetailAdapter.java
0 → 100644
View file @
bc11d54b
package
com
.
example
.
yourcashiertest
.
adapters
;
import
android.content.Context
;
import
android.view.LayoutInflater
;
import
android.view.ViewGroup
;
import
androidx.annotation.NonNull
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.databases.DBHelper
;
import
com.example.yourcashiertest.databinding.OrderDetailItemBinding
;
import
com.example.yourcashiertest.entities.OrderDetail
;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.utils.Convert
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
OrderDetailAdapter
extends
RecyclerView
.
Adapter
<
OrderDetailAdapter
.
ViewHolder
>
{
List
<
OrderDetail
>
orderDetails
=
new
ArrayList
<>();
private
Context
context
;
public
void
setOrderDetails
(
List
<
OrderDetail
>
orderDetails
)
{
this
.
orderDetails
=
orderDetails
;
notifyDataSetChanged
();
}
@NonNull
@Override
public
ViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
context
=
parent
.
getContext
();
return
new
OrderDetailAdapter
.
ViewHolder
(
DataBindingUtil
.
inflate
(
LayoutInflater
.
from
(
parent
.
getContext
()),
R
.
layout
.
order_detail_item
,
parent
,
false
)
);
}
@Override
public
void
onBindViewHolder
(
@NonNull
ViewHolder
holder
,
int
position
)
{
holder
.
bindData
(
orderDetails
.
get
(
position
));
}
@Override
public
int
getItemCount
()
{
return
orderDetails
.
size
();
}
public
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
OrderDetailItemBinding
binding
;
public
ViewHolder
(
@NonNull
OrderDetailItemBinding
binding
)
{
super
(
binding
.
getRoot
());
this
.
binding
=
binding
;
}
public
void
bindData
(
OrderDetail
orderDetail
){
binding
.
setOrderDetail
(
orderDetail
);
Product
productDetail
=
DBHelper
.
getProductById
(
context
,
(
int
)
orderDetail
.
getProductId
());
binding
.
setProductDetail
(
productDetail
);
binding
.
setPrice
(
Convert
.
changeToCurrency
(
orderDetail
.
getPrice
()));
}
}
}
app/src/main/java/com/example/yourcashiertest/daos/OrderDetailDao.java
View file @
bc11d54b
...
@@ -3,12 +3,18 @@ package com.example.yourcashiertest.daos;
...
@@ -3,12 +3,18 @@ package com.example.yourcashiertest.daos;
import
androidx.room.Dao
;
import
androidx.room.Dao
;
import
androidx.room.Insert
;
import
androidx.room.Insert
;
import
androidx.room.OnConflictStrategy
;
import
androidx.room.OnConflictStrategy
;
import
androidx.room.Query
;
import
com.example.yourcashiertest.entities.OrderDetail
;
import
com.example.yourcashiertest.entities.OrderDetail
;
import
java.util.List
;
@Dao
@Dao
public
interface
OrderDetailDao
{
public
interface
OrderDetailDao
{
@Query
(
"SELECT * FROM OrderDetail WHERE orderId =:orderId"
)
List
<
OrderDetail
>
getOrderDetail
(
long
orderId
);
@Insert
(
onConflict
=
OnConflictStrategy
.
IGNORE
)
@Insert
(
onConflict
=
OnConflictStrategy
.
IGNORE
)
void
insertOrderDetail
(
OrderDetail
orderDetail
);
void
insertOrderDetail
(
OrderDetail
orderDetail
);
...
...
app/src/main/java/com/example/yourcashiertest/databases/DBHelper.java
View file @
bc11d54b
...
@@ -2,13 +2,12 @@ package com.example.yourcashiertest.databases;
...
@@ -2,13 +2,12 @@ package com.example.yourcashiertest.databases;
import
android.content.Context
;
import
android.content.Context
;
import
androidx.lifecycle.LiveData
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.OrderDetail
;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
com.example.yourcashiertest.utils.Convert
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
public
class
DBHelper
{
public
class
DBHelper
{
...
@@ -38,4 +37,11 @@ public class DBHelper {
...
@@ -38,4 +37,11 @@ public class DBHelper {
list
=
db
.
transaksiDao
().
getTransaksi
();
list
=
db
.
transaksiDao
().
getTransaksi
();
return
list
;
return
list
;
}
}
public
static
List
<
OrderDetail
>
getDetailOrders
(
Context
context
,
long
orderId
){
List
<
OrderDetail
>
list
;
LocalDatabase
db
=
LocalDatabase
.
getDatabase
(
context
);
list
=
db
.
orderDetail
().
getOrderDetail
(
orderId
);
return
list
;
}
}
}
app/src/main/java/com/example/yourcashiertest/databases/LocalDatabase.java
View file @
bc11d54b
...
@@ -24,7 +24,7 @@ import com.example.yourcashiertest.entities.Transaksi;
...
@@ -24,7 +24,7 @@ import com.example.yourcashiertest.entities.Transaksi;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.Executors
;
@Database
(
entities
=
{
Product
.
class
,
Cart
.
class
,
Transaksi
.
class
,
OrderDetail
.
class
},
version
=
6
,
exportSchema
=
false
)
@Database
(
entities
=
{
Product
.
class
,
Cart
.
class
,
Transaksi
.
class
,
OrderDetail
.
class
},
version
=
7
,
exportSchema
=
false
)
public
abstract
class
LocalDatabase
extends
RoomDatabase
{
public
abstract
class
LocalDatabase
extends
RoomDatabase
{
public
abstract
ProductDao
productDao
();
public
abstract
ProductDao
productDao
();
...
@@ -77,6 +77,13 @@ public abstract class LocalDatabase extends RoomDatabase {
...
@@ -77,6 +77,13 @@ public abstract class LocalDatabase extends RoomDatabase {
}
}
};
};
public
static
final
Migration
MIGRATION_6_7
=
new
Migration
(
6
,
7
)
{
@Override
public
void
migrate
(
@NonNull
SupportSQLiteDatabase
database
)
{
database
.
execSQL
(
"ALTER TABLE Transaksi ADD COLUMN paymentType TEXT NOT NULL DEFAULT '' "
);
database
.
execSQL
(
"ALTER TABLE Transaksi ADD COLUMN createdAt TEXT NOT NULL DEFAULT '' "
);
}
};
public
static
LocalDatabase
getDatabase
(
Context
context
)
{
public
static
LocalDatabase
getDatabase
(
Context
context
)
{
if
(
INSTANCE
==
null
)
{
if
(
INSTANCE
==
null
)
{
...
@@ -84,7 +91,8 @@ public abstract class LocalDatabase extends RoomDatabase {
...
@@ -84,7 +91,8 @@ public abstract class LocalDatabase extends RoomDatabase {
if
(
INSTANCE
==
null
)
{
if
(
INSTANCE
==
null
)
{
INSTANCE
=
Room
.
databaseBuilder
(
context
.
getApplicationContext
(),
INSTANCE
=
Room
.
databaseBuilder
(
context
.
getApplicationContext
(),
LocalDatabase
.
class
,
"yourcashier_database"
)
LocalDatabase
.
class
,
"yourcashier_database"
)
.
addMigrations
(
MIGRATION_1_2
,
MIGRATION_2_3
,
MIGRATION_3_4
,
MIGRATION_4_5
,
MIGRATION_5_6
)
.
addMigrations
(
MIGRATION_1_2
,
MIGRATION_2_3
,
MIGRATION_3_4
,
MIGRATION_4_5
,
MIGRATION_5_6
,
MIGRATION_6_7
)
.
allowMainThreadQueries
()
.
allowMainThreadQueries
()
.
build
();
.
build
();
}
}
...
...
app/src/main/java/com/example/yourcashiertest/entities/Transaksi.java
View file @
bc11d54b
...
@@ -23,15 +23,27 @@ public class Transaksi implements Parcelable {
...
@@ -23,15 +23,27 @@ public class Transaksi implements Parcelable {
@ColumnInfo
(
name
=
"status"
)
@ColumnInfo
(
name
=
"status"
)
private
String
status
;
private
String
status
;
@NonNull
@ColumnInfo
(
name
=
"paymentType"
)
private
String
paymentType
;
@NonNull
@ColumnInfo
(
name
=
"createdAt"
)
private
String
createdAt
;
protected
Transaksi
(
Parcel
in
)
{
protected
Transaksi
(
Parcel
in
)
{
orderId
=
in
.
readLong
();
orderId
=
in
.
readLong
();
amount
=
in
.
readLong
();
amount
=
in
.
readLong
();
status
=
in
.
readString
();
status
=
in
.
readString
();
paymentType
=
in
.
readString
();
createdAt
=
in
.
readString
();
}
}
public
Transaksi
(
long
amount
,
String
status
){
public
Transaksi
(
long
amount
,
String
status
,
String
paymentType
,
String
createdAt
){
this
.
amount
=
amount
;
this
.
amount
=
amount
;
this
.
status
=
status
;
this
.
status
=
status
;
this
.
paymentType
=
paymentType
;
this
.
createdAt
=
createdAt
;
}
}
public
static
final
Creator
<
Transaksi
>
CREATOR
=
new
Creator
<
Transaksi
>()
{
public
static
final
Creator
<
Transaksi
>
CREATOR
=
new
Creator
<
Transaksi
>()
{
...
@@ -71,6 +83,22 @@ public class Transaksi implements Parcelable {
...
@@ -71,6 +83,22 @@ public class Transaksi implements Parcelable {
this
.
status
=
status
;
this
.
status
=
status
;
}
}
public
void
setPaymentType
(
String
paymentType
)
{
this
.
paymentType
=
paymentType
;
}
public
String
getPaymentType
()
{
return
paymentType
;
}
public
void
setCreatedAt
(
String
createdAt
)
{
this
.
createdAt
=
createdAt
;
}
public
String
getCreatedAt
()
{
return
createdAt
;
}
@Override
@Override
public
int
describeContents
()
{
public
int
describeContents
()
{
return
0
;
return
0
;
...
@@ -81,5 +109,7 @@ public class Transaksi implements Parcelable {
...
@@ -81,5 +109,7 @@ public class Transaksi implements Parcelable {
parcel
.
writeLong
(
orderId
);
parcel
.
writeLong
(
orderId
);
parcel
.
writeLong
(
amount
);
parcel
.
writeLong
(
amount
);
parcel
.
writeString
(
status
);
parcel
.
writeString
(
status
);
parcel
.
writeString
(
paymentType
);
parcel
.
writeString
(
createdAt
);
}
}
}
}
app/src/main/java/com/example/yourcashiertest/repositories/ProductRepository.java
View file @
bc11d54b
...
@@ -38,5 +38,9 @@ public class ProductRepository {
...
@@ -38,5 +38,9 @@ public class ProductRepository {
return
productDao
.
getFilteredProducts
(
s
);
return
productDao
.
getFilteredProducts
(
s
);
}
}
public
Product
getProductByid
(
long
id
){
return
productDao
.
getProductById
((
int
)
id
);
}
}
}
app/src/main/java/com/example/yourcashiertest/utils/Convert.java
View file @
bc11d54b
package
com
.
example
.
yourcashiertest
.
utils
;
package
com
.
example
.
yourcashiertest
.
utils
;
import
android.annotation.SuppressLint
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormatSymbols
;
import
java.text.DecimalFormatSymbols
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
public
class
Convert
{
public
class
Convert
{
public
static
String
changeToCurrency
(
long
totalPrice
){
public
static
String
changeToCurrency
(
long
totalPrice
){
...
@@ -16,4 +20,9 @@ public class Convert {
...
@@ -16,4 +20,9 @@ public class Convert {
return
priceRupiah
;
return
priceRupiah
;
}
}
@SuppressLint
(
"SimpleDateFormat"
)
public
static
String
DateNow
(){
return
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
new
Date
());
}
}
}
app/src/main/java/com/example/yourcashiertest/viewmodels/ProductViewModel.java
View file @
bc11d54b
...
@@ -72,4 +72,8 @@ public class ProductViewModel extends AndroidViewModel {
...
@@ -72,4 +72,8 @@ public class ProductViewModel extends AndroidViewModel {
public
MutableLiveData
<
Product
>
getProduct
()
{
public
MutableLiveData
<
Product
>
getProduct
()
{
return
product
;
return
product
;
}
}
public
Product
getProductById
(
long
id
){
return
repository
.
getProductByid
(
id
);
}
}
}
\ No newline at end of file
app/src/main/res/layout/activity_order_detail.xml
0 → 100644
View file @
bc11d54b
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
>
<data>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:padding=
"10dp"
tools:context=
".activities.OrderDetailActivity"
>
<TextView
android:id=
"@+id/tvDetailOrder"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:fontFamily=
"@font/wellfleet"
android:gravity=
"top"
android:text=
"Order Detail"
android:textAppearance=
"@style/payment"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_detail_order"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_marginTop=
"10dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/tvDetailOrder"
tools:layout_editor_absoluteX=
"10dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
app/src/main/res/layout/cart_item.xml
View file @
bc11d54b
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
<!-- Burger Medium -->
<!-- Burger Medium -->
<ImageView
<ImageView
android:id=
"@+id/im
ageView
"
android:id=
"@+id/im
g_product_detail
"
android:layout_width=
"107dp"
android:layout_width=
"107dp"
android:layout_height=
"0dp"
android:layout_height=
"0dp"
android:layout_margin=
"5dp"
android:layout_margin=
"5dp"
...
@@ -54,7 +54,7 @@
...
@@ -54,7 +54,7 @@
android:gravity=
"top"
android:gravity=
"top"
android:text=
"@{cartProduct.nameProduct}"
android:text=
"@{cartProduct.nameProduct}"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintStart_toEndOf=
"@+id/im
ageView
"
app:layout_constraintStart_toEndOf=
"@+id/im
g_product_detail
"
android:textAppearance=
"@style/burger_medi"
/>
android:textAppearance=
"@style/burger_medi"
/>
<TextView
<TextView
...
@@ -68,7 +68,7 @@
...
@@ -68,7 +68,7 @@
android:gravity=
"top"
android:gravity=
"top"
tools:text=
"@{price}"
tools:text=
"@{price}"
android:textAppearance=
"@style/some_id"
android:textAppearance=
"@style/some_id"
app:layout_constraintStart_toEndOf=
"@+id/im
ageView
"
app:layout_constraintStart_toEndOf=
"@+id/im
g_product_detail
"
app:layout_constraintTop_toBottomOf=
"@+id/burger_medi"
/>
app:layout_constraintTop_toBottomOf=
"@+id/burger_medi"
/>
<View
<View
...
...
app/src/main/res/layout/item_order.xml
View file @
bc11d54b
...
@@ -33,8 +33,8 @@
...
@@ -33,8 +33,8 @@
<TextView
<TextView
android:id=
"@+id/tvOrderNumber"
android:id=
"@+id/tvOrderNumber"
android:layout_width=
"
136dp
"
android:layout_width=
"
wrap_content
"
android:layout_height=
"
41dp
"
android:layout_height=
"
wrap_content
"
android:layout_marginStart=
"4dp"
android:layout_marginStart=
"4dp"
android:layout_marginTop=
"4dp"
android:layout_marginTop=
"4dp"
android:text=
"Order Number : "
android:text=
"Order Number : "
...
@@ -45,22 +45,24 @@
...
@@ -45,22 +45,24 @@
<TextView
<TextView
android:id=
"@+id/tvOrderId"
android:id=
"@+id/tvOrderId"
android:layout_width=
"
250dp
"
android:layout_width=
"
wrap_content
"
android:layout_height=
"
41
dp"
android:layout_height=
"
14
dp"
android:layout_marginStart=
"4dp"
android:layout_marginStart=
"4dp"
android:text=
"@{transaction.orderId + ``}"
android:text=
"@{transaction.orderId + ``}"
android:textAppearance=
"@style/some_id"
android:textAppearance=
"@style/some_id"
app:layout_constraintBottom_toBottomOf=
"@+id/tvOrderNumber"
app:layout_constraintBottom_toBottomOf=
"@+id/tvOrderNumber"
app:layout_constraintEnd_toStartOf=
"@+id/date"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toEndOf=
"@id/tvOrderNumber"
app:layout_constraintStart_toEndOf=
"@id/tvOrderNumber"
app:layout_constraintTop_toTopOf=
"@+id/tvOrderNumber"
/>
app:layout_constraintTop_toTopOf=
"@+id/tvOrderNumber"
/>
<TextView
<TextView
android:id=
"@+id/tvTotal"
android:id=
"@+id/tvTotal"
android:layout_width=
"
136dp
"
android:layout_width=
"
wrap_content
"
android:layout_height=
"
41dp
"
android:layout_height=
"
wrap_content
"
android:layout_marginStart=
"4dp"
android:layout_marginStart=
"4dp"
android:layout_marginTop=
"4dp"
android:layout_marginTop=
"4dp"
android:text=
"Total
:
"
android:text=
"Total
:
"
android:textAppearance=
"@style/burger_medi"
android:textAppearance=
"@style/burger_medi"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tvOrderNumber"
/>
app:layout_constraintTop_toBottomOf=
"@id/tvOrderNumber"
/>
...
@@ -68,7 +70,7 @@
...
@@ -68,7 +70,7 @@
<TextView
<TextView
android:id=
"@+id/tvAmount"
android:id=
"@+id/tvAmount"
android:layout_width=
"250dp"
android:layout_width=
"250dp"
android:layout_height=
"
41dp
"
android:layout_height=
"
wrap_content
"
android:layout_marginStart=
"4dp"
android:layout_marginStart=
"4dp"
android:text=
"@{amount}"
android:text=
"@{amount}"
android:textAppearance=
"@style/some_id"
android:textAppearance=
"@style/some_id"
...
@@ -117,6 +119,17 @@
...
@@ -117,6 +119,17 @@
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toEndOf=
"@id/btnContinue"
app:layout_constraintStart_toEndOf=
"@id/btnContinue"
app:layout_constraintTop_toBottomOf=
"@id/tvAmount"
/>
app:layout_constraintTop_toBottomOf=
"@id/tvAmount"
/>
<TextView
android:id=
"@+id/date"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:text=
"@{transaction.createdAt}"
android:layout_marginStart=
"50dp"
app:layout_constraintStart_toEndOf=
"@+id/tvOrderId"
app:layout_constraintBottom_toBottomOf=
"@+id/tvOrderId"
app:layout_constraintEnd_toEndOf=
"@id/btnCancel"
app:layout_constraintTop_toTopOf=
"@+id/tvOrderId"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</com.google.android.material.card.MaterialCardView>
...
...
app/src/main/res/layout/order_detail_item.xml
0 → 100644
View file @
bc11d54b
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
>
<data>
<variable
name=
"orderDetail"
type=
"com.example.yourcashiertest.entities.OrderDetail"
/>
<variable
name=
"productDetail"
type=
"com.example.yourcashiertest.entities.Product"
/>
<variable
name=
"price"
type=
"String"
/>
</data>
<com.google.android.material.card.MaterialCardView
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_margin=
"10dp"
app:cardElevation=
"3dp"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:padding=
"10dp"
android:layout_height=
"match_parent"
>
<ImageView
android:id=
"@+id/img_product_detail"
android:layout_width=
"120dp"
android:layout_height=
"130dp"
android:layout_margin=
"5dp"
android:scaleType=
"fitXY"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintVertical_bias=
"0.0"
app:file=
"@{productDetail.photo}"
tools:srcCompat=
"@tools:sample/avatars"
/>
<TextView
android:id=
"@+id/name_product"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@{productDetail.name}"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.163"
app:layout_constraintStart_toEndOf=
"@id/img_product_detail"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintVertical_bias=
"0.106"
/>
<TextView
android:id=
"@+id/qty_order"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@{orderDetail.qty + ``}"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"@+id/name_product"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"@+id/name_product"
app:layout_constraintTop_toBottomOf=
"@+id/name_product"
app:layout_constraintVertical_bias=
"0.209"
/>
<TextView
android:id=
"@+id/price"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@{price}"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"@+id/qty_order"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"@+id/qty_order"
app:layout_constraintTop_toBottomOf=
"@+id/qty_order"
app:layout_constraintVertical_bias=
"0.29000002"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</layout>
\ No newline at end of file
app/src/main/res/values/styles.xml
View file @
bc11d54b
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
<style
name=
"burger_medi"
>
<style
name=
"burger_medi"
>
<item
name=
"android:textSize"
>
<item
name=
"android:textSize"
>
1
8
sp
1
5
sp
</item>
</item>
<item
name=
"android:textColor"
>
<item
name=
"android:textColor"
>
...
...
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