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
486f275f
Commit
486f275f
authored
Sep 01, 2020
by
Wahyu Wibowo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
create table for transaksi
parent
c14b1937
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
198 additions
and
18 deletions
+198
-18
CartActivity.java
.../com/example/yourcashiertest/activities/CartActivity.java
+1
-5
MainActivity.java
.../com/example/yourcashiertest/activities/MainActivity.java
+1
-1
PaymentActivity.java
...m/example/yourcashiertest/activities/PaymentActivity.java
+1
-1
TransaksiDao.java
...n/java/com/example/yourcashiertest/daos/TransaksiDao.java
+14
-0
LocalDatabase.java
.../com/example/yourcashiertest/databases/LocalDatabase.java
+19
-2
Cart.java
.../main/java/com/example/yourcashiertest/entities/Cart.java
+15
-1
Product.java
...in/java/com/example/yourcashiertest/entities/Product.java
+2
-4
Transaksi.java
.../java/com/example/yourcashiertest/entities/Transaksi.java
+80
-0
TransaksiRepository.java
...ple/yourcashiertest/repositories/TransaksiRepository.java
+26
-0
TransaksiViewModel.java
...xample/yourcashiertest/viewmodels/TransaksiViewModel.java
+25
-0
activity_cart.xml
app/src/main/res/layout/activity_cart.xml
+14
-4
No files found.
app/src/main/java/com/example/yourcashiertest/activities/CartActivity.java
View file @
486f275f
...
...
@@ -2,13 +2,13 @@ package com.example.yourcashiertest.activities;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.lifecycle.Observer
;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
android.annotation.SuppressLint
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.view.View
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.adapters.CartAdapter
;
...
...
@@ -17,9 +17,6 @@ import com.example.yourcashiertest.entities.Cart;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.utils.Convert
;
import
com.example.yourcashiertest.viewmodels.CartViewModel
;
import
com.example.yourcashiertest.viewmodels.ProductViewModel
;
import
java.util.List
;
public
class
CartActivity
extends
AppCompatActivity
{
...
...
@@ -40,7 +37,6 @@ public class CartActivity extends AppCompatActivity {
binding
.
rvCartList
.
setAdapter
(
adapter
);
product
=
new
Product
();
// viewModel = new ViewModelProvider(this).get(ProductViewModel.class);
CartViewModel
cartViewModel
=
new
ViewModelProvider
(
this
).
get
(
CartViewModel
.
class
);
cartViewModel
.
getCarts
().
observe
(
this
,
carts
->
adapter
.
setCartList
(
carts
));
...
...
app/src/main/java/com/example/yourcashiertest/activities/MainActivity.java
View file @
486f275f
...
...
@@ -173,7 +173,7 @@ public class MainActivity extends AppCompatActivity {
startActivity
(
new
Intent
(
MainActivity
.
this
,
CartActivity
.
class
));
finish
();
}
else
{
Cart
cart
=
new
Cart
(
0
,
""
,
""
,
0
,
0
,
0
);
Cart
cart
=
new
Cart
(
0
,
""
,
""
,
0
,
0
,
0
,
0
);
cart
.
setIdProduct
(
product
.
getId
());
cart
.
setImage
(
product
.
getPhoto
());
cart
.
setNameProduct
(
product
.
getName
());
...
...
app/src/main/java/com/example/yourcashiertest/activities/PaymentActivity.java
View file @
486f275f
app/src/main/java/com/example/yourcashiertest/daos/TransaksiDao.java
0 → 100644
View file @
486f275f
package
com
.
example
.
yourcashiertest
.
daos
;
import
androidx.room.Query
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
java.util.List
;
public
interface
TransaksiDao
{
@Query
(
"SELECT * FROM transaksi"
)
public
List
<
Transaksi
>
getAllTransaksi
();
}
app/src/main/java/com/example/yourcashiertest/databases/LocalDatabase.java
View file @
486f275f
...
...
@@ -14,17 +14,19 @@ import androidx.sqlite.db.SupportSQLiteOpenHelper;
import
com.example.yourcashiertest.daos.CartDao
;
import
com.example.yourcashiertest.daos.ProductDao
;
import
com.example.yourcashiertest.daos.TransaksiDao
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.Product
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
@Database
(
entities
=
{
Product
.
class
,
Cart
.
class
},
version
=
3
,
exportSchema
=
false
)
@Database
(
entities
=
{
Product
.
class
,
Cart
.
class
},
version
=
4
,
exportSchema
=
false
)
public
abstract
class
LocalDatabase
extends
RoomDatabase
{
public
abstract
ProductDao
productDao
();
public
abstract
CartDao
cartDao
();
public
abstract
TransaksiDao
transaksiDao
();
private
static
volatile
LocalDatabase
INSTANCE
;
private
static
final
int
NUMBER_OF_THREADS
=
4
;
...
...
@@ -40,6 +42,14 @@ public abstract class LocalDatabase extends RoomDatabase {
}
};
public
static
final
Migration
MIGRATION_4_5
=
new
Migration
(
4
,
5
)
{
@Override
public
void
migrate
(
@NonNull
SupportSQLiteDatabase
database
)
{
database
.
execSQL
(
"CREATE TABLE IF NOT EXISTS Transaksi (orderId INTEGER NOT NULL, "
+
"amount INTEGER NOT NULL, status TEXT NOT NULL, PRIMARY KEY(orderId))"
);
}
};
public
static
final
Migration
MIGRATION_2_3
=
new
Migration
(
2
,
3
)
{
@Override
public
void
migrate
(
@NonNull
SupportSQLiteDatabase
database
)
{
...
...
@@ -47,13 +57,20 @@ public abstract class LocalDatabase extends RoomDatabase {
}
};
public
static
final
Migration
MIGRATION_3_4
=
new
Migration
(
3
,
4
)
{
@Override
public
void
migrate
(
@NonNull
SupportSQLiteDatabase
database
)
{
database
.
execSQL
(
"ALTER TABLE Cart ADD COLUMN orderId INTEGER NOT NULL DEFAULT 0"
);
}
};
public
static
LocalDatabase
getDatabase
(
Context
context
)
{
if
(
INSTANCE
==
null
)
{
synchronized
(
LocalDatabase
.
class
)
{
if
(
INSTANCE
==
null
)
{
INSTANCE
=
Room
.
databaseBuilder
(
context
.
getApplicationContext
(),
LocalDatabase
.
class
,
"yourcashier_database"
)
.
addMigrations
(
MIGRATION_1_2
,
MIGRATION_2_3
)
.
addMigrations
(
MIGRATION_1_2
,
MIGRATION_2_3
,
MIGRATION_3_4
,
MIGRATION_4_5
)
.
allowMainThreadQueries
()
.
build
();
}
...
...
app/src/main/java/com/example/yourcashiertest/entities/Cart.java
View file @
486f275f
...
...
@@ -39,6 +39,10 @@ public class Cart implements Parcelable {
@ColumnInfo
(
name
=
"realPrice"
)
long
realPrice
=
0
;
@NonNull
@ColumnInfo
(
name
=
"orderId"
)
long
orderId
=
0
;
protected
Cart
(
Parcel
in
)
{
id
=
in
.
readLong
();
idProduct
=
in
.
readLong
();
...
...
@@ -61,13 +65,14 @@ public class Cart implements Parcelable {
}
};
public
Cart
(
long
idProduct
,
String
nameProduct
,
String
image
,
long
price
,
long
qty
,
long
realPrice
){
public
Cart
(
long
idProduct
,
String
nameProduct
,
String
image
,
long
price
,
long
qty
,
long
realPrice
,
long
orderId
){
this
.
idProduct
=
idProduct
;
this
.
nameProduct
=
nameProduct
;
this
.
image
=
image
;
this
.
price
=
price
;
this
.
qty
=
qty
;
this
.
realPrice
=
realPrice
;
this
.
orderId
=
orderId
;
}
public
Cart
()
{
...
...
@@ -130,6 +135,14 @@ public class Cart implements Parcelable {
this
.
realPrice
=
realPrice
;
}
public
long
getOrderId
()
{
return
orderId
;
}
public
void
setOrderId
(
long
orderId
)
{
this
.
orderId
=
orderId
;
}
@Override
public
int
describeContents
()
{
return
0
;
...
...
@@ -144,5 +157,6 @@ public class Cart implements Parcelable {
dest
.
writeLong
(
price
);
dest
.
writeLong
(
qty
);
dest
.
writeLong
(
realPrice
);
dest
.
writeLong
(
orderId
);
}
}
app/src/main/java/com/example/yourcashiertest/entities/Product.java
View file @
486f275f
package
com
.
example
.
yourcashiertest
.
entities
;
import
android.net.Uri
;
import
android.os.Parcel
;
import
android.os.Parcelable
;
import
android.text.TextUtils
;
import
android.widget.ImageView
;
import
androidx.annotation.NonNull
;
import
androidx.databinding.BindingAdapter
;
import
androidx.room.ColumnInfo
;
import
androidx.room.Entity
;
import
androidx.room.PrimaryKey
;
...
...
@@ -135,10 +136,7 @@ public class Product implements Parcelable {
if
(
TextUtils
.
isEmpty
(
path
))
view
.
setImageResource
(
R
.
drawable
.
unnamed
);
else
{
File
file
=
new
File
(
path
);
Uri
uri
=
Uri
.
parse
(
path
);
Glide
.
with
(
view
).
load
(
file
).
into
(
view
);
// if (file.exists()) Glide.with(view).load(file).into(view);
// else view.setImageResource(R.drawable.unnamed);
}
}
}
app/src/main/java/com/example/yourcashiertest/entities/Transaksi.java
0 → 100644
View file @
486f275f
package
com
.
example
.
yourcashiertest
.
entities
;
import
android.os.Parcel
;
import
android.os.Parcelable
;
import
androidx.annotation.NonNull
;
import
androidx.room.ColumnInfo
;
import
androidx.room.Entity
;
import
androidx.room.PrimaryKey
;
@Entity
public
class
Transaksi
implements
Parcelable
{
@PrimaryKey
(
autoGenerate
=
true
)
@NonNull
@ColumnInfo
(
name
=
"orderId"
)
private
long
orderId
;
@NonNull
@ColumnInfo
(
name
=
"amount"
)
private
long
amount
;
@NonNull
@ColumnInfo
(
name
=
"status"
)
private
String
status
;
protected
Transaksi
(
Parcel
in
)
{
orderId
=
in
.
readLong
();
amount
=
in
.
readLong
();
status
=
in
.
readString
();
}
public
static
final
Creator
<
Transaksi
>
CREATOR
=
new
Creator
<
Transaksi
>()
{
@Override
public
Transaksi
createFromParcel
(
Parcel
in
)
{
return
new
Transaksi
(
in
);
}
@Override
public
Transaksi
[]
newArray
(
int
size
)
{
return
new
Transaksi
[
size
];
}
};
public
long
getOrderId
()
{
return
orderId
;
}
public
void
setOrderId
(
long
orderId
)
{
this
.
orderId
=
orderId
;
}
public
long
getAmount
()
{
return
amount
;
}
public
void
setAmount
(
long
amount
)
{
this
.
amount
=
amount
;
}
@NonNull
public
String
getStatus
()
{
return
status
;
}
public
void
setStatus
(
@NonNull
String
status
)
{
this
.
status
=
status
;
}
@Override
public
int
describeContents
()
{
return
0
;
}
@Override
public
void
writeToParcel
(
Parcel
parcel
,
int
i
)
{
parcel
.
writeLong
(
orderId
);
parcel
.
writeLong
(
amount
);
parcel
.
writeString
(
status
);
}
}
app/src/main/java/com/example/yourcashiertest/repositories/TransaksiRepository.java
0 → 100644
View file @
486f275f
package
com
.
example
.
yourcashiertest
.
repositories
;
import
android.app.Application
;
import
androidx.lifecycle.LiveData
;
import
com.example.yourcashiertest.daos.TransaksiDao
;
import
com.example.yourcashiertest.databases.LocalDatabase
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
java.util.List
;
public
class
TransaksiRepository
{
private
TransaksiDao
dao
;
private
List
<
Transaksi
>
allTransaksi
;
public
TransaksiRepository
(
Application
application
){
LocalDatabase
db
=
LocalDatabase
.
getDatabase
(
application
);
dao
=
db
.
transaksiDao
();
allTransaksi
=
dao
.
getAllTransaksi
();
}
public
List
<
Transaksi
>
getAllTransaksi
(){
return
this
.
allTransaksi
;
}
}
app/src/main/java/com/example/yourcashiertest/viewmodels/TransaksiViewModel.java
0 → 100644
View file @
486f275f
package
com
.
example
.
yourcashiertest
.
viewmodels
;
import
android.app.Application
;
import
androidx.annotation.NonNull
;
import
androidx.lifecycle.AndroidViewModel
;
import
androidx.lifecycle.LiveData
;
import
androidx.lifecycle.MutableLiveData
;
import
com.example.yourcashiertest.entities.Transaksi
;
import
com.example.yourcashiertest.repositories.TransaksiRepository
;
import
java.util.List
;
public
class
TransaksiViewModel
extends
AndroidViewModel
{
private
MutableLiveData
<
Transaksi
>
transaksi
=
new
MutableLiveData
<>();
private
TransaksiRepository
repository
;
private
LiveData
<
List
<
Transaksi
>>
allTransaksi
;
public
TransaksiViewModel
(
@NonNull
Application
application
)
{
super
(
application
);
// repository =
}
}
app/src/main/res/layout/activity_cart.xml
View file @
486f275f
...
...
@@ -95,13 +95,13 @@
<Button
android:id=
"@+id/btnCheckout"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"wrap_content"
android:text=
"@string/checkout"
android:layout_marginStart=
"10dp"
app:layout_constraintStart_toEndOf=
"@+id/save_order"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/rvCartList"
app:layout_constraintVertical_bias=
"1.0"
tools:layout_editor_absoluteX=
"39dp"
/>
app:layout_constraintEnd_toEndOf=
"parent"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rvCartList"
...
...
@@ -115,6 +115,16 @@
app:layout_constraintTop_toBottomOf=
"@+id/view"
tools:ignore=
"MissingConstraints"
/>
<Button
android:id=
"@+id/save_order"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"save"
android:backgroundTint=
"#0D2EE1"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/btnCheckout"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
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