From 761d76d4aacc07a2276fa6f678c6aab9a378202f Mon Sep 17 00:00:00 2001 From: Danya_Mochalov Date: Wed, 25 Oct 2023 06:35:29 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9D=D1=83=20=D0=B2=D1=80=D0=BE=D0=B4=D0=B5?= =?UTF-8?q?=20=D0=BB=D0=B0=D0=B1=D0=B0=203=20=D0=B5=D1=81=D1=82=D1=8C.=20?= =?UTF-8?q?=D0=A6=D0=B5=D0=BD=D0=B0=20=D0=B2=D0=BE=D0=BF=D1=80=D0=BE=D1=81?= =?UTF-8?q?=D0=B0=20-=203=20=D1=8D=D0=BD=D0=B5=D1=80=D0=B3=D0=B5=D1=82?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=20=D0=B8=20=D1=83=D0=BF=D0=B0=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0=20=D1=85=D0=BE=D1=82=D1=81=D1=82=D0=B5=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=BE=D1=82=20=D0=B3=D0=BE=D1=80=D1=8F=D1=87?= =?UTF-8?q?=D0=B5=D0=B9=20=D1=88=D1=82=D1=83=D1=87=D0=BA=D0=B8.=20=D0=A5?= =?UTF-8?q?=D0=BE=D1=87=D1=83=20=D0=BB=D0=B8=20=D1=8F=20=D0=B6=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=D1=82=D0=B0=D0=BA?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=3F=20=D0=94=D1=83=D0=BC=D0=B0=D0=B9=D1=82?= =?UTF-8?q?=D0=B5=20=D1=81=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/shawarma/data/dao/OrderDao.kt | 2 +- .../example/shawarma/data/db/AppDatabase.kt | 22 +++++++----- .../data/models/DiscountProductModel.kt | 36 ------------------- .../example/shawarma/data/models/Status.kt | 2 +- .../shawarma/screens/cart/CartScreen.kt | 20 ++++------- .../shawarma/screens/orders/OrdersScreen.kt | 30 +++++++++------- 6 files changed, 38 insertions(+), 74 deletions(-) delete mode 100644 app/src/main/java/com/example/shawarma/data/models/DiscountProductModel.kt diff --git a/app/src/main/java/com/example/shawarma/data/dao/OrderDao.kt b/app/src/main/java/com/example/shawarma/data/dao/OrderDao.kt index 4fa164b..1cc87b5 100644 --- a/app/src/main/java/com/example/shawarma/data/dao/OrderDao.kt +++ b/app/src/main/java/com/example/shawarma/data/dao/OrderDao.kt @@ -20,7 +20,7 @@ interface OrderDao { @Delete suspend fun delete(order: OrderModel) - @Query("select * from orders") + @Query("select * from orders where orders.user_id is not null") fun getAll() : Flow> @Query("select * from orders where orders.id =:id") fun getById(id: Int): Flow> diff --git a/app/src/main/java/com/example/shawarma/data/db/AppDatabase.kt b/app/src/main/java/com/example/shawarma/data/db/AppDatabase.kt index 292842e..e1001ef 100644 --- a/app/src/main/java/com/example/shawarma/data/db/AppDatabase.kt +++ b/app/src/main/java/com/example/shawarma/data/db/AppDatabase.kt @@ -12,9 +12,7 @@ import com.example.shawarma.data.dao.ProductDao import com.example.shawarma.data.dao.UserDao import com.example.shawarma.data.models.OrderModel import com.example.shawarma.data.models.OrderProductModel -import com.example.shawarma.data.models.OrderProductModelWithProduct import com.example.shawarma.data.models.OrderStatus -import com.example.shawarma.data.models.OrderWithProducts import com.example.shawarma.data.models.ProductModel import com.example.shawarma.data.models.UserModel import kotlinx.coroutines.CoroutineScope @@ -48,12 +46,6 @@ abstract class AppDatabase : RoomDatabase() { private suspend fun populateDatabase() { INSTANCE?.let { database -> -// // Groups -// val groupDao = database.groupDao() -// val group1 = Group(1, "Группа 1") -// groupDao.insert(group1) -// // Students -// // Users val userDao = database.userDao() val user1 = UserModel(1, "danya", "password", "ADMIN") @@ -70,12 +62,24 @@ abstract class AppDatabase : RoomDatabase() { productDao.insert(discount2) // Orders val orderDao = database.orderDao() - val order1 = OrderModel(1, OrderStatus.Preparing.toString(), 1, Date()) + val order1 = OrderModel(1, OrderStatus.Готовится.toString(), 1, Date()) + val order2 = OrderModel(2, OrderStatus.Неоплачено.toString(), 1, Date()) + val order3 = OrderModel(3, OrderStatus.Готово.toString(), 1, Date()) + val order4 = OrderModel(4, OrderStatus.Выдано.toString(), 1, Date()) orderDao.insert(order1) + orderDao.insert(order2) + orderDao.insert(order3) + orderDao.insert(order4) // OrderProducts val orderProductDao = database.orderProductDao() val op1 = OrderProductModel(1, 1, 2, 200) + val op2 = OrderProductModel(2, 4, 3, 150) + val op3 = OrderProductModel(3, 3, 1, 80) + val op4 = OrderProductModel(4, 2, 1, 120) orderProductDao.insert(op1) + orderProductDao.insert(op2) + orderProductDao.insert(op3) + orderProductDao.insert(op4) } } diff --git a/app/src/main/java/com/example/shawarma/data/models/DiscountProductModel.kt b/app/src/main/java/com/example/shawarma/data/models/DiscountProductModel.kt deleted file mode 100644 index 12b60b4..0000000 --- a/app/src/main/java/com/example/shawarma/data/models/DiscountProductModel.kt +++ /dev/null @@ -1,36 +0,0 @@ -package com.example.shawarma.data.models - -import androidx.room.ColumnInfo -import androidx.room.Entity -import androidx.room.PrimaryKey - -@Entity(tableName = "discount_products") -data class DiscountProductModel( - @PrimaryKey(autoGenerate = true) - val id: Int?, - @ColumnInfo(name = "discount_title") - val title: String, - @ColumnInfo(name = "discount_old_price") - val oldPrice: Int, - @ColumnInfo(name = "discount_new_price") - val newPrice: Int -) { - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (javaClass != other?.javaClass) return false - other as DiscountProductModel - if (id != other.id) return false - return true - } - - override fun hashCode(): Int { - return id ?: -1 - } -} - -fun getAllDiscountProducts() : List { - return listOf( - DiscountProductModel(1, "Шаурма", 150, 120), - DiscountProductModel(1, "Шаурма", 150, 120) - ) -} diff --git a/app/src/main/java/com/example/shawarma/data/models/Status.kt b/app/src/main/java/com/example/shawarma/data/models/Status.kt index 9433570..0d2246e 100644 --- a/app/src/main/java/com/example/shawarma/data/models/Status.kt +++ b/app/src/main/java/com/example/shawarma/data/models/Status.kt @@ -1,5 +1,5 @@ package com.example.shawarma.data.models enum class OrderStatus { - Unpaid, Preparing, Prepared, Processed + Неоплачено, Готовится, Готово, Выдано } \ No newline at end of file diff --git a/app/src/main/java/com/example/shawarma/screens/cart/CartScreen.kt b/app/src/main/java/com/example/shawarma/screens/cart/CartScreen.kt index 2ab49d0..80a16ed 100644 --- a/app/src/main/java/com/example/shawarma/screens/cart/CartScreen.kt +++ b/app/src/main/java/com/example/shawarma/screens/cart/CartScreen.kt @@ -2,14 +2,11 @@ package com.example.shawarma.screens.cart import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.background -import androidx.compose.foundation.gestures.Orientation -import androidx.compose.foundation.gestures.scrollable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -35,19 +32,14 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource -import androidx.compose.ui.text.font.Font -import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.zIndex import com.example.shawarma.R import com.example.shawarma.data.db.AppDatabase -import com.example.shawarma.data.models.OrderModel import com.example.shawarma.data.models.OrderStatus import com.example.shawarma.data.models.OrderWithProducts -import com.example.shawarma.data.models.ProductModel -import com.example.shawarma.data.models.getOrdersByUserId import com.example.shawarma.ui.theme.MarckFamily import com.example.shawarma.ui.theme.MyLightRed import com.example.shawarma.ui.theme.MyMainBackground @@ -85,10 +77,10 @@ fun CartWidget(){ val preparingOrders = mutableListOf() for(order in orders) { - if (order.order.status == OrderStatus.Unpaid.toString()) { + if (order.order.status == OrderStatus.Неоплачено.toString()) { unpaidOrders.add(order) } - if (order.order.status == OrderStatus.Preparing.toString()) { + if (order.order.status == OrderStatus.Готовится.toString() || order.order.status == OrderStatus.Готово.toString()) { preparingOrders.add(order) } } @@ -146,7 +138,7 @@ fun CartWidget(){ .height(200.dp) ) { items(unpaidOrders.size) {index -> - PaidItem(unpaidOrders[index]) + CartItem(unpaidOrders[index]) } } @@ -206,7 +198,7 @@ fun PaidItem(order : OrderWithProducts) { fontWeight = FontWeight.Bold ) Text( - text = order.orderWithProducts[0].orderProductModel.totalPrice.toString(), + text = order.orderWithProducts[0].orderProductModel.totalPrice.toString() + " руб.", fontFamily = NunitoFamily, fontSize = 20.sp, modifier = Modifier.padding(top = 15.dp), @@ -229,7 +221,7 @@ fun PaidItem(order : OrderWithProducts) { color = Color.Gray ) Text( - text = "Готовится", + text = order.order.status, fontFamily = NunitoFamily, fontSize = 20.sp, modifier = Modifier.padding(top = 15.dp), @@ -277,7 +269,7 @@ fun CartItem(order : OrderWithProducts) { ) } Text( - text = order.orderWithProducts[0].orderProductModel.totalPrice.toString(), + text = order.orderWithProducts[0].orderProductModel.totalPrice.toString() + " руб.", fontFamily = NunitoFamily, fontSize = 20.sp, fontWeight = FontWeight.Bold diff --git a/app/src/main/java/com/example/shawarma/screens/orders/OrdersScreen.kt b/app/src/main/java/com/example/shawarma/screens/orders/OrdersScreen.kt index 4de899e..bd94d53 100644 --- a/app/src/main/java/com/example/shawarma/screens/orders/OrdersScreen.kt +++ b/app/src/main/java/com/example/shawarma/screens/orders/OrdersScreen.kt @@ -35,10 +35,8 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.zIndex import com.example.shawarma.data.db.AppDatabase -import com.example.shawarma.data.models.OrderModel import com.example.shawarma.data.models.OrderStatus import com.example.shawarma.data.models.OrderWithProducts -import com.example.shawarma.data.models.getAllOrders import com.example.shawarma.ui.theme.MarckFamily import com.example.shawarma.ui.theme.MyLightYellow import com.example.shawarma.ui.theme.MyMainBackground @@ -77,13 +75,13 @@ fun OrdersList(){ val processedOrders = mutableListOf() for (order in allOrders){ - if (order.order.status == OrderStatus.Preparing.toString()) { + if (order.order.status == OrderStatus.Готовится.toString()) { preparingOrders.add(order) } - if (order.order.status == OrderStatus.Prepared.toString()) { + if (order.order.status == OrderStatus.Готово.toString()) { preparedOrders.add(order) } - if (order.order.status == OrderStatus.Processed.toString()) { + if (order.order.status == OrderStatus.Выдано.toString()) { processedOrders.add(order) } } @@ -125,9 +123,11 @@ fun OrdersList(){ .width(340.dp) .height(250.dp) ) { - items(preparingOrders.size) { - index -> - PreparingItem(preparedOrders[index]) + if (preparingOrders.size != 0) { + items(preparingOrders.size) { + index -> + PreparingItem(preparingOrders[index]) + } } } Text( @@ -142,9 +142,11 @@ fun OrdersList(){ .width(340.dp) .height(250.dp) ) { - items(preparedOrders.size) { - index -> - PreparedItem(preparedOrders[index]) + if (preparedOrders.size != 0) { + items(preparedOrders.size) { + index -> + PreparedItem(preparedOrders[index]) + } } } Text( @@ -159,8 +161,10 @@ fun OrdersList(){ .width(340.dp) .height(250.dp) ) { - items(processedOrders.size) {index -> - ProcessedItem(processedOrders[index]) + if (processedOrders.size != 0) { + items(processedOrders.size) {index -> + ProcessedItem(processedOrders[index]) + } } } Spacer(modifier = Modifier.height(70.dp))