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
8fb27f10
Commit
8fb27f10
authored
Sep 02, 2020
by
Wahyu Wibowo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
create transaksi
parent
7ee0d262
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
87 additions
and
35 deletions
+87
-35
CartActivity.java
.../com/example/yourcashiertest/activities/CartActivity.java
+8
-8
MainActivity.java
.../com/example/yourcashiertest/activities/MainActivity.java
+8
-1
OrderActivity.java
...com/example/yourcashiertest/activities/OrderActivity.java
+16
-11
PaymentActivity.java
...m/example/yourcashiertest/activities/PaymentActivity.java
+22
-5
OrderAdapter.java
...va/com/example/yourcashiertest/adapters/OrderAdapter.java
+4
-0
ProductDao.java
...ain/java/com/example/yourcashiertest/daos/ProductDao.java
+2
-2
TransaksiDao.java
...n/java/com/example/yourcashiertest/daos/TransaksiDao.java
+1
-1
DBHelper.java
.../java/com/example/yourcashiertest/databases/DBHelper.java
+6
-0
TransaksiViewModel.java
...xample/yourcashiertest/viewmodels/TransaksiViewModel.java
+1
-1
activity_cart.xml
app/src/main/res/layout/activity_cart.xml
+2
-1
item_order.xml
app/src/main/res/layout/item_order.xml
+17
-5
No files found.
app/src/main/java/com/example/yourcashiertest/activities/CartActivity.java
View file @
8fb27f10
...
...
@@ -8,7 +8,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import
android.annotation.SuppressLint
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.
view.View
;
import
android.
widget.Toast
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.adapters.CartAdapter
;
...
...
@@ -52,7 +52,10 @@ public class CartActivity extends AppCompatActivity {
for
(
int
i
=
0
;
i
<
carts
.
size
();
i
++){
count
+=
carts
.
get
(
i
).
getPrice
();
}
}
else
binding
.
btnCheckout
.
setEnabled
(
false
);
}
else
{
binding
.
btnCheckout
.
setEnabled
(
false
);
binding
.
saveOrder
.
setEnabled
(
false
);
}
SUM
=
count
;
binding
.
tvTotalPrice
.
setText
(
Convert
.
changeToCurrency
(
SUM
));
binding
.
items
.
setText
(
carts
.
size
()
+
" items"
);
...
...
@@ -84,12 +87,7 @@ public class CartActivity extends AppCompatActivity {
startActivity
(
new
Intent
(
CartActivity
.
this
,
PaymentActivity
.
class
).
putExtra
(
PRICE
,
SUM
));
finish
();
});
binding
.
saveOrder
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
view
)
{
saveTransaction
(
SUM
);
}
});
binding
.
saveOrder
.
setOnClickListener
(
view
->
saveTransaction
(
SUM
));
}
private
void
saveTransaction
(
int
amount
)
{
...
...
@@ -97,6 +95,8 @@ public class CartActivity extends AppCompatActivity {
transaksi
.
setAmount
(
amount
);
transaksi
.
setStatus
(
"Pending"
);
transaksiViewModel
.
insertTransaksi
(
transaksi
);
startActivity
(
new
Intent
(
CartActivity
.
this
,
OrderActivity
.
class
));
Toast
.
makeText
(
getApplicationContext
(),
"Please Continue Payment"
,
Toast
.
LENGTH_LONG
).
show
();
}
@Override
...
...
app/src/main/java/com/example/yourcashiertest/activities/MainActivity.java
View file @
8fb27f10
...
...
@@ -19,6 +19,7 @@ import android.os.Bundle;
import
android.text.Editable
;
import
android.text.TextWatcher
;
import
android.util.Log
;
import
android.widget.PopupMenu
;
import
android.widget.Toast
;
...
...
@@ -29,6 +30,7 @@ import com.example.yourcashiertest.databases.DBHelper;
import
com.example.yourcashiertest.databinding.ActivityMainBinding
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
com.example.yourcashiertest.viewmodels.CartViewModel
;
import
com.example.yourcashiertest.viewmodels.ProductViewModel
;
...
...
@@ -103,7 +105,6 @@ public class MainActivity extends AppCompatActivity {
return
true
;
case
R
.
id
.
item_three
:
startActivity
(
new
Intent
(
MainActivity
.
this
,
OrderActivity
.
class
));
finish
();
break
;
case
R
.
id
.
item_four
:
prefManager
.
removeLoginSession
();
...
...
@@ -175,6 +176,12 @@ public class MainActivity extends AppCompatActivity {
}
});
binding
.
setViewModel
(
viewModel
);
// just checking data
List
<
Transaksi
>
list
=
DBHelper
.
getAllTransaksi
(
getApplicationContext
());
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++){
Log
.
d
(
"transaction"
,
String
.
valueOf
(
list
.
get
(
i
).
getStatus
()));
}
}
...
...
app/src/main/java/com/example/yourcashiertest/activities/OrderActivity.java
View file @
8fb27f10
...
...
@@ -6,10 +6,12 @@ import androidx.lifecycle.Observer;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.adapters.OrderAdapter
;
import
com.example.yourcashiertest.databases.DBHelper
;
import
com.example.yourcashiertest.databinding.ActivityOrderBinding
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
com.example.yourcashiertest.viewmodels.TransaksiViewModel
;
...
...
@@ -27,21 +29,24 @@ public class OrderActivity extends AppCompatActivity {
super
.
onCreate
(
savedInstanceState
);
binding
=
DataBindingUtil
.
setContentView
(
this
,
R
.
layout
.
activity_order
);
adapter
=
new
OrderAdapter
();
viewModel
=
new
ViewModelProvider
(
this
).
get
(
TransaksiViewModel
.
class
);
binding
.
rvListOrder
.
setLayoutManager
(
new
LinearLayoutManager
(
this
));
binding
.
rvListOrder
.
setAdapter
(
adapter
);
viewModel
.
getList
().
observe
(
this
,
transaksi
->
adapter
.
setTransaksiList
(
transaksi
));
// adapter.setListener(new OrderAdapter.TransaksiListener() {
// @Override
// public void onCancel(Transaksi transaksi) {
//
// }
//
// @Override
// public void onContinue(Transaksi transaksi) {
//
// }
// });
adapter
.
setListener
(
new
OrderAdapter
.
TransaksiListener
()
{
@Override
public
void
onCancel
(
Transaksi
transaksi
)
{
viewModel
.
deleteTransaksi
(
transaksi
);
}
@Override
public
void
onContinue
(
Transaksi
transaksi
)
{
startActivity
(
new
Intent
(
OrderActivity
.
this
,
PaymentActivity
.
class
)
.
putExtra
(
PaymentActivity
.
DATA_PENDING
,
transaksi
));
}
});
}
}
\ No newline at end of file
app/src/main/java/com/example/yourcashiertest/activities/PaymentActivity.java
View file @
8fb27f10
...
...
@@ -42,6 +42,8 @@ public class PaymentActivity extends AppCompatActivity {
TransaksiViewModel
payViewModel
;
public
static
final
String
PAY_WITH
=
"pay_with"
;
private
ArrayList
<
ResponsePayment
>
responsePayments
=
new
ArrayList
<>();
static
final
String
DATA_PENDING
=
"data_pending"
;
Transaksi
data_pending
;
@SuppressLint
(
"ResourceAsColor"
)
@RequiresApi
(
api
=
Build
.
VERSION_CODES
.
N
)
...
...
@@ -54,7 +56,6 @@ public class PaymentActivity extends AppCompatActivity {
cartViewModel
=
new
ViewModelProvider
(
this
).
get
(
CartViewModel
.
class
);
viewModel
=
new
ViewModelProvider
(
this
).
get
(
ProductViewModel
.
class
);
amount
=
getIntent
().
getIntExtra
(
CartActivity
.
PRICE
,
0
);
binding
.
setAmount
(
Convert
.
changeToCurrency
(
amount
));
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"
));
...
...
@@ -65,6 +66,12 @@ public class PaymentActivity extends AppCompatActivity {
paymentMethod
=
responsePayments
.
getBank
();
binding
.
btnPay
.
setEnabled
(
true
);
});
data_pending
=
getIntent
().
getParcelableExtra
(
DATA_PENDING
);
if
(
data_pending
!=
null
){
amount
=
(
int
)
data_pending
.
getAmount
();
}
binding
.
setAmount
(
Convert
.
changeToCurrency
(
amount
));
}
public
void
btnPay
(
View
view
)
{
...
...
@@ -78,8 +85,13 @@ public class PaymentActivity extends AppCompatActivity {
ViewUtil
.
showMessage
(
view
,
"AmountPaid doesn't less than total price"
);
}
else
{
refund
=
amountPaid
-
amount
;
if
(
data_pending
!=
null
)
continueTransaksi
(
data_pending
);
else
createTransaksi
(
amount
);
updateDataProduct
();
startActivity
(
new
Intent
(
PaymentActivity
.
this
,
StatusPayment
.
class
).
putExtra
(
REFUND
,
refund
).
putExtra
(
PAY_WITH
,
paymentMethod
));
startActivity
(
new
Intent
(
PaymentActivity
.
this
,
StatusPayment
.
class
)
.
putExtra
(
REFUND
,
refund
).
putExtra
(
PAY_WITH
,
paymentMethod
));
cartViewModel
.
clear
();
finish
();
}
...
...
@@ -93,11 +105,9 @@ public class PaymentActivity extends AppCompatActivity {
// just checking data
List
<
Transaksi
>
list
=
DBHelper
.
getAllTransaksi
(
getApplicationContext
());
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++){
Log
.
d
(
"transaction"
,
String
.
valueOf
(
list
.
get
(
i
).
get
OrderId
()));
Log
.
d
(
"transaction"
,
String
.
valueOf
(
list
.
get
(
i
).
get
Status
()));
}
createTransaksi
(
amount
);
for
(
int
c
=
0
;
c
<
carts
.
size
();
c
++){
for
(
int
p
=
0
;
p
<
products
.
size
();
p
++){
if
(
carts
.
get
(
c
).
getIdProduct
()
==
products
.
get
(
p
).
getId
()){
...
...
@@ -111,6 +121,13 @@ public class PaymentActivity extends AppCompatActivity {
}
}
private
void
continueTransaksi
(
Transaksi
transaksi
){
if
(
transaksi
.
getStatus
().
equals
(
"Pending"
)){
transaksi
.
setStatus
(
"Success"
);
payViewModel
.
updateTransaksi
(
transaksi
);
}
}
private
void
createTransaksi
(
int
amount
)
{
Transaksi
transaksi
=
new
Transaksi
(
0
,
""
);
transaksi
.
setAmount
(
amount
);
...
...
app/src/main/java/com/example/yourcashiertest/adapters/OrderAdapter.java
View file @
8fb27f10
...
...
@@ -72,6 +72,10 @@ public class OrderAdapter extends RecyclerView.Adapter<OrderAdapter.ViewHolder>
public
void
bindData
(
Transaksi
transaksi
,
TransaksiListener
listener
){
binding
.
setTransaction
(
transaksi
);
binding
.
setAmount
(
Convert
.
changeToCurrency
(
transaksi
.
getAmount
()));
if
(
transaksi
.
getStatus
().
equals
(
"Success"
)){
binding
.
setVisibility
(
false
);
}
else
binding
.
setVisibility
(
true
);
binding
.
btnCancel
.
setOnClickListener
(
view
->
listener
.
onCancel
(
transaksi
));
binding
.
btnContinue
.
setOnClickListener
(
view
->
listener
.
onContinue
(
transaksi
));
}
...
...
app/src/main/java/com/example/yourcashiertest/daos/ProductDao.java
View file @
8fb27f10
...
...
@@ -20,8 +20,8 @@ public interface ProductDao {
@Query
(
"SELECT * FROM products"
)
public
List
<
Product
>
getAll
();
// @Query("SELECT category FROM products
")
// public List<Product> getAllCategory(
);
@Query
(
"SELECT * FROM products WHERE id =:id
"
)
public
Product
getProductById
(
int
id
);
@Query
(
"SELECT * FROM products WHERE name LIKE :query OR category LIKE:query ORDER BY id DESC"
)
public
LiveData
<
List
<
Product
>>
getFilteredProducts
(
String
query
);
...
...
app/src/main/java/com/example/yourcashiertest/daos/TransaksiDao.java
View file @
8fb27f10
...
...
@@ -18,7 +18,7 @@ public interface TransaksiDao {
@Query
(
"SELECT * FROM Transaksi"
)
List
<
Transaksi
>
getTransaksi
();
@Query
(
"SELECT * FROM Transaksi ORDER BY orderId
DE
SC"
)
@Query
(
"SELECT * FROM Transaksi ORDER BY orderId
A
SC"
)
LiveData
<
List
<
Transaksi
>>
getAll
();
@Insert
(
onConflict
=
OnConflictStrategy
.
IGNORE
)
...
...
app/src/main/java/com/example/yourcashiertest/databases/DBHelper.java
View file @
8fb27f10
...
...
@@ -19,6 +19,12 @@ public class DBHelper {
return
list
;
}
public
static
Product
getProductById
(
Context
context
,
int
id
){
LocalDatabase
db
=
LocalDatabase
.
getDatabase
(
context
);
Product
data
=
db
.
productDao
().
getProductById
(
id
);
return
data
;
}
public
static
List
<
Cart
>
getAllCart
(
Context
context
){
List
<
Cart
>
list
;
LocalDatabase
db
=
LocalDatabase
.
getDatabase
(
context
);
...
...
app/src/main/java/com/example/yourcashiertest/viewmodels/TransaksiViewModel.java
View file @
8fb27f10
app/src/main/res/layout/activity_cart.xml
View file @
8fb27f10
...
...
@@ -120,7 +120,8 @@
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"save"
android:backgroundTint=
"#0D2EE1"
android:textColor=
"@color/white"
android:backgroundTint=
"@color/blue"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/btnCheckout"
/>
...
...
app/src/main/res/layout/item_order.xml
View file @
8fb27f10
...
...
@@ -4,6 +4,7 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
>
<data>
<import
type=
"android.view.View"
/>
<variable
name=
"transaction"
type=
"com.example.yourcashiertest.entities.Transaksi"
/>
...
...
@@ -12,6 +13,10 @@
name=
"amount"
type=
"String"
/>
<variable
name=
"visibility"
type=
"boolean"
/>
</data>
<com.google.android.material.card.MaterialCardView
android:layout_width=
"match_parent"
...
...
@@ -82,36 +87,43 @@
<TextView
android:id=
"@+id/tvStatus"
android:layout_width=
"
136
dp"
android:layout_width=
"
0
dp"
android:layout_height=
"41dp"
android:layout_marginStart=
"4dp"
android:layout_marginTop=
"4dp"
android:gravity=
"center"
android:textColor=
"@{visibility ? @color/colorPending : @color/colorPrimary}"
android:text=
"@{transaction.status}"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@+id/btnContinue"
app:layout_constraintTop_toBottomOf=
"@+id/tvTotal"
/>
<com.google.android.material.button.MaterialButton
android:id=
"@+id/btnContinue"
android:layout_width=
"
9
0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"1
6
dp"
android:layout_marginStart=
"1
0
dp"
android:layout_marginTop=
"4dp"
android:visibility=
"@{visibility ? View.VISIBLE : View.GONE}"
android:text=
"CONTINUE"
android:textSize=
"10dp"
app:layout_constraintStart_toEndOf=
"@id/tvStatus"
app:layout_constraintEnd_toStartOf=
"@+id/btnCancel"
app:layout_constraintTop_toBottomOf=
"@id/tvAmount"
/>
<com.google.android.material.button.MaterialButton
android:id=
"@+id/btnCancel"
android:layout_width=
"
9
0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"20dp"
android:layout_marginStart=
"10dp"
android:layout_marginEnd=
"7dp"
android:layout_marginTop=
"4dp"
android:visibility=
"@{visibility ? View.VISIBLE : View.GONE}"
android:text=
"CANCEL"
android:textSize=
"10dp"
app:backgroundTint=
"@color/colorDanger"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toEndOf=
"@id/btnContinue"
app:layout_constraintTop_toBottomOf=
"@id/tvAmount"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
...
...
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