From 4645ddfbf206cd43e6abec1efea0aabebebe8752 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Sun, 16 Aug 2020 22:42:22 +0530 Subject: [PATCH 01/29] added pages --- lib/main.dart | 3 + lib/models/user.dart | 119 ++++ lib/pages/Cart.dart | 132 +++- .../CategoryMenuList/Accompaniment_Menu.dart | 233 +++++++ lib/pages/CategoryMenuList/All_Menu.dart | 233 +++++++ .../CategoryMenuList/Biryani_MenuList.dart | 236 +++++++ lib/pages/CategoryMenuList/Bread_Menu.dart | 0 .../CategoryMenuList/Breakfast_Menu.dart | 0 lib/pages/CategoryMenuList/Burger_Menu.dart | 0 lib/pages/CategoryMenuList/Chinese_Menu.dart | 232 +++++++ .../FriedRiceAndNoodles_Menu.dart | 0 .../CategoryMenuList/MainCourse_Menu.dart | 0 lib/pages/CategoryMenuList/Paneer_Menu.dart | 0 lib/pages/CategoryMenuList/Pasta_Menu.dart | 0 lib/pages/CategoryMenuList/Pizza_Menu.dart | 0 lib/pages/CategoryMenuList/Roll_Menu.dart | 0 lib/pages/CategoryMenuList/Sandwich_Menu.dart | 0 lib/pages/CategoryMenuList/Snacks_Menu.dart | 0 lib/pages/CategoryMenuList/Soup_Menu.dart | 0 lib/pages/CategoryMenuList/Starter_Menu.dart | 234 +++++++ lib/pages/CategoryMenuList/Tandoori_Menu.dart | 0 lib/pages/Food.dart | 587 ++++++++++++------ lib/pages/address.dart | 12 +- lib/pages/wrapper.dart | 3 +- lib/services/database.dart | 247 +++++++- 25 files changed, 2065 insertions(+), 206 deletions(-) create mode 100644 lib/pages/CategoryMenuList/Accompaniment_Menu.dart create mode 100644 lib/pages/CategoryMenuList/All_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Biryani_MenuList.dart create mode 100644 lib/pages/CategoryMenuList/Bread_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Breakfast_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Burger_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Chinese_Menu.dart create mode 100644 lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart create mode 100644 lib/pages/CategoryMenuList/MainCourse_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Paneer_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Pasta_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Pizza_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Roll_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Sandwich_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Snacks_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Soup_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Starter_Menu.dart create mode 100644 lib/pages/CategoryMenuList/Tandoori_Menu.dart diff --git a/lib/main.dart b/lib/main.dart index 5489e80..f660e55 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -34,6 +34,9 @@ class MyApp extends StatelessWidget { "/add_event": (context) => AddEventPage(), "/confirmOrder": (context) => ConfirmOrder(), "/address" : (context) => AddressForm(), + + //routes for different categories of food + // "/indian" : (context) => }, ), ); diff --git a/lib/models/user.dart b/lib/models/user.dart index a96b80c..bea9243 100644 --- a/lib/models/user.dart +++ b/lib/models/user.dart @@ -27,6 +27,125 @@ class Menu { Menu({this.item, this.price, this.searchIndex}); } +class BreakfastMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + BreakfastMenu({this.item, this.price, this.searchIndex}); +} +class PaneerMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + PaneerMenu({this.item, this.price, this.searchIndex}); +} +class MainCourseMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + MainCourseMenu({this.item, this.price, this.searchIndex}); +} +class ChineseMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + ChineseMenu({this.item, this.price, this.searchIndex}); +} +class StarterMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + StarterMenu({this.item, this.price, this.searchIndex}); +} +class BiryaniMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + BiryaniMenu({this.item, this.price, this.searchIndex}); +} +class BreadMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + BreadMenu({this.item, this.price, this.searchIndex}); +} +class TandooriMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + TandooriMenu({this.item, this.price, this.searchIndex}); +} +class FriedRiceAndNoodlesMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + FriedRiceAndNoodlesMenu({this.item, this.price, this.searchIndex}); +} +class RollMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + RollMenu({this.item, this.price, this.searchIndex}); +} +class SandwichMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + SandwichMenu({this.item, this.price, this.searchIndex}); +} +class PizzaMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + PizzaMenu({this.item, this.price, this.searchIndex}); +} +class SnacksMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + SnacksMenu({this.item, this.price, this.searchIndex}); +} +class BurgerMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + BurgerMenu({this.item, this.price, this.searchIndex}); +} +class PastaMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + PastaMenu({this.item, this.price, this.searchIndex}); +} +class SoupMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + SoupMenu({this.item, this.price, this.searchIndex}); +} +class AccompanimentMenu { + String item = ''; + int price = 0; + String searchIndex = ''; + + AccompanimentMenu({this.item, this.price, this.searchIndex}); +} class Orders { List item; diff --git a/lib/pages/Cart.dart b/lib/pages/Cart.dart index a0a095b..3f7b4de 100644 --- a/lib/pages/Cart.dart +++ b/lib/pages/Cart.dart @@ -1,4 +1,7 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/pages/Food.dart'; import 'package:rcapp/pages/order_cart.dart'; import 'package:rcapp/pages/storeData.dart'; @@ -15,10 +18,25 @@ class _CartState extends State { StoreData storeDataforCart = StoreData(); + var address = ''; + + void init() async { + var user = await FirebaseAuth.instance.currentUser(); + var _dat = await Firestore.instance + .collection('userInfo') + .document(user.uid) + .get(); + + setState(() { + address = _dat.data["address"]; + }); + } + @override void initState() { // TODO: implement initState super.initState(); + init(); updateTotal(); } @@ -71,7 +89,49 @@ class _CartState extends State { title: Text('Cart'), ), body: Column(children: [ - SizedBox(height: 30), + SizedBox(height: 10), + Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + margin: EdgeInsets.only(left: 20), + child: Text( + 'Deliver To:', + style: TextStyle( + color: Colors.deepOrange, + fontWeight: FontWeight.bold), + ), + ), + Row(children: [ + Container( + child: Text( + 'Change/Add', + style: TextStyle( + decoration: TextDecoration.underline, + color: Colors.deepOrange, + fontWeight: FontWeight.bold), + ), + ), + Container( + margin: EdgeInsets.only(right: 15), + child: IconButton( + icon: Icon(Icons.edit), + color: Colors.deepOrange, + onPressed: () { + Navigator.popAndPushNamed(context, '/address'); + }, + ), + ) + ]) + ], + ), + Text( + '$address' + ) + ], + ), OrderCard(total: total), Expanded( child: ListView.builder( @@ -124,7 +184,7 @@ class _CartState extends State { children: [ Container( margin: - new EdgeInsets.symmetric(horizontal: 50.0), + new EdgeInsets.symmetric(horizontal: 50.0), child: Text( '₹' + '$price' + ' Quantity: ' + '$qty', style: TextStyle( @@ -146,16 +206,7 @@ class _CartState extends State { ); }), ), - Container( - width: double.infinity, - height: 50, - child:FlatButton( - color: Colors.deepOrange, - onPressed: () { - Navigator.pushNamed(context, '/confirmOrder'); - }, - child: Text('Proceed to Pay', style: TextStyle(color: Colors.white),)) - ), + ProceedAccess(address: address) ])); } } @@ -171,12 +222,12 @@ class QuantityInCart extends StatefulWidget { QuantityInCart( {this.index, - this.price, - this.qtyList, - this.qty, - this.keyname, - this.quantityDecreement, - this.quantityIncreement}); + this.price, + this.qtyList, + this.qty, + this.keyname, + this.quantityDecreement, + this.quantityIncreement}); @override _QuantityInCartState createState() => _QuantityInCartState(); } @@ -299,4 +350,47 @@ class _QuantityInCartState extends State { ); } } -} \ No newline at end of file +} + +class ProceedAccess extends StatefulWidget { + var address; + ProceedAccess({this.address}); + @override + _ProceedAccessState createState() => _ProceedAccessState(); +} + +class _ProceedAccessState extends State { + @override + Widget build(BuildContext context) { + if (widget.address == '') { + return Container( + width: double.infinity, + height: 50, + child: FlatButton( + color: Colors.deepOrange, + onPressed: () { + Navigator.pushNamed(context, '/address'); + }, + child: Text( + 'Add address to proceed', + style: TextStyle(color: Colors.white), + ))); + } else if (widget.address != '') { + return Container( + width: double.infinity, + height: 50, + child: FlatButton( + color: Colors.deepOrange, + onPressed: () { + Navigator.pushNamed(context, '/confirmOrder'); + }, + child: Text( + 'Proceed to Pay', + style: TextStyle(color: Colors.white), + ))); + } else if (widget.address == null) { + return Container( + width: double.infinity, height: 50, child: SpinKitChasingDots()); + } + } +} diff --git a/lib/pages/CategoryMenuList/Accompaniment_Menu.dart b/lib/pages/CategoryMenuList/Accompaniment_Menu.dart new file mode 100644 index 0000000..61d8ebc --- /dev/null +++ b/lib/pages/CategoryMenuList/Accompaniment_Menu.dart @@ -0,0 +1,233 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/Cart.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Accompaniment_Menu extends StatefulWidget { + @override + _Accompaniment_MenuState createState() => _Accompaniment_MenuState(); +} + +class _Accompaniment_MenuState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().accompanimentmenu, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: AccompanimentMenuListPage(), + ) + ], + ), + ), + ); + } +} + +class AccompanimentMenuListPage extends StatefulWidget { + @override + _AccompanimentMenuListPageState createState() => _AccompanimentMenuListPageState(); +} + +class _AccompanimentMenuListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(AccompanimentMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + Container( + height: 45, + width: 42, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + addToCart(_menuList[index]); + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/All_Menu.dart b/lib/pages/CategoryMenuList/All_Menu.dart new file mode 100644 index 0000000..a6388ee --- /dev/null +++ b/lib/pages/CategoryMenuList/All_Menu.dart @@ -0,0 +1,233 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/Cart.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class AllMenu extends StatefulWidget { + @override + _AllMenuState createState() => _AllMenuState(); +} + +class _AllMenuState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().allmenu, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: AllMenuListPage(), + ) + ], + ), + ), + ); + } +} + +class AllMenuListPage extends StatefulWidget { + @override + _AllMenuListPageState createState() => _AllMenuListPageState(); +} + +class _AllMenuListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(Menu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + Container( + height: 45, + width: 42, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + addToCart(_menuList[index]); + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Biryani_MenuList.dart b/lib/pages/CategoryMenuList/Biryani_MenuList.dart new file mode 100644 index 0000000..82ca122 --- /dev/null +++ b/lib/pages/CategoryMenuList/Biryani_MenuList.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Biryani_MenuList extends StatefulWidget { + @override + _Biryani_MenuListState createState() => _Biryani_MenuListState(); +} + +class _Biryani_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().biryani, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: BiryaniMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class BiryaniMenuListListPage extends StatefulWidget { + @override + _BiryaniMenuListListPageState createState() => _BiryaniMenuListListPageState(); +} + +class _BiryaniMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(BiryaniMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Bread_Menu.dart b/lib/pages/CategoryMenuList/Bread_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/CategoryMenuList/Breakfast_Menu.dart b/lib/pages/CategoryMenuList/Breakfast_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/CategoryMenuList/Burger_Menu.dart b/lib/pages/CategoryMenuList/Burger_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/CategoryMenuList/Chinese_Menu.dart b/lib/pages/CategoryMenuList/Chinese_Menu.dart new file mode 100644 index 0000000..435d2c4 --- /dev/null +++ b/lib/pages/CategoryMenuList/Chinese_Menu.dart @@ -0,0 +1,232 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class ChineseMenuList extends StatefulWidget { + @override + _ChineseMenuListState createState() => _ChineseMenuListState(); +} + +class _ChineseMenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().chinese, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: ChineseMenuListPage(), + ) + ], + ), + ), + ); + } +} + +class ChineseMenuListPage extends StatefulWidget { + @override + _ChineseMenuListPageState createState() => _ChineseMenuListPageState(); +} + +class _ChineseMenuListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(ChineseMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + addToCart(_menuList[index]); + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart b/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/CategoryMenuList/MainCourse_Menu.dart b/lib/pages/CategoryMenuList/MainCourse_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/CategoryMenuList/Paneer_Menu.dart b/lib/pages/CategoryMenuList/Paneer_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/CategoryMenuList/Pasta_Menu.dart b/lib/pages/CategoryMenuList/Pasta_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/CategoryMenuList/Pizza_Menu.dart b/lib/pages/CategoryMenuList/Pizza_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/CategoryMenuList/Roll_Menu.dart b/lib/pages/CategoryMenuList/Roll_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/CategoryMenuList/Sandwich_Menu.dart b/lib/pages/CategoryMenuList/Sandwich_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/CategoryMenuList/Snacks_Menu.dart b/lib/pages/CategoryMenuList/Snacks_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/CategoryMenuList/Soup_Menu.dart b/lib/pages/CategoryMenuList/Soup_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/CategoryMenuList/Starter_Menu.dart b/lib/pages/CategoryMenuList/Starter_Menu.dart new file mode 100644 index 0000000..9a4f6b7 --- /dev/null +++ b/lib/pages/CategoryMenuList/Starter_Menu.dart @@ -0,0 +1,234 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class StarterMenuList extends StatefulWidget { + @override + _StarterMenuListState createState() => _StarterMenuListState(); +} + +class _StarterMenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().starter, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: StarterMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class StarterMenuListListPage extends StatefulWidget { + @override + _StarterMenuListListPageState createState() => _StarterMenuListListPageState(); +} + +class _StarterMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(StarterMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + addToCart(_menuList[index]); + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Tandoori_Menu.dart b/lib/pages/CategoryMenuList/Tandoori_Menu.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/Food.dart b/lib/pages/Food.dart index 49564c9..f208545 100644 --- a/lib/pages/Food.dart +++ b/lib/pages/Food.dart @@ -1,26 +1,20 @@ import 'package:flutter/material.dart'; -import 'package:carousel_pro/carousel_pro.dart'; -// import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/CustomWidget/foot_category.dart'; -import 'package:rcapp/CustomWidget/menu_category.dart'; import 'package:rcapp/models/user.dart'; import 'package:rcapp/pages/Search.dart'; import 'package:rcapp/pages/storeData.dart'; -import 'package:provider/provider.dart'; -import 'package:rcapp/services/database.dart'; -var cartList = []; +// var cartList = []; -class Orders { - final String item; - final int price; - final int quantity; +// class Orders { +// final String item; +// final int price; +// final int quantity; - Orders(this.item, this.price, this.quantity); -} +// Orders(this.item, this.price, this.quantity); +// } -Orders newOrder; +// Orders newOrder; class Food extends StatefulWidget { @override @@ -60,103 +54,89 @@ class _FoodState extends State { @override Widget build(BuildContext context) { - return StreamProvider>.value( - value: DatabaseService().chinese, - child: Scaffold( - appBar: AppBar( - automaticallyImplyLeading: false, - elevation: 10.0, - backgroundColor: Colors.deepOrange, - title: Text("Menu"), - actions: [ - IconButton( - icon: Icon( - Icons.shopping_cart, - color: Colors.white, - ), - onPressed: () { - Navigator.pushNamed(context, '/cart'); - }, - ) - ], - ), - body: Column(children: [ - Expanded( - child: new ListView( - padding: EdgeInsets.all(10), - children: [ - SizedBox(height: 10.0), - Search(), - SizedBox(height: 10.0), - Container( - padding: EdgeInsets.fromLTRB(10, 0, 0, 0), - child: Text( - "Today's Menu", - style: TextStyle( - color: Colors.grey, - fontSize: 25, - fontWeight: FontWeight.bold, - ), + return Scaffold( + appBar: AppBar( + automaticallyImplyLeading: false, + elevation: 10.0, + backgroundColor: Colors.deepOrange, + title: Text("Menu"), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column(children: [ + Expanded( + child: new ListView( + padding: EdgeInsets.all(10), + children: [ + SizedBox(height: 10.0), + Search(), + SizedBox(height: 10.0), + Container( + padding: EdgeInsets.fromLTRB(10, 0, 0, 0), + child: Text( + "Today's Menu", + style: TextStyle( + color: Colors.grey, + fontSize: 25, + fontWeight: FontWeight.bold, ), ), - SizedBox(height: 10.0), - FoodCategory(), - SizedBox(height: 10.0), - Container( - padding: EdgeInsets.fromLTRB(10, 0, 0, 0), - child: Text( - "Categories", - style: TextStyle( - color: Colors.grey, - fontSize: 20, - fontWeight: FontWeight.bold, - ), + ), + SizedBox(height: 10.0), + FoodCategory(), + SizedBox(height: 30.0), + Container( + padding: EdgeInsets.fromLTRB(10, 0, 0, 0), + child: Text( + "Categories: ", + style: TextStyle( + color: Colors.grey, + fontSize: 25, + fontWeight: FontWeight.bold, ), ), - MenuCategories(), - SizedBox(height: 10.0), - Container( - width: double.infinity, + ), + ListPage(update: update), + ], + ), + ), + SizedBox(height: 10.0), + Container( + width: double.maxFinite, + height: 54, + decoration: BoxDecoration(color: Colors.deepOrange), + child: Padding( + padding: EdgeInsets.symmetric(vertical: 0, horizontal: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + '$qty ' + ' item ' + '|' + ' ' + '₹ ' + '$total', + style: TextStyle( + color: Colors.white, fontWeight: FontWeight.bold), + ), + InkWell( + onTap: (() => Navigator.pushNamed(context, '/cart')), child: Text( - ' Menu: (Tap to add to cart)', + 'VIEW CART', style: TextStyle( - fontSize: 18, - color: Colors.deepOrange, - fontWeight: FontWeight.bold), + color: Colors.white, fontWeight: FontWeight.bold), ), - ), - ListPage(update: update), + ) ], ), ), - Container( - width: double.maxFinite, - height: 54, - decoration: BoxDecoration(color: Colors.deepOrange), - child: Padding( - padding: EdgeInsets.symmetric(vertical: 0, horizontal: 20), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - '$qty ' + ' item ' + '|' + ' ' + '₹ ' + '$total', - style: TextStyle( - color: Colors.white, fontWeight: FontWeight.bold), - ), - InkWell( - onTap: (() => Navigator.pushNamed(context, '/cart')), - child: Text( - 'VIEW CART', - style: TextStyle( - color: Colors.white, fontWeight: FontWeight.bold), - ), - ) - ], - ), - ), - ) - ]), - ), + ) + ]), ); } } @@ -219,7 +199,7 @@ class _QuantityState extends State { width: 66, child: Center( child: - Text('Remove', style: TextStyle(color: Colors.deepOrange))), + Text('Remove', style: TextStyle(color: Colors.deepOrange))), ), ); } @@ -251,84 +231,337 @@ class _ListPageState extends State { @override Widget build(BuildContext context) { - final _menuList = Provider.of>(context) ?? []; - if (_menuList.length == 0) { - return Container( - height: 200, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SpinKitDualRing( - color: Colors.deepOrange, - size: 38, + return Container( + margin: const EdgeInsets.all(10.0), + height: 400.0, + width: double.infinity, + child: new Column( + children: [ + Expanded( + child: ListView( + shrinkWrap: true, + physics: ClampingScrollPhysics(), + scrollDirection: Axis.horizontal, + children: [ + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/30.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/29.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/38.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/39.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + ], ), - SizedBox(height: 20), - Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) - ]), - ); - } else { - return Container( - child: ListView.builder( - physics: NeverScrollableScrollPhysics(), - shrinkWrap: true, - itemCount: _menuList.length, - itemBuilder: (_, index) { - return ListTile( - onTap: () { - addToCart(_menuList[index]); - widget.update(); - }, - title: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - children: [ - IconButton( - onPressed: () { - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), - Text( - '${_menuList[index].item}', - style: TextStyle( - fontSize: 17, fontWeight: FontWeight.bold), - ), - ], - ), - // Quantity() - ], + ), + SizedBox(height: 20), + Expanded( + child: ListView( + shrinkWrap: true, + physics: ClampingScrollPhysics(), + scrollDirection: Axis.horizontal, + children: [ + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), ), - Row( - children: [ - Container( - margin: new EdgeInsets.symmetric(horizontal: 50.0), - child: Text( - '₹' + '${_menuList[index].price}', - style: TextStyle( - fontSize: 15, fontWeight: FontWeight.bold), - ), - ), - ], + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/33.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), ), - SizedBox(height: 10.0), - const Divider( - color: Colors.grey, - height: 2, - thickness: 1, - indent: 5, - endIndent: 5, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/34.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), ), - ], + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/27.jpg"), + fit: BoxFit.fill)), + ), ), - ); - })); - } + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/31.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + ], + ), + ), + SizedBox(height: 20), + Expanded( + child: ListView( + shrinkWrap: true, + physics: ClampingScrollPhysics(), + scrollDirection: Axis.horizontal, + children: [ + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/32.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/35.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/36.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/26.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + ], + ), + ), + SizedBox(height: 20), + Expanded( + child: ListView( + shrinkWrap: true, + physics: ClampingScrollPhysics(), + scrollDirection: Axis.horizontal, + children: [ + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/28.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/31.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/cart"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Center( + child: Text('test'), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/37.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + ], + ), + ), + ], + )); } -} \ No newline at end of file +} diff --git a/lib/pages/address.dart b/lib/pages/address.dart index 461b405..c759993 100644 --- a/lib/pages/address.dart +++ b/lib/pages/address.dart @@ -99,7 +99,7 @@ class _AddressFormState extends State { color: Colors.deepOrange, width: 3.0), borderRadius: BorderRadius.circular(10))), validator: (val) => - val.isEmpty ? 'Please Enter Your Area' : null, + val.isEmpty ? 'Please Enter Your Area' : null, obscureText: false, onChanged: (val) { setState(() => _area = val); @@ -119,7 +119,7 @@ class _AddressFormState extends State { color: Colors.deepOrange, width: 3.0), borderRadius: BorderRadius.circular(10))), validator: (val) => - val.isEmpty ? 'Please Enter Your City' : null, + val.isEmpty ? 'Please Enter Your City' : null, obscureText: false, onChanged: (val) { setState(() => _city = val); @@ -139,7 +139,7 @@ class _AddressFormState extends State { color: Colors.deepOrange, width: 3.0), borderRadius: BorderRadius.circular(10))), validator: (val) => - val.isEmpty ? 'Please Enter Your Pincode' : null, + val.isEmpty ? 'Please Enter Your Pincode' : null, obscureText: false, onChanged: (val) { setState(() => _pincode = val); @@ -179,9 +179,9 @@ class _AddressFormState extends State { .updateAddressData(user, _finaladdress); if (result != null) { setState(() => error = - 'could not upload address, please try again'); + 'could not upload address, please try again'); } else { - Navigator.pushNamed(context, '/Home'); + Navigator.popAndPushNamed(context, '/cart'); } } }, @@ -196,4 +196,4 @@ class _AddressFormState extends State { ), ); } -} \ No newline at end of file +} diff --git a/lib/pages/wrapper.dart b/lib/pages/wrapper.dart index c7e6469..62c80c4 100644 --- a/lib/pages/wrapper.dart +++ b/lib/pages/wrapper.dart @@ -1,11 +1,10 @@ import 'package:flutter/material.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/All_Menu.dart'; import 'package:rcapp/pages/Authenticate.dart'; -import 'package:rcapp/pages/Home.dart'; import 'package:rcapp/pages/NavigationBar.dart'; import 'package:provider/provider.dart'; - class Wrapper extends StatelessWidget { @override Widget build(BuildContext context) { diff --git a/lib/services/database.dart b/lib/services/database.dart index 1a54a96..417b280 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -10,8 +10,47 @@ class DatabaseService { final CollectionReference foodCollection = Firestore.instance.collection('food'); + + //collection reference to different categories of food from firestore + final CollectionReference allmenufoods = + Firestore.instance.collection('All_Menu'); + final CollectionReference breakfastmenufoods = + Firestore.instance.collection('Breakfast'); final CollectionReference chinesefoods = Firestore.instance.collection('chinese'); + final CollectionReference biryanifoods = + Firestore.instance.collection('Biryani'); + final CollectionReference starterfoods = + Firestore.instance.collection('Starter'); + final CollectionReference paneerfoods = + Firestore.instance.collection('Paneer'); + final CollectionReference maincoursefoods = + Firestore.instance.collection('MainCourse'); + final CollectionReference breadsfoods = + Firestore.instance.collection('Breads'); + final CollectionReference tandoorifoods = + Firestore.instance.collection('Tandoori'); + final CollectionReference friedriceandnoodlesfoods = + Firestore.instance.collection('FriedRice_Noodles'); + final CollectionReference rollfoods = + Firestore.instance.collection('Roll'); + final CollectionReference pizzafoods = + Firestore.instance.collection('Pizza'); + final CollectionReference snacksfoods = + Firestore.instance.collection('Snacks'); + final CollectionReference sandwichfoods = + Firestore.instance.collection('Sandwich'); + final CollectionReference burgerfoods = + Firestore.instance.collection('Burger'); + final CollectionReference pastafoods = + Firestore.instance.collection('Pasta'); + final CollectionReference soupfoods = + Firestore.instance.collection('Soup'); + final CollectionReference accompanimentfoods = + Firestore.instance.collection('Accompaniments'); + + + final CollectionReference userInfo = Firestore.instance.collection('userInfo'); @@ -60,6 +99,10 @@ class DatabaseService { return qn.documents; } + + + //Database related to categories of food data retrieval form firebase + List _menuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return Menu( @@ -68,6 +111,147 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _maincoursemenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return MainCourseMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _chinesemenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return ChineseMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _startermenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return StarterMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _biryanimenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return BiryaniMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _paneermenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return PaneerMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _breadmenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return BreadMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _tandoorimenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return TandooriMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _firedriceandnoodlesmenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return FriedRiceAndNoodlesMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _rollmenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return RollMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _sandwichmenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return SandwichMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _pizzamenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return PizzaMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _snackmenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return SnacksMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _burgermenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return BurgerMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _pastamenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return PastaMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _soupmenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return SoupMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _accompanimentmenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return AccompanimentMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + List _breakfastmenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return BreakfastMenu( + item: doc.data["item"] ?? '', + price: doc.data["price"] ?? 0, + searchIndex: doc.data["search_index"] ?? ''); + }).toList(); + } + + + + + //Storing order data of customers as confirmedOrders in firesore_database List _orderListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { @@ -82,9 +266,68 @@ class DatabaseService { }).toList(); } - Stream> get chinese { - return chinesefoods.snapshots().map(_menuListFromSnapshot); + + + //Stream provider for different categories of food in widgets + + Stream> get chinese { + return chinesefoods.snapshots().map(_chinesemenuListFromSnapshot); + } + Stream> get maincourse { + return maincoursefoods.snapshots().map(_maincoursemenuListFromSnapshot); + } + Stream> get paneer { + return paneerfoods.snapshots().map(_paneermenuListFromSnapshot); + } + Stream> get biryani { + return biryanifoods.snapshots().map(_biryanimenuListFromSnapshot); + } + Stream> get starter { + return starterfoods.snapshots().map(_startermenuListFromSnapshot); } + Stream> get allmenu { + return starterfoods.snapshots().map(_menuListFromSnapshot); + } + Stream> get breadmenu { + return breadsfoods.snapshots().map(_breadmenuListFromSnapshot); + } + Stream> get tandoorimenu { + return tandoorifoods.snapshots().map(_tandoorimenuListFromSnapshot); + } + Stream> get friedriceandmenu { + return friedriceandnoodlesfoods.snapshots().map(_firedriceandnoodlesmenuListFromSnapshot); + } + Stream> get rollmenu { + return rollfoods.snapshots().map(_rollmenuListFromSnapshot); + } + Stream> get sandwichmenu { + return sandwichfoods.snapshots().map(_sandwichmenuListFromSnapshot); + } + Stream> get pizzamenu { + return pizzafoods.snapshots().map(_pizzamenuListFromSnapshot); + } + Stream> get snackmenu { + return snacksfoods.snapshots().map(_snackmenuListFromSnapshot); + } + Stream> get burgermenu { + return burgerfoods.snapshots().map(_burgermenuListFromSnapshot); + } + Stream> get pastamenu { + return pastafoods.snapshots().map(_pastamenuListFromSnapshot); + } + Stream> get soupmenu { + return soupfoods.snapshots().map(_soupmenuListFromSnapshot); + } + Stream> get accompanimentmenu { + return accompanimentfoods.snapshots().map(_accompanimentmenuListFromSnapshot); + } + Stream> get breakfastmenu { + return accompanimentfoods.snapshots().map(_breakfastmenuListFromSnapshot); + } + + + + final CollectionReference menuorders = Firestore.instance.collection("confirmedOrders"); From 8412528a2d1ed1ad4fdf15cb67f69b5f21d11e98 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Mon, 17 Aug 2020 01:08:31 +0530 Subject: [PATCH 02/29] created routes for categories in main.dart --- lib/main.dart | 36 ++- lib/pages/CategoryMenuList/All_Menu.dart | 3 +- lib/pages/CategoryMenuList/Bread_Menu.dart | 236 ++++++++++++++++++ .../CategoryMenuList/Breakfast_Menu.dart | 236 ++++++++++++++++++ lib/pages/CategoryMenuList/Burger_Menu.dart | 236 ++++++++++++++++++ .../FriedRiceAndNoodles_Menu.dart | 236 ++++++++++++++++++ .../CategoryMenuList/MainCourse_Menu.dart | 236 ++++++++++++++++++ lib/pages/CategoryMenuList/Paneer_Menu.dart | 236 ++++++++++++++++++ lib/pages/CategoryMenuList/Pasta_Menu.dart | 236 ++++++++++++++++++ lib/pages/CategoryMenuList/Pizza_Menu.dart | 236 ++++++++++++++++++ lib/pages/CategoryMenuList/Roll_Menu.dart | 236 ++++++++++++++++++ lib/pages/CategoryMenuList/Sandwich_Menu.dart | 236 ++++++++++++++++++ lib/pages/CategoryMenuList/Snacks_Menu.dart | 236 ++++++++++++++++++ lib/pages/CategoryMenuList/Soup_Menu.dart | 236 ++++++++++++++++++ lib/pages/CategoryMenuList/Tandoori_Menu.dart | 236 ++++++++++++++++++ lib/pages/Food.dart | 2 +- 16 files changed, 3105 insertions(+), 4 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index f660e55..18d34cf 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,22 @@ import 'package:flutter/material.dart'; import 'package:rcapp/pages/Cart.dart'; +import 'package:rcapp/pages/CategoryMenuList/Accompaniment_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/All_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Biryani_MenuList.dart'; +import 'package:rcapp/pages/CategoryMenuList/Bread_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Breakfast_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Burger_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/MainCourse_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Paneer_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Pasta_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Pizza_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Roll_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Sandwich_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Snacks_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Soup_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Starter_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Tandoori_Menu.dart'; import 'package:rcapp/pages/Food.dart'; import 'package:rcapp/pages/NavigationBar.dart'; import 'package:rcapp/pages/add_event.dart'; @@ -36,7 +53,24 @@ class MyApp extends StatelessWidget { "/address" : (context) => AddressForm(), //routes for different categories of food - // "/indian" : (context) => + "/allmenu" : (context) => AllMenu(), + "/biryanimenu" : (context) => Biryani_MenuList(), + "/breadmenu" : (context) => Bread_MenuList(), + "/breakfastmenu" : (context) => Breakfast_MenuList(), + "/burgermenu" : (context) => Burger_MenuList(), + "/chinesemenu" : (context) => Burger_MenuList(), + "/friedriceandnoodlesmenu" : (context) => FriedRiceAndNoodles_MenuList(), + "/maincoursemenu" : (context) => MainCourse_MenuList(), + "/paneermenu" : (context) => Paneer_MenuList(), + "/pastamenu" : (context) => Pasta_MenuList(), + "/pizzamenu" : (context) => Pizza_MenuList(), + "/rollmenu" : (context) => Roll_MenuList(), + "/sandwichmenu" : (context) => Sandwich_MenuList(), + "/snacksmenu" : (context) => Snacks_MenuList(), + "/soupmenu" : (context) => Soup_MenuList(), + "/startermenu" : (context) => StarterMenuList(), + "/tandoorimenu" : (context) => Tandoori_MenuList(), + "/accompanimentmenu" : (context) => Accompaniment_Menu(), }, ), ); diff --git a/lib/pages/CategoryMenuList/All_Menu.dart b/lib/pages/CategoryMenuList/All_Menu.dart index a6388ee..67a4c18 100644 --- a/lib/pages/CategoryMenuList/All_Menu.dart +++ b/lib/pages/CategoryMenuList/All_Menu.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; -import 'package:rcapp/pages/Cart.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -33,7 +32,7 @@ class _AllMenuState extends State { color: Colors.white, ), onPressed: () { - Navigator.pushNamed(context, '/cart'); + Navigator.pushReplacementNamed(context, '/cart'); // Navigator.popAndPushNamed(context, '/cart'); }, ) diff --git a/lib/pages/CategoryMenuList/Bread_Menu.dart b/lib/pages/CategoryMenuList/Bread_Menu.dart index e69de29..9d37044 100644 --- a/lib/pages/CategoryMenuList/Bread_Menu.dart +++ b/lib/pages/CategoryMenuList/Bread_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Bread_MenuList extends StatefulWidget { + @override + _Bread_MenuListState createState() => _Bread_MenuListState(); +} + +class _Bread_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().breadmenu, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: BiryaniMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class BiryaniMenuListListPage extends StatefulWidget { + @override + _BiryaniMenuListListPageState createState() => _BiryaniMenuListListPageState(); +} + +class _BiryaniMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(BreadMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Breakfast_Menu.dart b/lib/pages/CategoryMenuList/Breakfast_Menu.dart index e69de29..a4e2cd5 100644 --- a/lib/pages/CategoryMenuList/Breakfast_Menu.dart +++ b/lib/pages/CategoryMenuList/Breakfast_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Breakfast_MenuList extends StatefulWidget { + @override + _Breakfast_MenuListState createState() => _Breakfast_MenuListState(); +} + +class _Breakfast_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().breadmenu, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: BreadMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class BreadMenuListListPage extends StatefulWidget { + @override + _BreadMenuListListPageState createState() => _BreadMenuListListPageState(); +} + +class _BreadMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(BreadMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Burger_Menu.dart b/lib/pages/CategoryMenuList/Burger_Menu.dart index e69de29..42a4964 100644 --- a/lib/pages/CategoryMenuList/Burger_Menu.dart +++ b/lib/pages/CategoryMenuList/Burger_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Burger_MenuList extends StatefulWidget { + @override + _Burger_MenuListState createState() => _Burger_MenuListState(); +} + +class _Burger_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().burgermenu, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: BurgerMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class BurgerMenuListListPage extends StatefulWidget { + @override + _BurgerMenuListListPageState createState() => _BurgerMenuListListPageState(); +} + +class _BurgerMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(BurgerMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart b/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart index e69de29..26bd340 100644 --- a/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart +++ b/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class FriedRiceAndNoodles_MenuList extends StatefulWidget { + @override + _FriedRiceAndNoodles_MenuListState createState() => _FriedRiceAndNoodles_MenuListState(); +} + +class _FriedRiceAndNoodles_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().friedriceandmenu, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: FriedRiceAndNoodlesMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class FriedRiceAndNoodlesMenuListListPage extends StatefulWidget { + @override + _FriedRiceAndNoodlesMenuListListPageState createState() => _FriedRiceAndNoodlesMenuListListPageState(); +} + +class _FriedRiceAndNoodlesMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(FriedRiceAndNoodlesMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/MainCourse_Menu.dart b/lib/pages/CategoryMenuList/MainCourse_Menu.dart index e69de29..2e7c6c2 100644 --- a/lib/pages/CategoryMenuList/MainCourse_Menu.dart +++ b/lib/pages/CategoryMenuList/MainCourse_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class MainCourse_MenuList extends StatefulWidget { + @override + _MainCourse_MenuListState createState() => _MainCourse_MenuListState(); +} + +class _MainCourse_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().maincourse, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: MainCourseMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class MainCourseMenuListListPage extends StatefulWidget { + @override + _MainCourseMenuListListPageState createState() => _MainCourseMenuListListPageState(); +} + +class _MainCourseMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(MainCourseMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Paneer_Menu.dart b/lib/pages/CategoryMenuList/Paneer_Menu.dart index e69de29..7fde495 100644 --- a/lib/pages/CategoryMenuList/Paneer_Menu.dart +++ b/lib/pages/CategoryMenuList/Paneer_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Paneer_MenuList extends StatefulWidget { + @override + _Paneer_MenuListState createState() => _Paneer_MenuListState(); +} + +class _Paneer_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().paneer, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: PaneerMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class PaneerMenuListListPage extends StatefulWidget { + @override + _PaneerMenuListListPageState createState() => _PaneerMenuListListPageState(); +} + +class _PaneerMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(PaneerMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Pasta_Menu.dart b/lib/pages/CategoryMenuList/Pasta_Menu.dart index e69de29..9467f64 100644 --- a/lib/pages/CategoryMenuList/Pasta_Menu.dart +++ b/lib/pages/CategoryMenuList/Pasta_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Pasta_MenuList extends StatefulWidget { + @override + _Pasta_MenuListState createState() => _Pasta_MenuListState(); +} + +class _Pasta_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().paneer, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: PaneerMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class PaneerMenuListListPage extends StatefulWidget { + @override + _PaneerMenuListListPageState createState() => _PaneerMenuListListPageState(); +} + +class _PaneerMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(PaneerMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Pizza_Menu.dart b/lib/pages/CategoryMenuList/Pizza_Menu.dart index e69de29..5275f49 100644 --- a/lib/pages/CategoryMenuList/Pizza_Menu.dart +++ b/lib/pages/CategoryMenuList/Pizza_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Pizza_MenuList extends StatefulWidget { + @override + _Pizza_MenuListState createState() => _Pizza_MenuListState(); +} + +class _Pizza_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().pizzamenu, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: PizzaMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class PizzaMenuListListPage extends StatefulWidget { + @override + _PizzaMenuListListPageState createState() => _PizzaMenuListListPageState(); +} + +class _PizzaMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(PizzaMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Roll_Menu.dart b/lib/pages/CategoryMenuList/Roll_Menu.dart index e69de29..37c3c7a 100644 --- a/lib/pages/CategoryMenuList/Roll_Menu.dart +++ b/lib/pages/CategoryMenuList/Roll_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Roll_MenuList extends StatefulWidget { + @override + _Roll_MenuListState createState() => _Roll_MenuListState(); +} + +class _Roll_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().rollmenu, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: RollMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class RollMenuListListPage extends StatefulWidget { + @override + _RollMenuListListPageState createState() => _RollMenuListListPageState(); +} + +class _RollMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(RollMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Sandwich_Menu.dart b/lib/pages/CategoryMenuList/Sandwich_Menu.dart index e69de29..22fa511 100644 --- a/lib/pages/CategoryMenuList/Sandwich_Menu.dart +++ b/lib/pages/CategoryMenuList/Sandwich_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Sandwich_MenuList extends StatefulWidget { + @override + _Sandwich_MenuListState createState() => _Sandwich_MenuListState(); +} + +class _Sandwich_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().sandwichmenu, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: SandwichMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class SandwichMenuListListPage extends StatefulWidget { + @override + _SandwichMenuListListPageState createState() => _SandwichMenuListListPageState(); +} + +class _SandwichMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(SandwichMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Snacks_Menu.dart b/lib/pages/CategoryMenuList/Snacks_Menu.dart index e69de29..39147c9 100644 --- a/lib/pages/CategoryMenuList/Snacks_Menu.dart +++ b/lib/pages/CategoryMenuList/Snacks_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Snacks_MenuList extends StatefulWidget { + @override + _Snacks_MenuListState createState() => _Snacks_MenuListState(); +} + +class _Snacks_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().snackmenu, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: SnacksMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class SnacksMenuListListPage extends StatefulWidget { + @override + _SnacksMenuListListPageState createState() => _SnacksMenuListListPageState(); +} + +class _SnacksMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(SnacksMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Soup_Menu.dart b/lib/pages/CategoryMenuList/Soup_Menu.dart index e69de29..16548cf 100644 --- a/lib/pages/CategoryMenuList/Soup_Menu.dart +++ b/lib/pages/CategoryMenuList/Soup_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Soup_MenuList extends StatefulWidget { + @override + _Soup_MenuListState createState() => _Soup_MenuListState(); +} + +class _Soup_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().soupmenu, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: SoupMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class SoupMenuListListPage extends StatefulWidget { + @override + _SoupMenuListListPageState createState() => _SoupMenuListListPageState(); +} + +class _SoupMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(SoupMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/CategoryMenuList/Tandoori_Menu.dart b/lib/pages/CategoryMenuList/Tandoori_Menu.dart index e69de29..a47c2dc 100644 --- a/lib/pages/CategoryMenuList/Tandoori_Menu.dart +++ b/lib/pages/CategoryMenuList/Tandoori_Menu.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + +class Tandoori_MenuList extends StatefulWidget { + @override + _Tandoori_MenuListState createState() => _Tandoori_MenuListState(); +} + +class _Tandoori_MenuListState extends State { + StoreData dataforCart = StoreData(); + int total = 0; + + int qty = 0; + List qtyList = List(); + + @override + Widget build(BuildContext context) { + return StreamProvider>.value( + value: DatabaseService().tandoorimenu, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Category: All Menu'), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + // Navigator.popAndPushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column( + children: [ + Expanded( + child: TandooriMenuListListPage(), + ) + ], + ), + ), + ); + } +} + +class TandooriMenuListListPage extends StatefulWidget { + @override + _TandooriMenuListListPageState createState() => _TandooriMenuListListPageState(); +} + +class _TandooriMenuListListPageState extends State { + StoreData storeData = StoreData(); + int total = 0; + bool checked = false; + Map quantityDetail = Map(); + int qty = 0; + List qtyList = List(); + + void updateTotal() { + Map foodDetail = storeData.retrieveFoodDetails(); + Map qtyDetail = storeData.retrieveQtyDetails(); + + total = 0; + + setState(() { + qtyDetail.forEach((key, value) => qtyList.add(value)); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); + }); + } + + void quantityIncreement(String foodName) { + storeData.increaseQty(foodName); + updateTotal(); + } + + void quantityDecreement(String foodName) { + storeData.decreaseQty(foodName); + updateTotal(); + } + + void update() { + Map qtyCart = storeData.retrieveQtyDetails(); + Map foodDetail = storeData.retrieveFoodDetails(); + + setState(() { + qty = 0; + qtyCart.forEach((key, value) { + qty += value; + qtyList.add(value); + }); + foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + }); + } + + void addToCart(TandooriMenu post) { + String item = post.item; + int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + print(item); + } + + @override + Widget build(BuildContext context) { + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 200, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitDualRing( + color: Colors.deepOrange, + size: 38, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) + ]), + ); + } else { + return Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: _menuList.length, + itemBuilder: (_, index) { + return ListTile( + title: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + addToCart(_menuList[index]); + }, + icon: Icon( + Icons.radio_button_unchecked, + color: Colors.green, + ), + ), + Text( + '${_menuList[index].item}', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold), + ), + ], + ), + InkWell( + onTap: () { + addToCart(_menuList[index]); + }, + child: Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, + ), + ), + ), + ), + ], + ), + Row( + children: [ + Container( + margin: new EdgeInsets.symmetric( + vertical: 3, horizontal: 50.0), + child: Text( + '₹' + '${_menuList[index].price}', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ], + ), + Divider( + color: Colors.grey, + height: 2, + thickness: 1, + indent: 5, + endIndent: 5, + ), + ], + ), + ); + })), + ) + ], + ); + } + } +} diff --git a/lib/pages/Food.dart b/lib/pages/Food.dart index f208545..8ec7937 100644 --- a/lib/pages/Food.dart +++ b/lib/pages/Food.dart @@ -245,7 +245,7 @@ class _ListPageState extends State { children: [ InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/allmenu"); }, child: Container( height: 100.0, From 10e511194c46de0963d23acecaa250916eae051f Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Mon, 17 Aug 2020 01:13:31 +0530 Subject: [PATCH 03/29] new commit --- lib/services/database.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/services/database.dart b/lib/services/database.dart index 417b280..9cb1f8f 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -17,7 +17,7 @@ class DatabaseService { final CollectionReference breakfastmenufoods = Firestore.instance.collection('Breakfast'); final CollectionReference chinesefoods = - Firestore.instance.collection('chinese'); + Firestore.instance.collection('Chinese'); final CollectionReference biryanifoods = Firestore.instance.collection('Biryani'); final CollectionReference starterfoods = From b282376da07aa6983d22acaaca2392532484fa4e Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Tue, 18 Aug 2020 11:02:10 +0530 Subject: [PATCH 04/29] added link to the cart --- android/settings_aar.gradle | 1 + assets/26.jpg | Bin 0 -> 11699 bytes assets/27.jpg | Bin 0 -> 9706 bytes assets/28.jpg | Bin 0 -> 15523 bytes assets/29.jpg | Bin 0 -> 14905 bytes assets/30.jpg | Bin 0 -> 55886 bytes assets/31.jpg | Bin 0 -> 13293 bytes assets/32.jpg | Bin 0 -> 8834 bytes assets/33.jpg | Bin 0 -> 151103 bytes assets/34.jpg | Bin 0 -> 150516 bytes assets/35.jpg | Bin 0 -> 22685 bytes assets/36.jpg | Bin 0 -> 8454 bytes assets/37.jpg | Bin 0 -> 12555 bytes assets/38.jpg | Bin 0 -> 16622 bytes assets/39.jpg | Bin 0 -> 9918 bytes assets/40.jpg | Bin 0 -> 79887 bytes assets/login1.PNG | Bin 0 -> 14927 bytes assets/login2.PNG | Bin 0 -> 13746 bytes assets/login3.PNG | Bin 0 -> 13141 bytes lib/main.dart | 5 +- .../CategoryMenuList/Accompaniment_Menu.dart | 2 +- .../CategoryMenuList/Biryani_MenuList.dart | 3 +- lib/pages/CategoryMenuList/Bread_Menu.dart | 3 +- .../CategoryMenuList/Breakfast_Menu.dart | 3 +- lib/pages/CategoryMenuList/Burger_Menu.dart | 3 +- lib/pages/CategoryMenuList/Chinese_Menu.dart | 2 +- .../FriedRiceAndNoodles_Menu.dart | 3 +- .../CategoryMenuList/MainCourse_Menu.dart | 3 +- lib/pages/CategoryMenuList/Paneer_Menu.dart | 236 ------------------ lib/pages/CategoryMenuList/Pasta_Menu.dart | 9 +- lib/pages/CategoryMenuList/Pizza_Menu.dart | 5 +- lib/pages/CategoryMenuList/Roll_Menu.dart | 3 +- lib/pages/CategoryMenuList/Sandwich_Menu.dart | 3 +- lib/pages/CategoryMenuList/Snacks_Menu.dart | 3 +- lib/pages/CategoryMenuList/Soup_Menu.dart | 3 +- lib/pages/CategoryMenuList/Starter_Menu.dart | 2 +- lib/pages/CategoryMenuList/Tandoori_Menu.dart | 3 +- lib/pages/Food.dart | 90 ++++--- lib/pages/Login.dart | 48 ++-- lib/services/database.dart | 5 - pubspec.lock | 7 + pubspec.yaml | 1 + 42 files changed, 124 insertions(+), 322 deletions(-) create mode 100644 android/settings_aar.gradle create mode 100644 assets/26.jpg create mode 100644 assets/27.jpg create mode 100644 assets/28.jpg create mode 100644 assets/29.jpg create mode 100644 assets/30.jpg create mode 100644 assets/31.jpg create mode 100644 assets/32.jpg create mode 100644 assets/33.jpg create mode 100644 assets/34.jpg create mode 100644 assets/35.jpg create mode 100644 assets/36.jpg create mode 100644 assets/37.jpg create mode 100644 assets/38.jpg create mode 100644 assets/39.jpg create mode 100644 assets/40.jpg create mode 100644 assets/login1.PNG create mode 100644 assets/login2.PNG create mode 100644 assets/login3.PNG delete mode 100644 lib/pages/CategoryMenuList/Paneer_Menu.dart diff --git a/android/settings_aar.gradle b/android/settings_aar.gradle new file mode 100644 index 0000000..e7b4def --- /dev/null +++ b/android/settings_aar.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/assets/26.jpg b/assets/26.jpg new file mode 100644 index 0000000000000000000000000000000000000000..351b77313c0c7d9ea4c6872f17eedab5818f87b2 GIT binary patch literal 11699 zcmY*^==FGhxX6BxGp1E7P`vIUrJcU06;NbxPc=s7_w*rUuRS`RWtNSmV+eBb6JHtj}p|QS=CtBDs@-(ON#b*xD~r#&gb#SZKv{WQbM#>4*qz(qD^5i zmB*zdJKel8`uQh~uU7q_DcY+{i9o65^-#>BOSZ$}tkFcWR@x+e5mQ$G5B8w?l!an# z%p~%y~7~ zZnZRq>!3n#Tf{e>4u!^Y>gE$tILoE5kJx*1*7>0%HBKGsokGHRd#jHSEM?+fPLiKZ z8g;e(gmPfG$y&+tJ=|#itsziCz+(yzPk$ck@)rW7u~X3UOHX?X&#cCHDansVA0282wFjp0BWw>bE%@k zbGCKS&WOf&@^KH`h3cirP@!Xc5OU{5)0x!>r_ zAOF)(+Oko;vO2K=ZaDU}^fBod<#vz0xqv_c&YQBi=6{w<9iE##h=O1Nhu*YFzxrIM zAK^&7FiM$Zb?PJHZ!Ja*Kh28d*RZm)F|0FB|GoA#7eG#WopVfWX3IhAc5d7Ej=;={GKKO2(xN zlZZdOk`y()G=48=w_`O$B=nx9I`CB70dg6xUgeKZ9lDs?h(a~D`Lt_6nQwRijhjA4FDB2$5O1}h%mVLS z30`RK4xz1!5EgLcJb=}e_vKB6olk3GKYBXOZrj`|Y5pKe#h_=4UvBlXvWPsut)dkUK{;l<&`Y<_eMl}9mHWfZ3!!du7|8tDfYT>uxhJMx z@wND%z}FGCZD8g{Z_I1c0)~yr9rPK6-TYi5uZ3|9)E7u|U z)^c+@I~IOqX;tOwHB8a#duggdgHiblmE)) zSaX8;ej@N8Hw4m_*CK97YD<_{Ago~`0Xn)(jlAR14ROHRa&sQo2T%AGuQ%e8c)fm% zMP*AHe@d&!R;*tq$AZSo?&D3(J@g|EzbC5>IYPq^m_+wpAVXifDG?_Nlvn(oTq|KW z6qd&*?L0wgxf@|Xj+rtyemJ>Tgh3h!I;OPI2sV#$`{Ahm+fpEIQoZui>VYG=u!a8?7f`Q8`%6GY{ zqwwun&AzaStAURE{ES0LVW~TYOWMb;V$+H3<8gGeXXxZfZ$_-AMWuN`dM{p8ORzK> z>knjT+|3_-gt#C()%xK$Rco0LkjJ4+U%n5L4&b{Crk zQT@njCvYJ2CXDmE)PMSXXwOrF9}YjFV}Q(BuBWnbx%?=xyd_OHtF`(Lev)J#OhZrO=a2a>&kTSdLnKWiz};ay>F_4Ks{SmaZljZ1_l-#=aTi zYSKBAyoEw2nE@ALPMS)e91 z0MCb4Vy$XEY>dVjzV_7R*6M1pxX@O_Xyhdp#bKWP<{4#YT1MuM)C(T~c@?%fr6_}> zp3V}<$maG^5}uov(h$=4*UXN{vuZ!yj^dI3)o@DFkZ@JPLPhkd-4Lm-bs6l47Pw7T zcB9kP3tYT-CE=Mpn24q3zz>|yM%lht6gu}d)|#*!wgy57LWrR0U#SG7EL!4P7fyu} zWVjaPu>Om*_mGO668PO|RhtcHFvY9AJbB z!@?x)gueNxqMs?G$eHdTfLRR{0#!(d*0OQx!nwD9+u%lcCf}^iU=5P5Xpc!iRs<3J z-2~&|mkVBQqomr^z%h@)z!dpaF6`OGr>=IvE{Y3A`>i4sbUR=b5Y{ru{3p!B66N?2 zI*U)yo&iwIF1HT{^a(N*yuh7p#9)KJsCtjV2bK=gD}Alc>2*FXf`dXQDHrNghdS-s zlsLwoGLt2EU6>pA2t*i+nYnR(b53iu5!9-$RylBk`>LBmUSYZR1b%Lt4pBeQnZDw% zVe@i_x(`e`howbp4d@ z{IL5-LOUt7h4HZ(vYjsu>n_2Ym%L1vzr_wwO#b|J}?wThIOrA`~ek+{~ntf?u#LZ7UjuONaVphE!V7u+-t=9!~ zKx40YukRm=qVttFdMziMIG``2uz;nP2ZXrEjL^S_HH?$7q(q{jtT*lpy;;C&ME>kF zC!+8fC$5>(o<~^Tz=o`nc1A!K9gA$NLF%F@UoN-n*VhWk$X!e-J3MZ8wtP9(%MUzu zm~CJ6GA%n#%G`8k&JUKUOYM9ba0ehy$xWL0h!FM@q|ud%CP2f?a05SY>3kF3zeWqy zD;k|WDkBLFXWhs)x>llnHod?t2t=)zRMBq+Hg6ZhwXBI`nX8d0B;DU#tdWwY`l=#K zlPPS&Yd=0|?X=YPT1tvjtI^Q@bI#c?$|(4Vd6>9)6!8{3tuboQgzYq0lso2awyaxmB*=;8arX z3@f$1voXa6uIggF$=Qk532OsS1fgnA9VLzS| z8R>!$1gW_YxtRwmqAM$u^RvQPD!VFtVEodZ6BII1y~eUzofMqg%clUX!mStlX%ly28d zlijB@AeTlrDEE|s?*O3DduJ;h&EEg2C*YDAdd%;`V*pF+WCN#u3IaUDyp z1fN-~$~JrCSp%wC-utlx%UebDFu8+))6hc195IQMLGpmBXrKc7#B|>p*#{B3tSV9! z60pjWr6)$?SxrX!z#YK-D?KJlli0u~>(vitMxPKv7c%FN$bMtjs`fGC$`_t{#-&HS zVgZ8Oo6rSqZeG(K$f}u{pA@+9jJ`QK6JlP;RhTK*G=NRRN_o=}x?|D3|>T$%OdoR%8$budhK) z>8v~O>tu$X!ETuF*Vj#!2fe8@U!y30Y6O3lkt8p0pmbd_;B(WOHKzGWOv*!sA97k# zv_VwkBrEqAaDI}MGMKV36Kp~9E@!@16QqRsB`lyjLq>^q(>YAUo1xd|fG^0;%P@}_ z<2#!_jHvtYN4FkL zo=Ebl<*6f#K=7CI-0Hl$FAHDWeh>Y~GQTU;cX_q{%<)v9#DX>>6AR(r(S84r+2$sn(58 zQ|qi4lW6b_X#V!(Exq{W9Qon5f|a}tVjhoh074V;pf`?Ms?n z8jFST0vOOHLlKv4e=v}?au;unB5JtA6k6gDOq>NwKP2;N@o03O!3pT^Cr@%Hn zH^xE#?iDw+_;ZjU_|NpwhOybTVckI&5YbpB>@e)5yqIyELVa3uB?^Rtsf-~R;HBj9 zb3~y@Rgq{Q=Wsf;7SJH8uj4vRuE%}Co8s|*Ejn0z9H*eI#?^@UpzXN!X)jaTduO8g zYo)FxrDDPtB+w5_zhPq!{9GbmZvvQXUM}hmTiJe7i-Y(a=y#hNx(b<=XfnT~O z|GK#5{Th73O%g206f|f6I9lG|!hv)~x)@ss?O?qBd9SoYuw>ZK0bnomtHM{nMS57- zq1d+ZIP!JoCnjZY-KNOr#^)ywWj{&{NPhQB#(N&i+*!%x2|hOryU^K_A99rKD)rn# zf!1e|P!$zagFq}G>l=UkBfvBB9ld`VuF%^r+fvky?U}183_a=na0$-Gt`l*7+<`*e zvxs)cu0lR@sYQQr;hV&_XjxoC4>75;x0OY8^EBq92B=}<_Y$U|m_1h@Fkcl7%AV_Z zZ(1$|Vbe?q;Op8xYI4PYQG-nhpQYskC$94|Pc396a(O> z5RSB0d?#-SiXr==zMLd_nd#>4Ib040WV?ga^Ar3;bt;=0Xq{hk^C8EI!G&H9=skIF zvW;mR3C}LC-N|kg|HR7)ZnuzPMIwO-iKR9hXmBk4fDnOgCYD}0Q-*ywyrOdbkx+&L zBsQx7K1aL@Rr!u7=Gr#>LeEPA@YFz->}D_V8d#?oY2*kBI(kXh@y?DDq(M9Q1Q1S| zu=YBm7*6mrw^ydh=Z`GY`Y3vh{Kwm`W65nT10a>Z#%*a|t=8q?58B@WsND~17M;W) z=PITP#q)|m1bM&sea2Rh8O0h6K}1N{103r*W%ft@tP-cb96A_3(1HdEUfO?ap@Vs` zy=HPYzN4hoK->N!Wg~eeQ!p9=Hy(U?2nRWzu$)X z7tE(zXM4)pe*U>Vk9z(ihen!Ho-^pgtP~qL&}cULO^Ap=;;Y1?XrOZhJtEX$ z^SxQZ5%JYz=gup9x~-jSb_gEYEU+pRLc=nw$FEqI6qnc06OUQ@Vmw#`MW8W!B!%j) zJf4@zjbgRBFu|W19*?25zaC&a|HV_RWsh5qyiGwCAk7AhrBmnzMaBlqABAIF-p54 zL;fTSakWCU8(i697F>M&9LwVPla6G+XT``q2P9gUOIZ!rvfu0WU6R$`2xvQ0xCtzUF7yY?ENR^bjZ@2BNNecEN;u6#L!` zXo8M>1C$yJlXD{#wzom3>4lJ@$`t1%Gj~ihB`5M=9<52VF+Od$hwjqS@SQC;HlBi6 z>K6jPYact#N(2_;JwZknQjsxsZrk0WT@pTmW;ojMT|!Enk2&uE-;xbR^Ng|>t>kHB zW|yUtS9v_W-fHlQuaos{R<{pTn%@D2J>_XjWdQ3*drmB}J;7oh>(1{JZMds|&E;74qVtuv@48M#TEMT8FyXci7)=^%3Qw zba8p-CSQ($W}cc?CeOC%tnW3DT)2on-+=xkfnnaqBy&cT%6^`2ohjc^EY z{gz;z3n;{!Wo-MJcMZ8GtNUnZHM%aSVhBZgQL}MaBh>SY2tH5R8|wiRj^w3!%!&SF zC2p)a7D4x`Y*N_orM6Z)h8bPuLAoWk3?l&>`iF`OHOYJk0dbSZDLg6O=_enNZ6;Z4E&sSK!v9 zY_mE#0pW5|(4aPf?_>Lelwsl)8Lh1wFMh;us|2a&X6Hv|UwXNhJ{~3Hc5)ZyOM^m| zKqL^tmEyjL@agV^cLA7RDkZXITrH- zWUCFfHVY{LbNH^}ARb5DSAt@})U(!!>hR{h50ob4tIUvNvQ`J0@St zZ5D}JXhjqtD=IMYgz#u1Qu$Q%DEExsn0jf}>6s6|JD|g|&9rMBS*|fu;o;DtkK`$W zHHoGx$wb@gyeh5!(Z)P9zFUE{MZd&bmL!jSbtt=u-4*{E}4$4W=$hhtJR9> z_V4`iXEn-+qK%?U!uDn!IRI(_{j9Il-j<_Z`RS4S)y0gdCQ1G`z!homxd+<2Z}glt z*C&`ThncL#kxFXMq?#1IpRe>g^DC?3j(Iv^JDVK=^%vQ)E?Q0pdk{)*;lY-DV@d+t z{H;uwLg-(6c(>+F82v?k%)@{x+96vUxo*uALKP7}$4_VP?YOLMQR(nyuz7dIp&hx1 z56XP_*@2U8vLu1?IAR$y6&x|#zsxk!v+){-g&J`iRP7o7-nX>;RBze}RxEFL%|%-$ zgaCuQZ8dxH=m`eB=^As`jp^t5uCk5m(9WN?1?@^64oQCYe(i}7+~sJ8qX=Wb-o3@W z>l-2IEX1nMDKeHhk<2aKtwyRei(VqrJc+?^$!w#H`8G4ZK)q{hJwF%wX`9@Hy z_bXL@`|K+301Xk5W+Q?+O}TqcwlN`D2N*PNfY|v~xmdq{W)aaIcgRk;_;=bFtHN!9 zZwtYDX9jXJ3x8thpVqal+|*N_!29q^1kl}HLF?K6li(_knv1z^p7Al}*Rc(U`% zhyMkaGB0PP41qzN!w=n{oYLu9-%8sp#T2CfYA^NWIsY8}M+Z=lOcUjL+isB}yFg?{ zrluNe2@W}~pZGHBQ)NxwgZBqav|?JreD!^_UC-65;ZfMIS6MdiMNV1fiIk@t)WfCj z!2@T4pWV6i#4+niUXTzK*U*Jg+446Jjj&a-w8S^-RC+kA#0sB4M(6+_zUsE1y>fF_ zxwgS(5Ig9hR7m|`gq-}rnt)V8pY{h=^`{(mlmXmK{u9Q@h9x08^3O577qALQPK%SD9M|fjutRwa#{+f2ihyVOKAF6 zDz6{Hf1q)G3H=l$Rk>KvmuR4OKs`~TeJhhRn3L0f2Ou%J0|?h#xY~xhjX(q-TJbpb zuy>}rL2~ylp#WorJlQzR3;ghLRny6W-I62LIa{7ysnMQhCiMbOqcse*3R%6ejmIK} zdhe3G*SIxHzay`{E%?b=?{mCp%7_Yjir|= zj2)oEW344&_K|IvFQ4^0-c=uO*Ry3MV~#U>VcxudT>mv;d0PO<2lv-(q1oIQnq{3A zAA##b-xTkaEH}Z{{3&UvPeM?GLVEY3K21*Y-6s^Zj(ZjcTb+ORl7*;Tdxu5R6hysdiYu%Z_Wq9_)Z)< zAnyF$(@=Jf=^GeZCG=%SRV(s%ix@={5abmS&c7YkEy83a`|^p~8wANYT--K>cQTz{ zbS#*=)1=x8PZzg~ta$(DE4#_UWFkdnEml~nzwkOaI&X4Dp(F}puE=5eVLVX|(ylXgJMtMAjAZ6?zkKeMswbY{t% z|40>rJ?$*^z2AGFQB|=hTx>K5>6jJqV|vbE+b;Yh(Wg5CQLLo`kY?dDj^NOD$>SM( zKYPYn)FyN$Xjb&8P2yU~1kp~=|C2!}LuogPGKYizK-@?bpHyZ`r>S#+_d(pS%;UlY zB?7z04;suJFQsj-#xsG;Q1|BUmxXBdh1w5K8%|rSToB9XM>*C>YAAg2j}qgN|BOt< zhhx!%2zYw}!FW(>^!JUY!Tm%dIDm!g&Qd~#OVeAwZG?@+D^i#V87r5bf2?gVO5T6V z&D((9x$25;iGpze_X!We3(a<`;oGSs z?>(rhW7JP@)6ouFhj)(8x7dnifNCsWzL=O&MeIcv>$1bkt9l6UpmuM|p&RsXgMX#7 zV~xN*{XfNlbNWVARlo(<^)j1aPs4%VOTX-;(C!?K{k!0mkP`n#1CKIn>5U?O#o9}8 za}b8q*cr@M$w-=fq^i)~={$eQ_SU#fcU{xgA?*>FMB-4F*z$+MVxiczQvC-FDuX|= z0r1DaX2aKn*pFn}b_|c+#F?$a0*Eae;c8SL1%t1kVF1;yD?rA~rCrYVTu$-^Cw{af{`&8V%fgqk>+sz5V;Mm$jDb zjXOdu0|tQ+e?yAA+v5MP;}ytBvwVlEC}z#u|3!!7tsr~dw>=1oGG3**`10giw7~K2 z@^csh>D~3uWbgMzY*w6iN2HW@qzxPI#CX>4Li_|fs`U&hc-$nQ(&1`H{i4^an#;f9 z150&HqxY`t&%{J8oA2^mCTy>8%fBp@3j}$Q2Bf=hX*T5z$z4i4xh9P%WEinH^dnqf z-`?cH%`@6v=V}>m+IRGG2U`Ig(Q&VFGmIeuAQVY;yMEV02W}^pO8tLnba6Iqc*!?Y zbOv=w;nPof(j5$j(^H1<`IGJd)yoFvmO5GW`LpCztGINkW{`7j^JT26NoB8xB6M%D z5?+mjhqQ1!`k;t?axIp`Yv9y&T~RHSL`nq!cp}**R}?=E_IbqlhNhUM7)R})BDJ|m z|GVU9{>mpQZ`dQy&eU7)Hi{y~t(4WM%Bw2Adj>>ULUg$3f4QNdns!Hzp$+zc`W5+` zLf|cj{hqIur{aR>io-mFoy)x6>|2FV2OODfAf0cfmVVm0cI#mB=FHZ&JO17;`e$jb zx?;WGJ+W)2gxbU_5-DT6Zf?$tPZLWl|xjfNstG7Y#kH3Ar{ z@h9ifc-#!(^+em~h0&g9`HXUeWR?nbsh27(L!P~9Y;ZlVp}_f!{0-*zG~9JZt=2EK zPq-{rguX0W9g(qTH=0eG@R0gEm>u}xrs^l+Nz5rGJ8w~hFa}R^_@VKE`>oB6VZ_#l zgU*PB;Ploe_WoBsW<}DrpXP|ao-G`3O-9i#7RSGTsJAq8_6X#x+*P9IP}PGWIL$a^_nc_~Vy-U7ri1&d~6w4;NFa zBdCOW*3D1rk4RwzSmSMTew*(7rl#{ftEdH0@nJ*rpl5!O4``SSL+-aiuo0OJFV@1o z`x%XBF(e@Crq;xAz&)cH4Sqq-&K59Kd1dV);1pTyx#4qY-bU#o&5Gdn|HEW>`Khy+ zNMo=)o)@9f+o02b$pb)nJUBmWGEJ;#KFy}y_LV9QZFFSua;eeaveQ2b&TLgdX#O{U zf^pG?cEGPbmoi~(_Km&wc8C<#V`5*S>ZPr@4*g=7Qb@_F@9?E(6KXtDVN*b37cA=*Xgfm>d z80>Q;VOI4}?lu#{*UpgQOq&w8Sj6b2J6ov9!A1o8oGCvZ zq9^GsRcLn9=a-j8?MwYKRWXwLeBJx5U&(m{)Hd;2y71 zg=z6He`=L;+exp`-AeQE`Q@2yB(F{gxbC^$9bhr)q2wl6 zlL%bid9LcK6!zWVY`+xwDpMD8OkKn@y6+;Vpd_hWVwyLz+oSGCo(K-jBJ^^Y>CU;` z6xde5?|#h|g2-%+Ke>w2ynH?`;J}Urvqc>2%D$^!G$@obJTh zRAU!6(%y{4z?BZzKKnXz^?qgQJ5aI~4r&oXo1w}^9NpGWyTHx$?<%0&$gagqBP+?* z^Mca=-fnU)HW*w5U zN6`BC^F1foJHZ(bFVtZ+Js4Bf^hqHA0ltlAuH$}&jN%~)iqfq90m^-c1+^ELIVhXtbtf%h)^0RF(3|DpjvWkrbA;&Iz zDtGk7dwUs}Svv5;x%w_m^KXR=IrRN^0XGc-{+?YSp5X%4MA&iuRwf&u&l`sGkt+r^ z{C{Tmzpz43b}9xuYox}V#ZWD-nT&V4QhGUdD7vv|`|aI?o%}n%#Nfvh0~`JSe4*(f zF!(NEVBJYiMPp&RdhA>3|6)Zy6wiITwMDs17~k;o=;yhS>O{jdaR{caS~TJ;@pl>T zADHr_TGW(vE?1iqO}C0^BU&-iUB_6a4i7p!ryIPldgq@)~58ihtYEA*mIlZ7;PEVy-zxIC&YDx&x zKfFd{WY+l!to$i<*sMLSI{u~U|0xWyKikvO%uo`D-gdLLR$*P94MXhi0uaTRT!A_q z9`FUq*xFhjPIop?o9avrY@xBXR^?;=?{Jr)OV?j0-={M>%l)h;77>>r#6V1`@33E8 zc+HSz>` z7!D!S)(8k7T~XQbR<#qui4dmIuc z1uT;-WBi6Guw-C5xqG1UO|WCS#qRDGc#!r28>YULk`rGg2J=1diO0>J&()_AlagQ0 zR63$8#v|c60RbAO<)W*!8$lgV(tikq66Ds`q=`>AtHmU9vsz7=;Au}!O4Km#oBNN? z39Q2+cL3izKyUS$^*=N9m*-AO<>V6W5!K`Y0hS-05d`=8AS;#;P2Ts9_8Y+k(eQ3i vO&o?VIAid;#Pu}qnzc1DlRVA-7=&dNBaNrr#AE;2*w|PzJ;bSe_vL>9W$tWg literal 0 HcmV?d00001 diff --git a/assets/27.jpg b/assets/27.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad70187aa62c2469f9e458b02d5dd7de523eca71 GIT binary patch literal 9706 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 TQvZjT{HzH_c`9M#_w)Y+z;w}k literal 0 HcmV?d00001 diff --git a/assets/28.jpg b/assets/28.jpg new file mode 100644 index 0000000000000000000000000000000000000000..81e2adb2d5be34fb262e8dd536279ee1a537acc6 GIT binary patch literal 15523 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 literal 0 HcmV?d00001 diff --git a/assets/29.jpg b/assets/29.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5f5867abda00b12da85c24ddebf8e5d7ca9ca3fa GIT binary patch literal 14905 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 XaUaKt0{7j|@7oG*lM`qQzghVoKGqY0 literal 0 HcmV?d00001 diff --git a/assets/30.jpg b/assets/30.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad21b1a8d3da387f18755f42b7c27d591ea69efd GIT binary patch literal 55886 zcmb4qV{j!=yKbC`ZB1<36WiIbZJU#c%^hQ6?AXr4wryi3c5?Hbdv4u2KhN7;{bw~+ zSFL*bebApPpF3cvvXU~AVBp~3VA5Y3*ylQ!7#K7p6ciLB^w$9z8X5)`@f++{p&%f@ zA)=w6qobjqp*Gq%5l^{;Dzb{K@~ODP#&2LQX$W8&bHEuFh=uaIt=EBF$o$@n`_o&APG1C zjY1BvwOxx4v)6V3yFBQpk{kL^SBu8_v@i`B>ZW)VV_6C>>x^l}u7%?p|G4aDPT`j) zaO9f|nr@OF2z7E1D%F1}*yj=%c{Ct-Y7?_DKrDpw++k_p^mY%a71|X!WkU_zR2zHH zAP3v*8i6=3GtboY21qwd;RaF+?t9gJ-8LM7hF0aPEL$E)zw;Q>-<@mIvL;V*2cdOod!feRHT78{4}=3hq7*1EGhz-|3MqqIR5dlG+c& zL`Dw;h-Yiw?NU$09Kan(>r>wat*a zT~B$1B4-8)k7@)@+gUBM=lEckb2SQ${BufZUBC5jz>rbkNV3JT#kZoA@Y-p4rauF9 z)#jrnMfIFyY30e>WJYA!t*TWQZ6(~wu_`@!>F$^8I=5ou8B%7GG^RtwhUG803?BO6 z7mWhBg;wYe!%lv~{PEcBg_O!V+08?lpK25v8hY$%xZ$?vvuryRdWd~lt2QvDAg0u? zD?EnPKIzK6Y0jFtb5KGll7zyZjp%P+RSVTUNjHZokkL?!S^RaT2txn(b>(C9y>Bk; z>8c5%2|^IzC$o6`q|%I*pNFCKQwz7dnU(^7JXB>a{tVN?s;A3~z$28_Z0(8TV!VN@ zj^DPFU=s=WY;O+d1fO3Wxv37PdgS~W=|)g@hA)`RwVINvezZ8y}`La!{5yqVGbei>B(dhL{! z+NNre>T(5hB`!rat<#dEFMf(WYEVV)(1>8>{$rUTchiDhYn9WwnTN z2fpm|F~gGn0z>++hr()JW4(nC3zTJGA zB^k%9TgeN^cJ&0Z!^d2pBXYU7tza?OXUA?(j>eG7RNG@QI$=kY6=q>mOAjQ^QJfnP zukt;XZH?GC1*YxC>TtN0wk)F}bJ{GdCc{fMl6m=R*!?g_W~sruu`Yp!w4tff#||7xsXg@K08MecNA9(T|S7oTGWav?crL2$@8Y!e8*Hhv8!zR1&1xuRlUyh5S2&Rh3(iI6OXl>3LoM9RaHZqg+hw}A z{w%JGguv`~Z1o*}P0=GgV-LW)YIZ|-*ok!Sn3#6?u&wPuI@__;RlLxOz60BNhuz>6*u}?|5iJh27oqbNK}gjJt(ZGbhUPW6R)s(M zjse;dRd)^G>jnaPYaWeh9yoau1~YT2seljkeLV8cRjH^sY+;M1n&pVm`l;b!F@oLYOv5*$huOgxG%1MyMhrpJdGACkqD(^-G%@uoz`Dq4ib1W>Vh|xL-m_n1;tXmlzfM^5@HWFf)^|>&CwY@l5hMU zbcaCFRe_7d1yaI+6wdp9YqRw|G>rljQm14pmXP40D$l#I1j?dDarB}wjo_N#hyf_~fPqO|&Y05&9>_M!$IAt#0%(3~K)UHJDR0E&~vXeWJ%BH$ik}3&7 z2^1mJpVf>b4v^&RePd2X;3r_@xnB(i0Z z=U%(Zm8yfKL@Vv&VBw?=4%*9iYqjE>Q{W@yki<<~JOoeoPM~VVg`clfBm&#mcfdKD z$hT@_`}SeIV(v}&(;^k^G}asMUqT|5 z&R(?nwtBTqa&~US@s?BbRFsUE5W!eA%1866sW0$Ps&)JplshwDzjRkJ$lHYo;4N*T z5``Rsu``|bLVL}IF^CVNpg`d-7m*j#yFDoy7m^C`K@Zx9CzFCusl|kY)zVq0Z(Q&W z`1ewvAH=R-JYUGsE|pcwRo<}1PERLAY1Van*GE`;81WmuYG!DAzvJzuvnpOGTMDZO zC}HR+Zmh}dQ+6KJ+P-&F|5{)(dwP4e=;m=}GZQU{$n`^{nCz7}8-vdv116+@GdjL_`;S$vwx-J@X@B(?>`mZ6?nHikOCT&;|TwA&5^asro@*O_@@b)jeqz z{|7o$Wy!C4vQ&?Z$4q;K#mr1mx_C|!waL2@zF$s%|7izg59n_mUYg43tTO)+;HHVy zTH@n8+_D}k{&41#2oTHBFfBA=dD7a&mY6S6bhY-a$2W)%3Xh%e-Sx5*Gf7KZC`H1j zOSH4YzTWwRCY;VVBv}7p!c&q3?{<5;d5ICn!1BVYx_aZe*oJ|hsKr(kiML@qT8(=_ zcGG4-?Mj0DZfTg3qK6}ezF~p;qwi=Mz4^zgVzbw(Vq*s9 z$uN+DoM+C7CBLchbmRESgz82s1SbunLgdg*y^?%p@dw7)0ZA#{?GHOS^VVaS8mu%t z<@4)R)m&2u1vwTzg9|oUqsNdPV}kBJw#VjO3IUms1mo8&@&>5pzb5P*yS_}I+~e?* zpNfADJD5;~6?G9x621ow0lc`E=>DB&)1CiVbS3O8{kw}B&sX5=0OcK80CZXm)e$g@ z!0$DduJOI%IGpl@Q-mF2zYueCO$EPr4w0M65qdB#ymCeH%3edy_Q-?L^V9lf;yXvi zlIMYA@%2!=9rwZu1~%6!-$%T#uvz=BrMoNUnCoY<1`nVIs2F(zLshV?ONT zH5nuXV}W1Piy0LR0s;aY66$OJ4+s0ASrA~5P-y7T7^J9}WUS=h*+gKlDA-vzM8&Yh zzxdd_!0+l|&Odl*T&Ps0P{ua_3p|5MklC;p?yCopQ}qYc+nw_yi;Wy9_bI*vi<}rCP;P(-Jv% zw8NejO&(APTNe8<{Vpri#Y7%|v!&T+POjv5$9eoN;g50hj!X8jeY_ZOF}!d7=rVrBl)DZ|=o_dRdt%H|8@8A; zQW{X8{rU-(cN8H{B|IbeCcR2((-&>pS;NR8Q)RU?y0|nY#Y42?V8Q*DF}5LOMQlNbueR~ z7QoW!T=_AYqhG3CsslMbKFC;N1O!S?CcTB5x{r=_((eg!Sk4QuV`dWZcLz4xw(N_K zRMM_(XvTlr=I$$all=PxqjN)$7nyq7%G;L+6q84g@az_LWjf+AvmyHvXW8O?d7f=c zob@gW=eQ_rIBD3K(KqOt)VkK{p*WQ8G*rfMhDAB~ij&h?t zKa1_I=WLw6#RS(^PjrLc@fZ3uCOZ7TP>!V?(&vaqPH3ruJ$nOb#kIGCeg4OPHo0Zc|T2? zc!yL=t-E=1ZTTi8r)A`9YxmJXkik-s-s=eq8n)0+=HqPQ^x(llr^=dsP=G-HQ>t@_ z(#}UA%9|)jh0uUutpM(i49q0kst}zC^8SFc?oy<|fx3M^%H~dGgk};-*;rTnsLbqr z4YD0~zADcV*9=QA9NgkZ%x2(lRn0||o&LPdkrR>RITK>3J86(Rn>>reOJo8nmln%` zEJ5;LG0tuT%>Hlxwm|{0dz{fo1+MHCw0Td4B8a6IA`b-n_|O~QNYPUDbzQ1EEEP}M zv@sBhOibg7cuWm%jS3E$yR@ej8DP``_q!*2ev~!1?fqr5gEQH95HrNf&_vA5kKZc2 zB+}DP!s!@vuaOU>!esf@9shV5`3UsHwPWH0|2e!M)RCR=wk{^^ z&>fJOnt@vw2n?y4{aalX?iEHNUKOKbqFUcR&}W#nB-kx|xvdRi zFn9ZH{*<=(GW?1S<{2IC9?=SigPe~I)Ec3NBrZf!g71`47J+i7YYjCVO;qbx8`SOj zr`#2#>o`~4kdx9e5i0oD5k(}}j9;V5#%j6m!X%raue$(Y?sXfntU9c#MqTIX=(M_S=8NSp#gcf1U9C)qwRWfFB@>~wOij2whkhsW+^BtUO`hI~GPH6;` z`O!3ewzaAh;;a2NfO{K1y}JAqb3>8Rm*}#J8vWwZ?$b0SUTyRERX}R2U(`c78+jSTXGyU7#GB_-P*_89tP_wWa75@)@AZs*t%dwFL2^y zyF8EvQrzA^$MrUs@^&0G#0Lcgy!rcMAiWZMPs%1u^Vs0|uC^vn+7=cG*#kM<+Mea1 z%h*}Gg6#rZ`iEVGRsRSEc>!TrU`ZM5C)o57+=-Cg$tr#WEMKuNbBV5d%Y+AJq3&8K z!er2>4IA!oZL4D=Y#vMWyMTyiAfu@#jf0#~L(?Lw%SCD7egl^rU$r1mg|8&wT-W8M zy#F+9tNE^zRX>MPPG!DL-{8m{q)2dYz$|gOQA0f>iNpoW5ojCi7vd}2UnngTx@NO) zZ-SaaLW%U0djzP=TA^pl%bJHFZ(s-W+;X-+dq5Tb!rt1biA*h-9lEO7lfB3^VTyB% zTDLY-Y@lyv7Bwu(guJg-d#%zXk|Lb;78Cc;+p6E-W6a2*CM$QhlTuv9tgl};FddU} zpq+NbY#VI}j`_8?nGAHHzjt^~Y1a;qoC^1a0RYH+hcA{zos0M@R1z01t6uD5OwF3= z9IK=Z&Pqv5o}#W9@>af7R54S!8yq1dZR|kXq5b&q_?X3#wevdbVEoP`o(eVwPHl#Y z(e)xRmq%w<^wPmZwU~L4o!h#@A{YT9x43QW?p^#N<22JHx+Xm6U|Wm9)+UYyJhaRr z$a+#a5qXd;=Mf0DM~temsgh9*yQ5ivuWr8w5B9KaeyU+&sei|Gm7Pz@<}I41>Crc{ zUFy%h59ne!;c-*?a{he)LBW4iwb+%Mg1(N=NCZf(^&uh?Z9axUZrYj20LA?c`Izti z^1OW;UrU66N?*aO3okRJI`OrDSF38|1_Gi)>vz=>{L=Y&_||$5WfOm5Rn9}sF61)n z4K*_sn!A$BzPXGJQNrStp^9{Bua(;f^mRQE{NEee>+vCR808HY+-Dfg*D8rR_J7(A ze;31JBhw4A(hv8H?v94>=xXQ(7}FN(pVpeSOm${fFaw*%6RNu4a5|P{J%geOlde_% zu~husBi92#qu6IE7Y{I(CoY^6?Yk52>wT~@U{=xfp2y;~BFoS6O33lA#tp3#$Pc;f zJ)CFZjZ0)=aMRbDtcWOudRM=--gwrbBgq$|9~{y+CfUB)LbSY1PJ@u24fg`)TGmov2H?DmoQCz$KL%(|ov%Bd8xsnl|eSRR(}bb4P8QILX~< zpkx4^w>pm{VZTxMfuUOYQ5{E^>3p3ubGb=&%s{#NbI6%+#>Qq>6Q*xAu%+A#@2avL zVBKimkMyK8TV)PcQk5E&V1A>kk0ktOyHIILXEk5`{CXPzT>k7 zI_fV^LVC=7TRebutcLltf6rGFJmQ$J71Hx)Y`z-z)CSxF4{BoF9!C+%kzZ@tS-IkQ z#3)_p3@m$%U9gt)erKPbo0!UfK4vX2QY(GA0%xRH!udHo@_gh`qQSRpq7exUYrXVTZd)2VsV*G} z{L@08P2aKP*WzwFScl!K!Dqq=udqzQev+Y&ZLq2kJumU}F2$w!&hHHOE*wR6rc)*%x0Hn3b`0go3BbdQXVchZ{*H_&f# zBc!nNvvFP)wQO-&`w6i-$u!6`a7Div0AMZ_sO;{>nslHWhKz84m$p*iNVO&845f6~ z_`!FDA;k9tR`=v_URL!!qY}%_C?qYP^003lTOb-_L`p;|#1coH>vg{AOy+2CYc_aox*U*KGA6p# zWqQ(hr-kbGy%Em~h9Y?rDpG5W6}JZj2-*0cVaVZ}ySh4WFuLtVYo8aCr+FMc$iWEV zjhkx+JDl-euwB>Fw+nV!wz3HGT2pamz_BwmHw|5_X;OE1zaZ@-f^QdUv#lq2_6P?~ zq3(>k;D3U(f-RbZ2Ai-1Cw=|$@n81%R?zz*V-uszwYjiBByDC*zHPD9+Uo8E4yXEL z*)|fAfiA;EX6{*t?c-H-X`|)tYcgxv>ljDhMw+OY)ohMEVt}LlD--=b3X86L%YoQ>C;bsm?vIHqe?>|=S!|6W-(F~_e431$C!Bg^WDwYJN*xApyA z8@EY60-;CIL%m0$(mZV$Iyr_wGvXJ<&Cc`fn=jAKAy0;ppqFkce<%x}$+10_R^%yz>Q~l=`w0*u2MD@z@>N6 zT(-ui&1xqHD(;tcwh;j;WqV`@*Ak@G>Dm>k9MhNWtFW~H`e=&* z;sf3DkN9nr#K}p9&p`OIXoCi}N>tj;&ah6aiC*fk5pZ>lSj@EP-Z1yu*SP@gHg>x; zt~4mO-^}r}-7CNz1U2+!S~}}en-RgNOt&rgKfzo&r&1>qQqjv7c$<#@P)|dMmu}x)VHM-AN}XF`GBk6DVwG; zHP$t2Xqcy;9%&(`AyI)c>@<=YB&*BF+1p6km!B2Ug@{{4)cB*^y5XqH^lfB!_(UgI z4kuVZxS$voW(i_emy>2tmsDe*P+RLNlz;~QTA?|LwQn`LT;G&PeKpZTVqD)w4x^&b zoInkSsZf-} zj(OqIfG(wb2!B>qR;)E?+`iZgYo&3#PA27~>v%WzzV4b|%7q!GUVApdze_|#T$|Iu zqO(Wa%9=Pv0)`czM?7oIrhM<^kVpxR0a!QjGYUQAY>AmGo{Z2&Uu4rF;&eH;A42*#u6bslC@b#gnZ?U&1G zvWcwpo(^Srb{A_c?i5#yfMpLZgHR0zZG*@@Rn@?4+yL-pL}K5>#mDeajaOH*7t%d>tN|{*t*z$? zQ7C+_aIn9IWIRR*F9~8ZzHdUV10aXJA$4pZs%zO)5PGGXU~jC2U}3|FC;PDtTM;T< zWwPh?8od(zLBLyzD-nJF=2BLJ#m;fM-j6h<&as0TT2&58WbUek0A>B+j>Z{05rVZO z8V%l0)Vxw@$GxeFlrqFFNW|;_><0VUV?SgmzuT}Wk+~3;-eF^mW+SRYut9z!Q{5Z` zb&o~(7*qm{`P?hh>fCX(tVf$;7qlAt$l9H9*VrU8*ws3s9$qU;)cw|&xet8LmK@$1 z7OTX}B!7+xbaBxVitrW$qT0|?BhnLTL_eGU^5xZJwDx@je1a`)KhWd1*Zngdix!I9 zcegE3s7D*?0NY!yK9s<&cv3wS(BVXx#fS_M{oSveQ^>=yV`()t6NITC+J0vNfz4ne zAhWky=AO>vO#-E@=}@h)n&as*Aq!ZTHDToS;n~2Z46BRwS+F&0At5LA^-7PmI?KS? z-6s*sikbs)^nIx94Ss?-zd}xR#!<2|aw@r$F;8wF8>|hT2|4GDP{+wy>1sXMy0u>j z_wDYU8`8Ikas$Gw7=zsI=|DDU-w3`>u^SXAh*Fhw;eQ1-SiclcVNp;k&keZpgvZL> zFpeG?>)90{C{@#x;_s~U!@$%PfP7=#n0R17Pu-RYg`LUvZ}8tjn&<3bZB19f>}IExDzl6fdsb8D4QzpaRRlwR^NH_3!ZEG0j6H{SZEJ2#M#Cn z3JMB%rUeNwpfpLkeAx9@Hb5Ru9;(* zt199nqqddWHA7Opsc1LL<7x)N@qC|PbMZMptcB+S&vmxoh>w~-!N{txNbawm=K}}w z@MxrbYSx0UVNd{hb)6(1y?@+hzim`JY0JBZfPV`Wr-%QO{4QcA*S_-@m2zM z8dpF47mXgRHFqkuR>~iiUEn-ktHw7qN6cp@1Ou!IyBa=ZnU6udurDJ9dk5<7=0sDR zx$1St5^o)zZ>j#nx$;Z-nRolbIdEluO8j}_a^+X(MMSws!g&&nCqlzy)TH@tYP{D* zc3g8so3c3?J;Cu$&853-!lZ^bAj4@@IGq42lD!i`UktzsrzOb^s&ji?YvdCL3Gp8! z&ELD8Vdg|L`7WT9HXPZX_`_qV@b@~ummNZ!p!4eQ!Sp(TGkCJGUbz-coSY}vHnw** z&f&@zlRo-Vye7_$@8I7uGoOIh2PkX9eqZ5@e}8BD0P7b)S_2Nmb00*YSEE`(mmvR5 zLjDxY9e6^I<>r=nTk;4lsK3PIboJOT0Fm;3b-(>29O6m*o3AF0SYBEGHyg&!?iK@? zLYVbyxLmpyI=0)I4B zwTif<{3j`Au@Kf!5V7n{U`MjWTFY3~btSOypmhnIwkM5X^opB$jDXjjo8Fp{{(w#) zCNN>B#lJF6)No=$=8=AU1JHe`d#K4s^-3ME*}1>PaJi+c;ez7$nytmgH4Ze425r+l zLyK;9VHZYs^LyG26V#eps73knT-nZeh0jkwuq+&M3S2Pl=qup$u_g12C-AgaFEqL1 z`n7)Ovm4~cHqo=IjHwbdMoDrf#u}NI9A0~pn&xw##sQ38Grb8;4$OToQC1 zuJ_3YQ?0gl%$P#&&wEs!m+E_HV0V=`*2?bnegZ67xr!@7Yo1mHDEkM2A;+3{+EPGG zwp)#QP1l$YarP&6-S8iIXu3}Eh#WX(XLMY5zlkPoXH%Wyz_Di*IgQ2C7f+nk71vaG zJWy=wERiQWMK@5hd@YvXU2s~i%GDonFI9YiKMGscB*cdl$q8gGD~(q=^z8P>W}gkG zq>ZmYpJ4vt1hk)E7W{q{Zf2FpD~5d}|LQh1A#6I*EasoKrr5SS;PwX~SDKTQXpMZEBzCkS@{QjU$<{*VIQ(Z(!|BZwD$OznD-;`xK?%Or% z)SX&v*+Bg`LGWMnpLW&s-B6oo78c_C+a$#VB47BKp6XSwWaOC zU75d68F-;tm#D_JDRZm-JAvK-VC5Sa`P+6qe^Vf+Si)X;PBTEJV_q*GM=3 zz@fg(FG%SB4km&_ph2Rdld?i#hl`|5Us&nZY5$ zlp*>c&-|UUfKX9<6csyOJiO$<7wy8#VjYc22nUkO|lxNj>n6 zQqj+nx)aZLlG8srVrt{cLM>?ec~|$3rrrxkjL0>Zq}ys0!$Y2y(=t+w-Lr(bv4T6v>JsCfJvLdc1f7M3OmRl3lW-SB^x)4F9s;kh)FCJV=WOv8X%{I zM=UV3$|6S)B)Pbg_R^F7CjeZH7mz+SgmOtrO5z6Kxyn(S0#Q;$IW7Pz&xeV6+2|#$ zJW&{ck-dz%gd~}`FJcrpcese;Jlcn05-dCLjJx}^NTy<^brK&-m`D9U5+;l<-S#JB zoo#J5m3t~-B+ZQXqG(U*3coNazpO}*8=ax2x5FWtFeA*dkbKQUC5|8zYYv@&`_xxn z_mIG@aiVo0p|CdPk$+AVcWf8; zu+d?h(2J0c&_kk+Y5gFc+OpDXjdC`gu&8?4aI}kZG>z)$-eig0`J{i@LeWI7{+VD_ zqMobJY_1CRQLdiH%qLr+$W(Fq;C;4$HTw8qH(AvmO9pPJTQKOUt-Ao-Sc_&vif z@&E&qVh}sha7X$>QX8+eL%dwpPdT>00tCATVgWVuY>GI z{uex4cs_j$9ao>`@Y0`OI+t$v7Pnty2J@~~$VvRS(PTHXoAE1Fmulpm4AQCVtz)YmOkJW%Bm)t5)Xhfq z(I+3OdZ;U~OK)6>QO>+=>I(5GK>25P68?UEF*d`HwzOH=wJWj_TheQnxVKynqv%&7 z`q+v%qmi0#I0AU=VkDOr6@e{5mHI<8Y9o^$JX+8&>Z+ zK+f{X7=H&fERkudwDz>q4R7F%&;1JrPx5f1RYB+r3IK%X#z(KTfrfEP%+$n15-3UKS>i|;6f)6q zG#NpIELp4A*qNN9SyDJEdx`u>WQzxb#0&rUI`;jUQOje8oZN+zY$16in}f|sWC4Vk z86Z0a&QJp7gSO*R2jy1HHFj1^(mDb9Mr>>aX_N|~jEwm9k=#4HYPIweur}D!;&bgvWRcvc@DEYw4T^Z?K5N+}^nJFG)9EUJ%65Xwe{3cL7mm3)`sA$bBuQ_5$ z}Pwt?7cIv+uX^%Q5SBLfZ3)RJZ^R`&3 zteA|haZSRB2l!y$ML2gc4($=q?}{~07tt-tg+6RLJenxMCq>hn_?85mDQwb6#EnUR zL=RgW$*SNDUW*u{V4f)+J>*UfNSP^_8h^!1Hr4H58yYBgqRDC_AE&-l4ByiWfZn6( z5U%nKv=GK5anDtiWwd!R%lcNqDQ&Y?KRPa@&Ypy!^fy;g9AV z$#8vgo6^o*pv|b z`9b+c>cZiL^kY=E1Ls6X7G5^JlK~nk3X^0igOZX7jlr!vDcEMu5qRS=ous}}c*iO+ zIY%BlI5P`$t^4hrc>CNiP=@`cfc;pVz zcW-+`TeZ#AJ+VxpFbddJ$>}g!P6}A_>r%)jC(&i~qcHQN| zRGDND3CKPqzK9tfggo5-n-G@YRES$>9!@<`mz_U_d1ad$GJr!U-`G zpkB$xy{~$iC6S${u!rM2(2wJ=*MCFRyn14#rtXRpHp$XjMBXd=w{o5&-+^WGwJ4)T zM%1{;X4?oRA0$WB4asAD6Q*yZ4ID9YEvs$_u-M0-I-=oxQ76j^1s735gOGz@gUj;$jy8>_0@zSrm&O@-4yu@S(R@S|1q$#m@14YkyiH;QZOu=8uDH=gOr|@+ z-@6Q@QVc-4#2qojUw|7Vp1rpnf^*D*!{;L=6e0#fh!nch&Sgw z_1C(Okt2m4oN~#LpI~4DrklgBbU-6_u|=5jHzNP*kLl@Xs}6h2?+d;A6^q8E{f5_m zjbrHRX}oTrs*Xj2GlhnqFzgd7x+P@wyuBSC zwkCQ5C8ey%X;&=kbQjze9m{6HWOasKkyMu?rhmuhb-LsejB7lyV<~hT_>(bk=qDOQ zR4WHqacqmSHfzyu!l9N*vhy{3&a-TR1=9&p0cx0x z6uR`_P;YdIPDFkQNC2`mN!S9K&=VHok54cooE809y&Fp_O?6A!v(Ws)4|PJqOSN1+ zYPIU|ARdW6L1XxkHF%_~(UU4xXg&i*hbn}GjLQN@$)J~tG&sS9dgq%El6QB-=EmHF zx+k$eUyF|rLK9=f)h=*OIgvmyEdWO)nq1bmoW#=5%JnM6Juim&dW z)hw*~A+@=0@gFljrwYN~r?^lJpbG16jSjGr=-vaWxq_2BWw7|(c+~KHbK9#tx2O0( zaBtbRPcWpeh19L9YN?Pdt5sO{v6-E-YR?tYI!&HLxF$$uVm0b-^3B_wpfyBZc!d`H zwkf@jseR2eK01Y!+B9bK!mYgw1M_OnlX~xA`(jYFclv-X?%i!hn?odM?|+ZOkvX#KWp zm<><K4dKqqXUlGavi_PdDGwe&~qk zxB$vN*Fp{g?`MFOqMG+xr{8sj@GCWnZ&am9UdxeNqriC^X|CiAmnxJyVdD=KI%XHq z>n!%;+TsIM%#n5lVga{COz(t_qN)4ES$93f=+gvsTh*j{^)6VK|2c*B^=`WI0N*%& zLTo(QB1{MfM4RnxMW7sLa!XOMWsLifJJk(HVr2Iw6dy2QSch|@@Cf`SJXG^C4ttKG z;OO9kT7w+hvMjKfCv5;fPq?;r({r>uAfH&k{R;@*2a`?vh=Q<{GjlV9mok52B{KKx zskmkJKK%e`1eD=$1XM_{(-F=ISl4aIq*3GB2?%|+^_AMia@Et3459ZgNUspe|CQeq zOmw%kI>|aQGkeJn~qN9D4Pp z!_@*#j()(^8oM6Cw5UT$1?gp`fM-a;38qGKtSJ@16hgX2=;^SLI}#qcs@NR32FC>h z1_EBoEC^<E$mHCb7Og6?ULu)TyzWY9xxqqaeO~Lv zk`26RQ@|NBdPrTBJEHBR|G@)p>?ixnhh7KKL!)WxQs})4AoC2s&Iu_5^su$NFX~d_ z_|1l_{dlBA@I<2v)xH2!SxrxL&dFLfK#py6R;1da!4pm5S%+LH)BfGWY4suJ>$Cd~ zQy-C0c?hiV&PjPt@Ju}%vQDRuyKs3{4@Y>sNT0UGnV*w|?$+wdATcARoJ`pwN$gWE zS+3mM3NkY8pz*z(Rr@`b%9oJ0=qG7fHb0m*MTvhglKli-!I)hgtyeI=PnJ`4b^zID z-#sx(?r!RhHJr|*kZAp#rzUa&P-RT%{3R`u6ddx|L|SBs`e?=}5t8cSg~(je*ox6eiWb?O{tixBo|OXwBBnmI6z@835Yr5 zspBJc%?GwPGqqY&;&%)H(auPUNg;|@rMB(KcUVXe-F*z15iFjm&B@A z)H78cwC#|4Eiw!YQ3NZ%QQ#5m1k><((1L$dPp*epUS(fdo&9u(zRC?(6`*a3W2F2e zt#e2u>8>Y<7XrDa6W@?vythm3u3FlNpnnKi5XMKGb8(-&^91Zi!ggHLR@hJhMU}vk z=jDq6HPGT&6ulmj9y}3HX&+SedS*|(xrP2RT1Yv?P9f7?If#7AECEy-If-*6OdS%m z*=zl}8oTT<2e$@}TC1rnF)Sd2%CvZD|GR-GjzxFZCjZm;2?j3=pfmSge<`>B(G#mg zgd5}@7n>a#+lrCpq2`nasBfClo%wy#%m*^UYQMz_XR_Ao{Z>ZD5t}l=U(wXV94Vvg9|16^~@vUGX_26b;@WgEFH znP^nY1o`PpbQiHvnfPgV{-s{$tmPY`XEPYv2m>lo#1>~UKfx-3 zb}QnMiFhd`tF;zIw6*EgwIm6@m#2f9g3GwZZ}R>@neSKa90w#|?>x|F-K)k@dxs~K zu(0Q8dKeC*dHfp!Ox(KZ!(X*7!?foT`ZAzj9rAJ6l+qQsi)@OMz*`m$w`%Qv&*ybq z$a6|KdiJTX$FwN!oYLSJR7&*$(YLTu=ZmKNrH!W^6UX$=Tdg)P+T5rt3*og;wiXu` z^&Q0l2WPEVz6FYMGaJKs;oE5Q8&Eiofu59F1kTDwH-o5rD~Zc(EGKpX?=DgmjWi zf4Bee{1TwHsQ%cuszoMmKdGdGvYl^7eJ*V*<(ojuQ-A$oL8jwURR&jH-0$`hf;uPZ z^ZU##+fstt>Dba;FZ*6to<4WvwcsK3C*M`8hX_K?Pq*9J;Z>H-PChRDYRO}7Ub?v* zB^e-0;V?*DE`HS|9$f6WeB!E?RginuvO;hfzC7Zlqriw<{`Hptf*v@ma()O`SoQfy ztK!eiaPgg!MQrR|xUH!xiw)*`C6H_>0vSP_Mk}I2rAY}nJzqI5y##zV%O-t6=r41< zeWTO%E$nCInf4T&3HqorbuUx_;fgKH91MDH>}L22r`UB<35+j$jsWo%%I2`Q@LplB zmg{fw@2hTT$@eklMgk{Rgj|r=?5G=3f+_8~Yf%Vo5A#RF>d^-%#Qh>#d}}WqaZj=v zEtJ@Jc6{8jfHbg3^AjwwOV(fWO8L&vy{L?jY8^UIYzepso=H#KI3-Hg(S zKH1+3Vz!3!R~)hx&lp?pBI%7YBfVBKSoUeO>Hv$%(iOPn)AjgMVwdsasIsP6T%LLm zZCIky*|=$R4?TWgg&;&)N>mjcUu6E>^p%D>9n0jgx3m`LS@)o>VEiJ?U4zbn(aL+D zU^f!C^&Xfyn7BgNb)jQ6iMne-8qk4=?S&tcC49`$`Y{(!<^DR=?kkFaWtuVG}r)uoXGlaur_Eg49?suFMV6$w~3Z1}?mRRNKfvmuy z?Q%8e%is$AsPy`clCcW>Xt>zRsv6>r;@aB3`3qM9Lb`4q`SsX*(aK2ZEBoZQ+nCX4 z7dnO3ZtZkv-3Lh=gneS-lGlG2n3y$&eb8arPRNx(Y%wI-Hi_t{$$Xz@gH_>=dD9v& zDbwA1@nz=SV)^0U2mBuZnm}d0x8-RH>eWM3Fwb>`%71l}`>uFfh09baG}`X#;5hzL zqN6P;SmNJBt7+1*`imBlpOO~V!^I-3ox zF>xu(qTww!XX-dYo$RL=YkU6yWZLvgnNrLKqER~Pxd%ZN*ASKRdUS3KC& zZ9J%EJrQ&2pVei>ZnG;=u=2TTE@3EuaCTaNQIT_1%$s}z*y7g>2wXal+T(Alxc7Vb z+4Vcz4(M=;oa>)ClAT7V9YS(*ep!~Q*gaaCqaHf0VtrbOvy-Sskdbbww2a(D%E8BU zL_*~K09xp#353C{t6VU(h0OaK`=7ElG%=R%oGOB&WycbBOmkhB`HrY{BSV6VPMgk) zoxJ0saHLhH2=A4{XY8E!HQc(ZZ818lSQ~41Tw2wfDGwoIbzE#Z={(yvuVnVP@bmD; z^a#^5n!+6Fm{ z4vOYwjuFg=B0=t_KdQNx=gAwc9cqy7trCN763&cQReR`DIF|4CP6A!hQ|h(Q8}iC) z>r}q)EjiIPue7neH;4dWebvn*(m0;zHnRz+G&8ag=Ku}SZUW;nyIgSVx=J*SAx-4` z+D~GOLYS8>V6CRhk7Qk4fVpt!kGv^+i@xiTt!m{yxm^n8*TxmWT2tG&7Y`81Y?_@; z%J#Um-C9&}_=El+mGS+X?!v!|XXg;5jt(7`z$-`SN`E+?u6wBbW+ybopE(O=L`6O&i+v=;LskgGQKTRM?rz(QO%B6 zO`z9edEM8tV+}Ee+b4ATERUODEZ{TvsJ(t9BD-q)9+q!G|Zmt{m@a6#hmzF&W$*cP;J>Pb$KlVYwzx}J{o}&r{ zE59*N8%@7yQO0l`u%*Pi*WAGH<#b-`sT(RJGGm;Ps%=&_81aS0k$A+Rx-+0r*D*phP-cY!6@v8m+$A-QR0J=wH%9{0oghctb zg<-^YMX&oi@yl+E_)(8k9dDCf{{Z??F(K{H?43cAsYT}5-ZHq9U2}hRk@r^}d6V=0*`yyGv+3LRBDN|u#ZUp0K%r`NQMYW7y-bLWLrE4vFk=sOJwXXgn{j9X}}tMUq_NztQN_ zxrbE&a~XI)Wc%9VP_)(4d_aN8Z-;X$V)U$!GrMTHA|flq-Ycw(TJo9FmwFp}|~( z;!||FsyI@%?>@?nX42N7s5`Y&cXNaG@X8jFJqoq8 zMNZEWzAv%Ucja_1iR^Vp?!SdpeV3L00HVb=mGJ$I&h=44*y%U(WqfaI;nV2BY7L|~ zwYS}TPx@9q=;`-gE(&4gUn+PdzoI!9?5VgBjjcf4uJ)>w<|i|5O4M?lAycRv)7mhP zFy`LW_Q)H|Wo9sR0Wsi%_E!wgQT_?^`^qn>{{T95)nHx9MvH`61xDm|?cmCFEwZ8I zchaCb3}B7ZDtjo3gUkx5+SEeOLO&v|aqIOtrStBR$qMm1x|iw+f)R{{YjKu7^ugA3wGin_i>( zDvi1Rk(67{BVZFMNiq5a*WB<9?*7T`x~RKvn5R-9^52vX>X}eE&MoLL5UI>T`G`(z zoc{pSoFwC5GKJR?HfZq2_yN;&(Ob)DZ=q7teJT4UzNWD(a6hp|+yj*6xWAPBmkgdO zTqHVj6JFPPI4F1V$-(M_8VhRdM(8xU2Irz}3S*4M!E_JVGNm79Yg+Lf$-u^Qg$*{< zsfV%K%BDCXna+qk*{x5?-rxTK6-sqUaH-85RZ0~!WR|?1U$<3Owq`9Ke{)pH!3u8s zC=F5KGMZY#T{|nS5T*RhvmU70fjXwRIo`V>IrF-EJ}0K=dC6}@PN**otsv*;E z)9z#Nuoh3bVL8)3vMmjq`Fbjl183zZb6(Ie?#clI{AB{_ZFda8^j!458@^MwqIG6K zA5TS+PpX<0C$lRIhCO0}e{}X1)SsmfIW6h3r&pi5mX8g0UDK(<;EXbLMV2_YZP80*&L1$@ zHmp0l!9dvV8@tS-P3&-Mh8rpDwdCs7-J;80>Wx9|4|m(%(P4R)nR%9{+@BtbV z_F9oy*ep6KquQyt`T2aQ*HUds>#{VcR<*G;FI*321+=%7d%0=1UZ~QfVa+hu?ujSd zp9v(bRy;7FOI>NvV|5aUeZv|jx8i_u zwK6}RaD$=2r&Bts2yqDzcSI_Nx;|$hKyYdO(P3+Y zTrfJPQ+r?3Hgx=W)pS$f0@@YLHV1Uk8l}w7(}YSaxx$~!0^!pALe3l28g%)7s5o4w z8pg<)?JYZ6o585pldw*v>50s#tL)=UTDm% z5p~?7%ZU73XVF{<{WMHBJJv9~&lA->vr;;4oYHDw`FBk>)Nvg)RO(+-^F|bhQ~>

>!Wuog-h=T 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 literal 0 HcmV?d00001 diff --git a/assets/31.jpg b/assets/31.jpg new file mode 100644 index 0000000000000000000000000000000000000000..589446b03a2a807c248f16b8979db52e7760011d GIT binary patch literal 13293 zcmY+qWl$U56D}Ow3Iz9JK@!|4P+XGWL5de>an~aK6))}tEuP>|iffBQvEmXa5(*S3 z1xle<;r4&uxgXv=bN0-6c4nVFA9iMU_B^aSYyp69O_(MC2L}Ma`L_TMYk+6~2_X>; z4K*DNH8njw9UUVR69WSSBO5ytBO3!FBjdl#%*e*i!OYCV#>~hm#>oQ~5Ed3@WS5YY z5R%~+5*ENAB_*XGr(gjBS%i2vc!h-o#6$%C;Uc0kLjPApME)HzLjTiJ|5yJH{on2X z6M=_502MJ{8?cRs!v(;l!oj1$c^Cq)0sy$Uc>fFa{|Nyh9zFmEmx%bE6$%94;Njxq z{ey@Ii0}yhJqQ<%3c!g^KrN zJ5zg+A!%ehi2dh@83*wHrvc#pW5FXJ{AUxT0^s8OkA?961%iVMz@x&a=KM!;%4O#h zkzPte`=Nh!n?U?bmHPn$c!c-Q9o4@`lmJgKI$PUceOh@Duy)Y~j#Ejhq*01}q#j=` zLiM9MmCh#0DyIh;0M5YYC*Sh9crP^2S=vuvx=o`5(W`yR0cV;Vp|2o$?h~}PmX!Ke zqxh>byO8=l9hVq^I`^Z`0@9>>h%YMric9EE$HGu0?&}4ey^hE#FE}h647wX@Y%m|f zy0Qhnvx^(*Yy<>({V7Ubbuz|_GiT1|;9x5WW46`KLaq{$g+yoK!xUg}n39FNA1j8K z%m5~@w<&ixSA|RVMK}7<7(r_eaaC5|hX{{)tL?ModJTR9LtIks-6c&zh;R=IpA;*L#p+mMZ!6z_{(d6i5Z7|#~Mh!xV;v*Whox@_63 zE`iuN8wjDebm$jsBZkUAp=2RG7WLc@0JZ5SvBRwrrE|g4ZqY_O!qVl0-z{|5E5`4; zOor~$pCiZwl*z#Jbw2XA>PDJjQScd~a(GhuWAge5M`t{`;pM~9ci^!E)UCH$ z)i}kOc*%ErzCR=peZ`iugx%s8mgvfq-(TpKXsuFcn++^CguTC$_a$BjQjn%fv7`8Y zRfQ@WeeG8@E-6KU;Q*RNnUyz^!?E_Ge{voGa@B6FdCysjYFtHpd>odhs3)Y9VAlCKuXG?*`UfRG+Ib4LYs!l z5K-(UwR#gfsxHH!q9t+rCTl5ue*uQ^@M9xPCYYuJXPftS8swGks4T&8FO^ zhh4+zGr0SO=Y+3)t;zLWCCT$EOrIaon;IROrhnTiFrXo1D{nlPRj=ETfrj!(bH9vG zuovo?61Urg&(KGK4btot-(K`Ws{V{Snt>$wl2fcpyae|0$^|*V%Ld_S7d^DgLUYs0vk&d{yxXD5&*F`?=p+f> zsuwf2c@O^(`6crQ~O__-GOM+Yv?EjdN)24?<3Dh`A2zc1|Y)##hbzuGwbx34+P>*I2^#(%#tX@2H#y;3U{mO2;ayD1^YuAEmvG zkmmv9ZVX(a?jAc`wlAGRe`X9s3VDb2DOhFM-XgB*!GjgEq7vWEDbUo zya%ZkW_q^XH~GVSJq}I-XyRN6EJyIDqA10=UR)o2Mr5nXA`f`YrITfYFPfC@ovp=x z!rXdQ%yD@3D#;Qb(!Jm+jF?gA>ZiM0k{r`m1gf6T?CRyUwR-B?20aqII=^`5i8Eb= z8KYPDXPxklvOk3S`_SA+5*_~F9#w}Je%zAMYWzvrh>k=U2Ailb-|-B0t^~~wpA*ap z|ElcC$})Bs9HrB?BoBKF_AO)$SQa5K_7zlCT|icam&jnWo`<1vC(jN->Dy+$li-6u zXdYqyploVNq-Fnlnpen?$Z+Xp-*Tza2|GVdDhS>HNAb<@!11O`H7d>2+P zE~hYfCif)EAVqa^I29#|1awDHM@10E_6uId6HE%lg+WN5ueoMu)@V zg{yZ;2^lE_m2Fb}$6If5*q~X|FgUEKe2RH=qRrMhnf3D>Jus%L`AjnJ=Nwn)G=OR4 zJ^<4EyJaa0ED#idtM&HHuTBt&;v$2CH#Y?>`T>xC0O3_|&Fp&n`8&m6=+f$WpcnSd z?CW-ETv+sv2f*s-cMpAaYAZuP^&-EQpRF`tDnoW7276BbPTN^ctJ~uZz@F6rKh;nX ztWX(EZH`I2iR`KFjFR(@gi>{lwHUl>EjkN%iHl#OP$%O>iFmR8n;v&iYGl*q)9O+w zeBoBhBQ$ou)|1mJmJDmkA6W?%Dml&TRNhMCy6>qjC;d!<17CRGqyPBLI;6pZ2!{k3 z9o0krMI6>y?bGqCDMq%L1iD%L+c^zq%{e9{+2n`9#{r6CMdt}!+ByOxv3BTTZyV+} zUBehEqQ)uin>{w>(uasWMMOxQr;I);MNx$Kcfswm(t~=@(xRX1fiw!r#!ci`!;eH9 zFxmrarO!3ElxVb8#%BsMAg|IXq{Ez3^XaZ5Oyeq*6Y`9H#P6D$);PX79_ONCJbw#|7x2Jq}n3N{szQI4ZlC_@4k_-khVnHMa%H2-{Tj;)~ z#sOiv{WB!RzRg}1;2TvXeB!NUFVWMX6#GA{RWv7rr*+O8UjBMWAYA8l8|uTPY4*FJ z%}1p*W)q#+0><2?NV>!m{9N2cd09{k8{!@5BJP0j6WGV!-BCk97j(EZ0Y3A;zG_8= zMMxPj-*=FDBm1+`)ICVzI}hD5T!GR{{u)5t_oz=8LMe`ePFzG0;T&qyMJMV=_0%l9 zZ9=$C)r8o1qOQv0eSXN)P{{10L@Eb97Kp30L8y|UUzePWm~JXjv2;@HYr0I!v@PQ@ z>btp?>cNhaSV*q#i2ciIq{ihDNS9vr$wDUW0@?y zifaDzc=`TxFt2hux2x$$OC9xEFsUznF{3#p3u0ElGJ={R;S|+0cHSQgRK8D2qn&x(9@p&Tm#%0T{*u3V9tH5~k&48h`#gJ&zBX zUch=!);C-T$GAO~&q5x8P;pqtM=7`jxc!QVS)-S(iLk~k<6r=2QSd9o22^ev>699G zdJ%U$|HYx3pB8bjF~n;N;lS;Nk*wpmBy>{)c6uy&qkzo~0}h!1oLaCGDJtf%9zYc* z#}JfSpObd(yWtrfeva^A#4i+i=EMVl5BVx?X2p`j{mq1%{-JhH}(y@|5*vS9a*t`wqszJ}l)|7Y0&`xZ90Cyab|K zzNZ*G9rG48J=xNy2aoL=OxNaGvv;cC$TG*d zmN#8d2FouRcP>wniNj8Z^cJNR7 zzj|6%rzSbH^3Nyys(X`1=`z2wx5-N=NDw8#F*8zp?|fL3MHnKzr%JW)k9;g*bB3^4 z0HPQFbx^xR{Z3LbasjP?`p!wLT(uO{eI?1*;}KuUrHd|9g~QWc8~P$OGed9lwH_xe z+;YD-mKjKcSfdF)@I&S>q&a_7?E}!yH0TCAA*}c0naAX8TI(c;ij)k+@Q(LaU0P%%f z_>?WN3&+|2@YRu+LkI0Z1BFFb=>loM5> z8+Y?8_OezXcC=|;Aglk8wt9#*?igUl-OsdrbV_4u8{LN$}bY`Z;<={@7IVxW(3buVxZFvAxNf*moeCF2n2#$GSC zY*I|Q_sE<_H`Vo4icxg6QvBej%~W(?f?O6o6`1ulLvfSWH_OZw=#@QUIa^uxMJeQE zNv?P(*OAC6il3O^j@p9z2?v-`6u=QOrv?q~MB>@8(;pm3@0%6}cyYgcfUO5v3D z;WT`|4nh_U7G@H01{~>J+&cG3k>ulLOE=TMk5}Kdv?1#q=}HOsQ@hZ3)mqUQuw`R# zC?is?{ft=OACvVqo_XCuJ&yD%$A%2ZDAEr<*0`AQ#8L+@pekz5Dj4x3pwh+e2brYa zN3Orf^W;uVuD#^83w{TED#t9+3Ff2j?CRY5`ROd z+P32S#*KqVUo0Jd>>3Aiy3W=wnT)@KlqtTvsrt+P*F>x;^WHuzAS}`6iuo-xajlK^ zr%>ArZTV>l8Cb?pK;@g_pH{YhhwskdUDbEoLmhxzAVJ&OzA1Zf%g5V9u@X?w+rIeI zq7M%Ma=cIp*-vC@DdWE)9y_RGg758vb1~nfRlX~f(`HZPgZFwrsE*qVsd)m_%>J{O z%M*WWNCGSq7TKK(T3{ly^4W#M$CXp5XS^i*Cvgi;xQYsX?6DiXQnUUBsEp)+a{%D* z3h9lz+Mv5dp~yl$=+004FLX8;b>F*Bj-@JNr#`sv+D&xkL6_I$)8}UR?jf?%IVP>t*I5iUX7+0!{5e2sD09L5{K8$;r*xmJ*NO@uN*&KfW?%Vz z6{=oURtKc_5nqqOk0>x+xJq(5w>F&cx!4F6{a?w?;k>A5N_yvT`>jgP^oGvQP)lnk z)vgZd1!At1zu9Fq8Bs|*j^y~O+hs)m9Eq-&r>O#(0AUgz;s}>6>%sXYmn>&ufvWPVuO|}v z<)%>`q$HRP=WiNS_o~>5$yFQB`I#_rrvkMS&UjJthTHuo^hypyd#03IkX>zyBY_YB6yI%H&1g7L0q zhuhuYEcgZ)Mw*te9dSnYJ>u6=*a8GqY?Qxxsuq-!CS0%0tGtjd=F+LpViB=(tBwW&t5PH`8h9mu zcui$1XA*x*{XPGdvxCvs3?UmKcrQ zg`-(Vj^zOO^wh7!2*1_r$Kq%<3D45r$-w3t&AKv|-(U0!bl5%*F4o_%M$c%(p8v^r z<7ta@$4FiT+VIE~7+C126g&<~7TWJLqR8{fp!mBJXwY`q)H^KX(0QIjO@oEq#=ekW zi>;TnI}a@O+RpXXig-yPoh#3xYd!WemsuyaxhnAmVcP>>!douAFV5_u_dd(1>AFk) za^`n*W*9~7DN*uN=LTx@WzD*|HMvTf_yYj5rfLw`nbs-*)gj*x-laL91+>}uQ0~d& zGp=Fom+kXBaNdch8JA-X7H~D|Ib1|(l@}QzP5|N*3s`G!R@j1(91O}3nd$jzcO=1H z+{(=@8R|n|kWonoULb+ssKLE#(>=<-p<@1Rp*`AmG#siG#@sqWgf#N;9Ghs#f1MSi zh%0jTbK3J_rVWP-R8>8Fh8~jg(Pv)bUnyDL$%FPP9JpBWNd08_A+j-AH<6JZU@L+2 zp^-m`z-^A}XuWpfmrPZvix&MIoH-gdbCCyrIwsMn<6AQE0`(z9Uizb`ng_Q|Hi8nE z;Vzwvud-=3&`g<~17!^OY>20_p^t;BeDV0=zn-agsx5V|v?0VKR&Kn?I2^$!%={=a zM9WcLe2MW@3`d9Kx9PmL0!!4*jQNSnr)jPR2f5F;JemLHWzUsEz-JKH8A}?7%y-RI z&Y%}Yf(I+q^n5DN6mc?mWOC+3wWX3nD=3RItd&+Fp5XR`(y*rY3)8gYK-R3w3ZmKw+?r?fAr)5L%I%bcwc5g-bQktKFt$74z<-e_iq<%Ozmp_Xjw4(purca}n}C z=!gyQKtapmf*d#$uVr0J4#y-avbj|4>bI*yEj1D6vh_>_6YwxvbA;Dknd|OVg*#Ik zPU#EcLsf))OLP>NloX-rK`O5gQ~a$j5(#2jw?sug<`8feY}0bjg=VT-n%L zV)Sp(Vh;eZYD=l6*SbZhu)gxE2+R2BobI~nBgnVxBY}W&4TytJ%=weso%?)<`hvT_ zKD4f4@Kd7m!RkU9PQ>IZ;0 zLzBBOn*-QgFpj`8D0RZ_*Y$#)?Ml>X0sa{=&6SB%mkAG`>V$oAZKGahb<%DQTWCiD zCg4E+w?&M9uz7{J;Qw&!*k0Tsp}S(mX1l&D<40(j40lj-*o5I*nqoEQm*RGy(T<@Kw_Ojno z^2ToLmQ#Rg&$;yx9h=ZNUfj^3pJYx3Vnnt9VVWiPtAqA5=o#wjRa>g3yqniG=7I2e zSEp_#>v3bmb|)Y-fduoY-ume8yfAJ-dd-WZjV^(3COqzdBYN4=+}gT868C`&1ZX(x z$r|b`p|rqm4J;Qk8P5_g23XGdTfYDTI~#0sgvmMlSaROu2Civ~lYA@Z5 zNnRuC7x+>F0rLq%)v}x(Yx>KtnmUEydkw`FMw5QJ7OMk6b=p@*HvZ@@(So6I^b8;O zN{=50+8EeHLd{ngPn5rU3jA!6J(Kq@@$6YU)MN|EjE3oeNtCdrFcP@(s$4|$Sv#EQ zNz#GAz-v*qKO5^kZw5>ALV11}FAtIDQheu(W=e(;4gDHDjH96qBa6I+00vtu$&_e- z2l^pRI(aPd;z8=(8>!M%vC68{0L{1bcfIs-nhtbOh_i(A(1S`w1aaQHH2 zFARvj>%!;=dEOA5!{M=2)QV+AiK-G74fW<4kYBqFuI(BS4=H0|CX31kK$p{^wv-3$ zlYMStw9adA5u)(EmGBo^Wxg!~dik?AM|LZVfx zbicsg7rfBp17b{UNfA_pwrN&t&MWr^yJ`|W&xd`ip8hxN3lWvZ4Uz1>lVWFcZ|j3FcFDF1|?`vA~i z$`#}A5_{7PRT?OpCxEu>FFRVaeRD!OF-54%2E*gP-{kyDa_jm=qqEXDHvQy(x6&Oa zyrBI~|B0e3Os?QV9(PbIyiljKo=^XXS|RQ&ZKMnl0VKkcPfLqo|I3_Yw%7 z%e03A4(a#L%L%dss2>1>L&-4R$Ob`~s5i8?c`tC|^**!864RFE@2bE>T6UrkuT>hP zfy&0=wqcrGK~~OWIkA+R{@?8R8Qj-{h9;MVNnd8Q-4}LbO2}nNLo4YEB8-bpdFRpc*q>WzGT;I5cA&yQVTgr)8j~`{s<&BeT{&$W^GJZpw1h0$ zVkiw*R3S2kIC=!W9&B=;Cgd6Vd;F1_lImu(UNGQC{8ImR(*xkgz1q(=bFXV5B8RH9 zw9EJ1C0{T29MeB%9WN=mo0;&mI?tuGfU0s&+wwSh14(5f#%Nrmo+*sVWZOxFr?mp3 z`F=*eJRSq+&qZ%H-C5S5A)MCO_@KhS$!mHgJbKf=I*tfmkIV~$tDTOrB?67 zYk1>FXGk6!L9~`lrS;B1CvI$Ho2=mnqNN#gzLbe8n{Cn zgQ1uapuSA!Y#GBVwtPd2Ur#sQeNmk_Us+&7-BheS0u|NSP%nxs_@x2J8kqsJCCMah zfY#>13agg|xcW?U4Xcrsc1%=07DAIzLmKL<^+YbMhmmhoo!@w8Br(r%sZyuQdsAJT^mtwCy}`y#@zw^u(_?#~SIxDq zd&1^Q{!LzA!T$SDG+F>hnSR-!j3Wqk=MtaYrwwTQ6?i+8+TD8Kl65%PgXZpq1y1O{ zQ=vD&+UFazP&NZ9!@oIQYRPT<%jnz%xr=FQTeZVz*`EoG*n{R(g_D%wJZ!sxg7lKaumVx ze>br%F>B^~xfxFBm#Zgdo(KEv{Or-Q!jn6pJ#u5==$fV8$S@Mgdd&K3EZeht>?dZa zRa4}p>TUQR7avV~6&;WbIVuwW0YCz)rhzgoR+|{T!DZ=pJOEVdp>$RzGez|+XJ0o< zx-7&3OG;Z(7@`h{VmO?xu+;vdKx75H#FgK7>yQBub%9PQmJ54SV&+XdHRnnEO>0jH zDFILJpFr&ySM?4&&G9e!56JLi z@C!={A<0{DGDoIX(lY6(Y{TS-%{e$t@<};C1!uCMoC)0A(e&9E0e$%J)mWudkBzSR3S%?Z#7DNK= zmWt_w;prEiBE0CCNljN}aVe@srFV#rF1a1sVlDmh6efjonic1!-US{{1q6dQ_sxQ` z6jqWUEN7=hhQX}h_X2^~p6=%BnuWFkbG4X8TsG@03`yk7vkl!lj%(NlK)Ov-c&L|a zV15iem6rX;*<$Omm1_#qDpX1-IAp^~(Da#vIl}6RnTCUHc@+0ZF!7#2@x3-YOs*8O zh!firQ7^+%aqs2InLthbq@Mk>O5m>~Uz;9q+|B}K9ser>r>Tpr_poCuu;_IhqsL1y zsbwXWd%P6e`M9h&FQbM3NgWR;_=PX`DT?V_nHg)0$q)7j znt#j$hf2s4?o^dmLD7}3@d2MumVdeTT|C%UJdNpR1&qH_fAGYw)xCa>i464UoBynt z+ubA^SDbYN549V?otvZvTuO zQjY0aPK-s_4rwhN60svJ6ZpG|K?@eB^Giei85!xJb7U1Tg1kF*yKd*+2#`mOt`5;Z-@-~O0Hh-e+iy%*+XaSg zH#vooC~`P#fm#dK{}6DOs=YLYd~53jZoF`j8MJ%KAU+UlY4Ipol}FL8he|=E_q&sW zJRsYO5*?Q7yy)%#l5s6 zeTaD~R4$@t@~EeF?eP*fX^b=mJs^`e>ow97|HF3?Qg~IokGQPo$uZ5LHPzV9m1jRn zFA?rC1xiuX2C)}fAe@dRXKNrywf9q4F+|lF%}|6flQXSAUsLeL)5BY0sPA+QcTg{O z6aFD`5QUzpG#LRr_ILoq$R&E<8*WN+W;BKF@o>6=Po)drjw0?WiW^7Hma>~3wS>KW z7HEJ;h>Sb$g8oX8;d(kHQQG07N*u$&HhlTidDR^s;Q7LlI7mYeX=U=d6_F;p*egTl z`>hp;MEYvtSkl$3lt*z5UFSaloWl+}!XS8S%TNanK=l%w;t)sN|AOV#aNl$1MViG& zWxl`u%{N+j9q^=NP8-fH(rCPczMBQ>Z}J*C(yd7xDr(>JW@?3GU|cR$y9YjV4AE5O zE`>X2LA$lH?TmB6&-k*77sMMx`?`!Kts5fP9{hlVxje(wqhf#SPc24nO^hDG$gMsC ztu)5NnV@S+eP?cx(tFFl=QKa{uM*YbM}x znnJgJy+Hgxew|P||4$mm795b(u-^E~zlRgkly9T>F5{)4f8Iaq+ad)Z!`q=&{p3H9B~##w7rlVz^CaeYCfq?j|Fo zz=M&+IS~MD{fxP#bUphtx8zC}#}5Opr26^U6k}d*{#X%REiNhC@iA@Aenk<_lk!kB2L1 zK@>|aeS)nj+|kSJHg_#97hO9)VX!tLuiD^GD0UepI;X9n?9#|-32SGsr~A@W;RAiT zA7LA01th*G96G%NOQJ(S$_jBE_bgsI=AO1l?rwvHS~DtNXkjY(-zt}nMxH>|a=bGd zHR{drGg*f!FesW_W$3G%BX6)Dt76NS>^+Z;75IW?5okKIgKW!aY#z#yOo~e$x32!5 zi@y91Y~$g{>EM9E)bAbEQGKNAz*)XozZHIUxwojmki8EjXhJrcHXGKq>5q9~%+zD` zLkIJ@+w_)xRI-zRv*Veb#Is+qEI}>^YOD$b$~P3F&IV$!Ohr=+zwj4w z$KqP4_d)dII0|7%;sT(@km=#)>=7O#BEv&b!-mV`pu2AJL=Pj~CePw%U7dc<_|S*{tWhuO4LwoN@7iEqt23Xo`e?GNl+iH3vySTo#XZ`; zrSDI{UAmFOck3OCNm0Uh^bde532zQMbD78ME@wKH6W!-@(~g0!L~tH~Ap#brDn6!a zwugn>h5lD;H(N+@O_KGCUIve{Y)kEYRkiB5amBOZ-ua3}eQBa&fkhgbdg z%TW{yzW~ZGt2n74x%{5z$-nHb{vb$D3N;<4GNx!6n+vY634do#jRZ$#!Qc%=^4^K_ z!WNZ^;@!W0YEjV4b($Jm4q4C_{p55>cV3B4uC41WT^IZVn7lTYy$PA;TK$h}@6Sbg z533$CUh?|=n?eCGSWtaLbvbJ)|HfCy5;v|qiemd2_eq%C1~)O;ceeg;C9{jNj+*AAo^1CG)+NbpWrku7 zaMy!o(kL6FNgkhBwpgcI))8xiJskivE`%=&bbeQ@{xJ8r+$EnR#(Wh? z(`Mnq6N`V4M|2r{vydXWj4|5sn;2rp?3X%%Vj-JU_t9Z7 zK<#=-F9((2(%5(6$8l$`gFEoSqj73&CX=3o)rl*|y=rfbbnPbMC}MDJ)9r#v>)%?` zXtd5p&!uo4NS&Z;G>toQU>;)I#d0UouoVro;heMf7iWu>LNLg}Y0iX!HzhEUqL3eK zG;Y*xh=4@`dfzT%qJ#*PQ%+xHj$l4-;QZdPg0H+nxevlHrEwNzTSw#44!KQO8gCO| z)iy}?i;B9kxa6-6dHy$=X_!%=O5Er}04`~XmPFW&p7|R|+2|_VCui(R-)H7!W+vU{ z#{GonSUojk_`8-PzVyh_EWfv)$+I*6kMCHC9M;yTY*uVecsFE|Z^(g>^KKzy+dCge zcKao%xw;}aLn8LMbqMh6`Ioi^%FPOJU+*>Mu?JGGaca95)qO0f!15W#bz-O~Tc=FI zgdI>W#6HX>wsciEvk1rNcdIQZw6;!35Rhap{fDRi^SjJ(KWiPzl#P2cnqL3Yl1x9U zkzL%r^+Ekt{~h7Wp5l}2AA7cj0_N4|KP8+oKUu$ivbb+t)+2UOpd^g+B8*jBYGS29 zSrbFHiqfsA+H*Ds{DQ78Mts-8h`;Nl#-(ovOm(?OO#Utn?qqi{AepbAR-YP`nC=>J zggUg6Ya0#wl6F`KJvQ`YIWM{P9nXS^!!m+1we4BM45d+(L957u*_Mh076IMwN2-hA z1$tiQ2$#CDmJZFPR!drMp1_8k*zD-Lh-Wv43yXqcXFXwmh-NE3J*o9mBQ+f5b(BH( zj4~hMz*LPhNAT~)B$wlKDTlXJ+vzNlQ8OpBHph@2CH$bkNTuTgtJ>CtCA#$uC9|+K z4Igu2d5fyf)kVJ=!Mj}t8$^M1t$_e%s`R~x4f4w$wDm^hWYn$JyTzEm07JH5Q{?I* z5aLulty4Sh->^&#lus4>?|eWh#=Bwpwas~l1Qi>$46Ws4V)b|$68luoyGaCW{j{2R z`JT1tH1Dcr=V{2IlRT8{>GJ9#&8Lvgjo?{^ZrR#r>|c?_SI8%y(}UrRMRNqsJTbT% zGlw?;2PzUt6BO<8%c2^Z1M<5m9C#d)^DaO7_thjkC;2(53KPQibxob*m~3&X5^9Ed zv_XfD zQwi}}a3@9!2AgG;jw#-rD-U}T;A9nD6_*|m0=uh9=$5NVXL~12V`@IVXKJ!bXQi4I zT*R9zu0ulelz)&3Kx;&h6Ja3OIYJO8Y5u_qou5T2Dg^Nq5HLadYL|7mkdOOSO(KDP)#`lOxJ2 ZWPJPssE`irWp4fql+x7Hgvxwa{XcAPeANH| literal 0 HcmV?d00001 diff --git a/assets/32.jpg b/assets/32.jpg new file mode 100644 index 0000000000000000000000000000000000000000..441ed8fb36fc858323c31a0881a2d39cb631f291 GIT binary patch literal 8834 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 literal 0 HcmV?d00001 diff --git a/assets/33.jpg b/assets/33.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a53e5323bb8f1e3315430882549892c7ad8befaa GIT binary patch literal 151103 zcmb4qWmFtZu=c_tA-KCP2~Kc#cXtc0NO1Sy!QBJF-3jg%oFIW+B)H4s9{lot=X^iz z&s%e5&P?}oJ$+`XyQ-_IUl(6D09Xn#@-hH8I5>dm+W~l821o*c@c+?&SKu2VAR+um z?~srXkx<^fe~&Cfa*c3{(^pbZm4COe`#HtoLX*xHwq2Z}(XLF@gK9B@p4= zTSF{V6x6rU|0BKj0kGczqu|?sa5MmTY&ak`-0L8K0sw$R0RGqA|4)c-9YhAezk@@0 z|5mSu1%Q8phDU@4A^{N*fpEld@IU|pHX;r+5<4=kxVjmQ3m!-CJCH+{E92azQuMCb>Ic`hyTzrO?@KFGR-(*a{= z`y`V;fLeikHFFBFxzCTD6}krQ=<71wVNU`%r8R{|>|GC5Wj39^+v5z;-nWqO<0X<~ zGOF;GFB+Y5o(-wcNp*W~FQvxQtPZQ*RYXMQ5+1z}+UaBwYRX$Vu~sMlL$y(?1PPYT ze~^WuIV^)(x!~#H_UkFfYxxp=BBkx+#_(W*Mi-O(a%sp=8TM%BFd&9#j*3(ejf+8$ zAoxV_om*d3%&(rL1B~kPg&GgR=l3vWyE3l7wK}_Jq~pvpN;9c(Jli%gi9-!O$DYv% zQwhZAp-1WVjhPw*zO<^Hhpd~ZiHq{|)oQW}UIoC|kb z+kfgz!x~*V@be$nro=|l^pRxTLczW;>;U2`o8O%GcUk{vl2@!-*-xP(q`xfdrWpOx z52QOOwMx9|K}5?B{$r%EVIN&M$~_TW1FoZ_!PmL+g$7>Au%#$8bN2Yv_KMty&950~ zrT!_>3$JBC zQ-we_YqP{PpO5O+L?JY>==#KD$=$f-CtLx*zh10!P$(7-RVQ_MrPQ4geOu7riz21Q zuWDh`fq$UkMLgdCgN%_feS>89cwze5JQsMZe7H*{#&x`gfgtc$ffjM>^;AMUg#q{W zR)XQde9{R<)iJ}bm4Gv zG0gOxh!db|O+!E>6W4kt;V*fpbGbs-XVGv^XEJ?lSeihWxW{dR^v zC7NM$k6Lv&5t+<}`DFMb^?Rvv_C=jdEI}&#`7O002s1~XHY^k1#~E9Pn(w^CxIelq z|9sQAG#+kae>T!acl!$OMtxV?aUm-CWSo6)AhRo^OLc?sgD0na(tabTX4t=K;fuqS zCN9PG;veogNM|-#EW{<{2KN-F%?1wf5u3s3%V`uXR%m29?QV(eLtMx@3*`^(Qpu1f6q5v^A28#dPA9} z(aN-tL;ge+G%LH86j&n|d+#5vI*HS~Oh0DOrgXt*#0<78!)pI~%cX%T20-+C@>PFV z6QtxoEPP@3O)eu@xOgyGreE#>`L)ieaffw%7oTp8+cuMQZ6IowN3FR ztsEGyi@l&BEgDo(vuA1Y2KZ7Mbn@Ml%}llz^WG&d z+HsbU{1tGMU%x8IhmcowU5G{C7JDIqvm%g_PQ^>l#;tRR`Ttxc@@$uiCv`AaI z)iS?~>0Qc1V)__GCSH?l5VFuhOAC(5iZxyUMDo`ulYEcSFy#Hm2g_~gCNN)xRc4i( znDI!GSix*pZxxyE@l+lNut(HL~G#*!;(CXKM}qHXtRR(Cv>^f0L;zY74~g zhXWY${>9aq4&<);hQo}-fRt+%{s%(cYWgiz0X?afWN!5GAN5>~#CA@cc9kvDnpAAk3f_afjVlhF1`X7#SFvjPhPYky~N$gX`nARXZk8sYVY_)CM^x5jt(C_DQ65a z+(b21`4vF2bhsjk;pEn6HHm-}u@eLQ{ru!%+U(aO+BP|0N)y8)UJclV0K! zBYPWy73Yh3@JT%5al_oYTJpMDLuWX-4j#5V*&w4)`39DsqYxVINj$XZP^0;`QQ%)m zIB>F6$7gDcKpr+eioc+(dXX7$++3d9rMGCf4<(X~4}F*D$W?Eqn9UmDD(|;$LkI`Y zzs=5iXf-eW^JIU@@1)eb-?BjgglF1etzi%GKm5o#dU9L>EjafiZCqO}dyz?vixM%M zeKZr_ZS#{yFlTX*_{>!A=}Xnpwx=P_?l|MCy5?WyX-@LI0vdfCmY&~#(+-5TB$nmn z4SW6NKp|7exNS)&Tdz66D9DE`@Qz4Gw|2Bb!O`!gb431J5RvDhj}68oift2@69iX# ze=0LR$Rb~exbywj7Cz}gE`G!Gy~HpIJ~N%(9OxYPy`1Q`!?21ZMbU+9ei5v*{3iSo z&BegSF#FPZLX6UXCD2IAt+tD2j(L7s^*~ueCG$`6D#g~;FV%s@-=j9P-WRmhx?lR~ zXwlx!@uE*AEnHnc42Jkh6@Ilma7;Ka8X^^DRrHs51&Fn`C`+H<9D*~|capv~CssU& zCqNyUhBpEV%x~7kUZzBdJ-XxS^kjX=<6d%O$YVKH6lk0;9Xm49o+iuQMOP#xj@ax( zd~O;EBbQt-b}E7S3TIzd+0-u)g&=#$xs zyFNb%%pzC9bL9J+%7BTCvQ)&_z3SJWBf6D0jMiALBUFvAcTY22S!(Tj30Vd?t-frJ z+V}{`RliS!V=kk0A<8S@$_+Vxl)eB~9WUtg!W`B&vjnI9NaInHN9`N@Dsh?u}y4+ ziJi9VLRKjqAPdgYP+__+=?Rux1;(i|^=-q>y!Z4lRU)G8Z1F9*I3dcp2U)%Igdr4x zz~bJ%=6Bb0#^ThS>3%-Frwby6!yl~N`L8&Nb9pX(h9oynGiG~3p>+>=Wsc2NL&y!3bDz%or|7jE5NM;lKNG z0%i0#pa4%nz=d5V96wWA33(X{N z+hzjE9x8J=mx00+v>0p z^!4s$SWvB5?or@) z{H!TKFYToUWh$$a)yn>5zgSru*Qet3mZ=DKb{^bvpF9h*ilaQ|4UE&RpSUF0#-_G| zvjalA4aR?xacqR}T-+SN*byi{DCCX^y#m;|=1;C!a9(Kb7_2c#QgBAK=*NDipQ;i8 zgZuAFZcrVVl)ijYlV|2-=%5E;AMmfP6M^FI{}ubrFIhny%JeKOyyx*5i+AsM@V;Ix zr7zT2Df24Wm^rtcpQLVI@<4&2nq^)Th^sch6a2A+PJ}b9E zo1VwW%FJT3ucj*=vDKC*iTBNyF@1BtXE}avW*^q0jXg;a&)EAug6AmsUQ!R>VanbH zyxx&KJZ3D$&Bmcca=`q(Q)UYm{vms>0=TY1x*bz^lWTQljlZE-oC;e4EsjZl@k70) z_{wgRP0_%Qvz&(8d~YUIwV5eVs5ZT-tD!eBp=0*JW@bv7Unj07r}r~feI--qhbWRTH|t@yEUohVK(zLnQ$i zMLv_M&W~lISb-|6Yrhkl_T?>uNxJ5&LEAdfqdeO;Jn_rFq+$zRf_5Kv5X5S86)#uC_Vq($CpV`IYyj451!uJ2=v9T zw)ONS$Z@HJ;n=sf8c&Fgi3DLLJ0q_ZyY>-B{~RMDBZ<1%SII3tJgWJ?ion4`PU|#E zEXOBG`Ao9n_fE65twgSRLsWlHH*RZ0#}>kO7?5&R5Et);meL~3*$5X{7r0+=VOPaf zh|xPMPdU%t!Ebs$GMD>BC(n8-LAq$k=GK+_ryC~?jZ(ZzY^=XYXmIF-D&-JH17w?L zRTIKyq;G_tEbV4{o{1OQN0*=qUTQ$U1+xxP4n+0d+C~k@Rg1m?jD9zk-4Fz1CzNyh zsrHp^PC{qmW{JSVr_LO5CMw9?c9?N%xI>h}TAZ(d30~3X+OFn>rm2ea0j>G#K?b}f z<3;*yBwp;FOb;X_PxuQ${4p|Ox+jcusN4_7liS1l zNN@fCu2%pOSIjS7R6n~Yg~zaTNi9(^_v1D8oAi<@563djY6Vtn?3Q^~LsXJ|K{eBO zK{UAdYguTU)_ac02eE}B89&r)8p`Q*&%m?a1Ab#lJkRPB+oK%fT#8SB0hCkG7&Wtw z?(H5i%Hpimn+Q!U?b&E(*$4>9!eNr!l<-d?9nId%*MF-^maiwtp|RqR{ASOL+K?Pk z2Z#ZFdIUIuah|F(X!!PYB0!$@rP+6?h_8_{-Sotm^^eW;h6{pC550Sy##&(bLDo!r zo|$vVn%0ACfWFvElVC;1Z;8XdG|E$4#GpI$ccN9<7v?OfIrH*S?P+DzuQxuVA4}M@RKG`~RhP zlK{kgiO5VN(*5^TLnUGRAY!WqqyQgD|Pw(wfTU6@VM4SgKi~t1!STx-yn0 z?LAliNnITBY*$#Cd!;~)GeSCSZq;XeaL-4#AY|QI;|@}^EY%lNxLd%#Fn%fupFz4`RcKx5*Hm-X~&QprMs@p$)t!xzR z40n53hu>-YFVu@Or0O0@h<&C{eqyZYF>_tv{6L}YOz#`r=x20@L3Wl(b4>urF})k* zX6aWZ41R6U1Jt9-_52{Or~*UuK6(2UP+nxPAC`kZCy?6F(^=fS3Juok-TI(hi3A@M zi##o~^IVnp;8xsZEIVxDE3!4(^SvYOrlEh2?*W8!Od7m8Jh#ukRpGJp%@m1E1v#** zCr`Pg8I|X_eC+5pV_oH60whP>g}YZ3HVl))5(<)}aWMJ&0M(qdGf7bSnWx^JJ>+B` zE>CIWP$`%VP`$*958g~rx=x#DH9-14pCA-q)Z3dZHb9jyrNW+|psLq{dLjCo24GrYt%rk_uB+ zVELpt|Mju`?j2+_&C3+W#}fFHE=7aSJ!)))lK<598!R_=?ujk0>>-4}4Md~JL^+

v+k_S?KoRgKQL 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�B)R#TafcsT*>OBc-;6IDkDnuCBzlO;?uO?J2~J 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�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 B?y3L) literal 0 HcmV?d00001 diff --git a/assets/35.jpg b/assets/35.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2e84b34d7e4cb4647d13f04b38b1a2b2a3732bc5 GIT binary patch literal 22685 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 Y9%JWKg%Y*Lwy)3EHPWYf-E^7%*_mtEEC2ui literal 0 HcmV?d00001 diff --git a/assets/36.jpg b/assets/36.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f241d68cfe838425573e1b459f7e3516ac552013 GIT binary patch literal 8454 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

?KPEr6F*zy|;(8agpC5h*b-F&QZ- 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 literal 0 HcmV?d00001 diff --git a/assets/39.jpg b/assets/39.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d429cd46cb4ae10f7054117f0182f9a6bb7a3054 GIT binary patch literal 9918 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 literal 0 HcmV?d00001 diff --git a/assets/40.jpg b/assets/40.jpg new file mode 100644 index 0000000000000000000000000000000000000000..297027cf621e38a9031d98a8a0fd2bab8372b78f GIT binary patch literal 79887 zcma&NWmFu&(>}ULaDo#&xZAS02MzAJxa{J#xCIUFwu=ULcL~9DahE`XdxC{P?DBix zzut2{+?sR7s=KPDx@Wrjsp)^~|GoeSRh3kf04OK`0Lt?Q__qa+2N2@o;^N^F;^7g# zBETnjMNLXbNJ{Hv*sn08r8XW9|PY6jU_y7Z}ex3Y7n%|IK-R zrf1&2O#mJm3ILT5jqv%#x%ka>kGbhRjE7XezT#Tg7_F-M1Au}3mEinK@x#L*6|pr= zcz7H>R=k5sF>4gS*MB4^Ptv{Ae9sr~!k4n!^FBv9-(dZ{$hf%2Y`5--5wD)H9he33 zsvjzT`NLV%+p+LkBSRb}>x3s?E0dSwPKGs5{2{ZHQB#10eIgZ@gr9g%(K-AoF9hMg z@pWVRxL`8?9OPUsNqBZ*6rnc%-k8c7UqMh~J7O<8U?fIVbDVv`6Yz-M($Uwq~`5XzwnZ^ejS1wh(;&?XG! zYC`Vkw*1iZTj3*D0LrFl@p@x6b=3zJ!lwV(`q+Zw_AnmCI89>a)Up3-^~7>1uzgCYXW-J*>jQ!1>*J%fkBkbD;dgCUF9~Q zQ>NL^357H3Ke!KZ17Yf6^);Sa1PfVvMpd^VKx3+~|5MDfmI{>$VFc@23iS7^@Ga=` zWB)Jmy|>?+TRNYf-Z)jfeHF-AzOUud+UIteW(QSIHfV=y1=RGyhLcjnOMVsGi!3TG zPCN3q>a@8F%)um+Wnhz%UtLWnUi>d{0KmvrG>3_PE(41FwEO}IXoZQnU45L#sU>IR zAS~>El*2fg-rfoo6y*gsIl;qUm~>8)jm3_AR3Qpzp}%LLW>AE|^9=R4e|Vj85bdza zz3|oiET`nKOtu1sAw>($QdpE*_nbVZt55%@KmY}rV|qTNn4H44iGTp>7jo5N7awd# zZCHlvf2+i_cojI+eGwT$TkgV=-Z5}QAw}6;4Ao1k~=*B zfJQhdEay_3=wi*n&>WrBqT^yW>4a&860Sl-@yrIGr2mj4P)ss1&+_-DHQju~7v0fJcDnVI{NYX#dr{MiJQE&0XA!Qp%WI+Z z9cyu@=yP@fWlI1WlUCJw40`jtOgQTDEiQeIlD{!Ea?0)~0R|}0Q{Pgkyk#x}GPZgvU|prxCxEm!n{auq*9e9QUK^@gks#?=gr2XFJvSv>!PxPV>%5&eqxTZs$eC z5EItEqRaB?6?3aOw_dB;F#9}dXWy5W+tLNL5Him~EH4UiMg2^F!Zb{RREcoD?@7n5 zE*H;s%ZORnuA!9<0Ou zyWjQYN~8cRfx9j`OQ)gF8PE3(tUvMM=v#Dm|GUn~3&$3s>}IUAvDTv#W$~U$$o0@U zuW#!PN4q`N6q6gc)uk@GlJSp6H4bv!>P)Homvf@X$jNG+r%9fhRE}XVZG-P^_LcdZ3CAP22|60uaun`8m~P_a%O z(A>@0Po`z!L5cTpkewvf={UVoPUBXv$-RHEkWzR*m8dfR-kd5usd*;3r|pba3o29? z`qT!k$R{_a>FgvZjl{HC0$2$GM)-Ag87rdr%TPEN@BvrZlZOk#{m!+5cLFur2ZnurIY7b386tCw^4h^2N(7f^(*#n?iS&)ah|sVN_-L*oXfXH z=0&s(MKUh%*&>lf=7l~WFqQ(2MJ+oIcwvjqpMWaf>Uz9b%a&1OLjANk8{|~Tm|mBq zr@N3*uH)2WXj567>r4O*->hxTJj59m&&yb5(dDYupSVJ@wo1Bm8_;a1N;)TBn#~AR z2*IG5SBbd~;j-%KGockxg+3M`V&uS&V=kYg>sBJ`Nc!{2GtZ{y%*oONXRZ=D5wJk} zfc%}5XpzuDjU`nnH%kk4Eq|1_SR1Q(LBPC%HBppOOsiCW&?IN=tmx*|(tEpK|MT&qSe0qM=&n871;NuYT@HfvyJ1P3Gn#8Px}dXt)i6Jz_gOj zd~m_xt<#hdC^*9hJbRL)y*cgF5#PR6JyE2-YMzewdv=UvdrtvZ-*$5Tcy)zcgR~dq z+!g23wgvl8{!K)#78mH0b_jZMqy0#E-Lu`Z7o$uNN{Hq!FFUIK9P^Z+2t{XY6ll%c ze4bP7mdDmKaC)0x)2&*f&jqZ3omYxS0b!j|BI1SB$34dN7UAlTTWsnzXS`XNjy0YY zEmU(dh|fo7w@*rK8)EE(kj<&e1*|`Ke+lC4{VT)dG3Z{-Ww8}hE5=JyKX6e$3xexnQ@JtmSN%O#iNHW ztnTbCar6o4@yF=u@htPlegWTnJY#q`hJM+`U;JFtS%GRgRa+k~nQBj z_J&Hxrp;1QTOopk#Tk*Img!&nkj?#ZCAH==>lL@N=#~Z2Q>TN(bB^d0TMapoVNEId z{6de3+p3RA_T}D0d^soA=vo5!w2)8p>@cbXvVo)6FFZ6gPUA4+E<=3=&Oc3}^fb1; z4EWpbZLVef@wRzmch0*u#?oEn<;D*l@e$U;wW6%r#mCiSS0C7EFM&LPrYBk>y;T?^ zhn%i*@kg3KIV!FkN$;vg4c21GhuclBtaxE%Jt-rdIiI(MKG?f{>aa(;-1=k0+FT21 zfFJC%eaa=B+#*e}6Wnbx&{HB{&vfV*&f z=i`K3XZBc8({);zuZxLrZc2$3z(?9tk+0bXXrPjsPbmC=>L|OTb z*0L9@FS&r`$&Tf<7UBaYp(cX_?9}2Xjc~JTfnE1V$uVle$-*?uhhes@{wl`$pSQPw%VC_wg-b_g-L5{c;-^h0~%Au>9wS-3ULi5TZO}D=HJhvLrt|*m4i%;azVCES}i_H?X=d@vM_2CCo z`x5a|dvP?+(Wwaz_Gmv`Xt zU>eAb;E-+AjZ1F~$;S+@K&Lq#gqYBk&+%~Ex$A8KjdQ2Qb-M79jp9{$@On|d?&Sh`rw!MtTWg=67FM0*0ITEIDY4LXK;$EqVNdXg2 ztX~^wd$!+SF=l@4O z;MUYh%&$6O>BvEa^s{1#M2Iw|U*QGT2D(X-5wo%VnpydV`zU-C5t$cn&%&9heV%2q z>TpsdHLNLR4pd4f^H%P|7srw(-@IKJuYAL{Mx^_~pc_TNwb0odsY}(6fEu^>>!)NLQakhO{C0R0Hla!DXl1fbT-}*o zlCVQg{`rhU#XW4Y(@k1p2b$gVxW(_b*XxycaD2J9JzOKjCAhAY6hpFL(6^smH`?TR zT-#W`ZpTy@$T^CyJ8}>DT$)#Z?-TIr@yDIe-s!h&@SX`Xx!Bl@>cL(D?}ky<0&eS) zpyJkhTWxz&%AEF@rM%rV8b=n%vm~A5R{t0JuC>CGdcMWDWH8q?0ueJQis=C2?3*_j zFO}V63Z5zzw}!|%45*!EGD|rdqffjx{J82Pb2Ksi@;*>YrMD4MLgGK*bp3N>uU z3ymDFEtXPG+f_aXi#dF+7~I*-mq){=JahWz{eW3AB(>U0O?K%wPmPn{+(HWZD+IQ)dbjzAE^vr(QQHy9~(-W>HU$*u!qzN78bjB;@ zQzrD36NoKYcvpH;5PaTtpujpIZ>K~!+{?zZ>;Af`lf59IOFbuN{GL+m?yHZ_CW-DU z`$wGumy(sfTleKh?`a-PH`#%x(;4;5rs>k0th|8SQVlK5`rxYyGpA{X9yVfgfs5y! zGndCFoqISwzh?gBIvc3{{eMw)*a~!?k>v?Y1y0Mo3)wYGFMpZjHry$#T{`l}76woG~ zU$>Fx=93rF2ku8iT2R~1oUn;B8+oN|pQ|oyK4`g^w*7;h^%NKbo&sD`%_z>%S!X+>3j|*VR4?I}6MO8zn5XnDv13%z~~<-SAtG$`)=U$xc~@kT$6i z9AYi1jL7AHZ;5@Oqg1kDH-G`OX!mI2d-IhupHAQjT@ru|X^ML)i zj;YM^Y?o~{*01I{BL-yR-A+^|JyC1wY8X5Ao(fNUatiu;%<~ztQP>}3P0l4l6L+o7 zdWC6rGJ#7m3rA~(g$V_Q)rHEIbQ$&wA!1YH%SLYO*XN7G-^StvZv(t9rUbrC$YH+9 zU3X&dNB5=i|J~!qX3#Tfdb}UPvE|TLOCNSzGYI6M@{k}XvSSER|L@!%fW~y zr>h`KNUs6F_@=ej3t#gBzW2U9HG4pv*5jdWHr(o#dfPs58Yvt}W#y!lm+f+B-aC^{@Nh+fKFS8*vn^~48SBPQ8#b**EtQ(bB1GE|7j z)B&)t54<3bqpN(Ea!>OR#Ad^y!QE4tH@wt{n69+H6%U+Habn$+6CN__ZT?(fv3NPF zU~IQWq{6)p>j~)cJ%*mnx+RT%6dlv}#@Wj`12UNz*F?6S?TW+P6Jc$pw(9N`R&S~G z70;B)1Fj~=1AKKt!0ue{%uccdl+%p^lC!0gW1GQbYzDJf$Jf4J&)+YtdXKVXd4*$h z5GJKEVx!N8KVvhlBWjm!H*`f*{k6DapP6{w@)7O(!E_C?3_C?K#dZ_@a11j0t)lEZ zNw5!zvx!G43kzp-ylJ@*Awo)h)flRy{#LIVYG77gmzM3{4=muI_sn!uf;f8$(P`j{ z2z-Q^xs8YKvX4(&I?yGZgeou!{lz z0gQy~S$-J(oYP2huW=QS(xOgwbq@IIv^M*7sp)5k1!D0lZ~oMUTEw~7PUuIY+^eqK zs5;}0^o5$lr@VmARA>gi#t{M?fSb9(h8Ihm!rUc;#>^}p#1r=Cul0_U@GX-=M0p2XH<>~Vtha#X|)&-MTuBt91rRZ{(+ zY#A@oxH)v3IW^+&Ih-2Z8K16ji{Y&fI%cz|*uHHw8Sbchj>Zc-F-0L`1;APXr|eeU z9WKL&6k4XA~@#B-5l$?%w>I~xu{)1wwP*~o0q^yQ3yv!Np!XwyI(2Vyf(96VmSwY1GEub-H zWi-hJ1D~M>q8_|oY)Mj`w6nOwK4VGjbP>Lmhh~zY?v?m{-t-Hx3OQN3r@AbTfSe{j zYgAbj!sfq?c}CntZm~l|*bX*$5(W4i0feJ7 z5>zxRI>pT_-mK4Ks}M0q!HKNNn3?C_M+q`~_@5R406pmzjh2&r=WD~WcVgZrhbuJh zStYaP{Vk!+?Q6*`e8w2q{3>1OaYWvGN+#k*f{WNKLR%T+$LiNE;nDrc7RoXezPD*h z0ICT9Kp4K6x@{twP5}V0hB=^5Bw?X&Fg_0|5deAF|E&=Kkho31E1&j1ZP7O=EO^~l^FV_73l3ryx_VqsTReA9E7<>g6Psfnl>wx{W*m5>bP|Cai)FYG^psMTHH zTD??NNF4#7QUTPTJ04zqIwOC4IORsiUPkvj6NfQnZ8Y~iHM_wnAy;Tm~*1e)S*;RA)Q{3p_qe_2^~)V|6Te2 zyi2Xl3?gic7zKtj(5_)26wQQbT33#r%+;L#oO-?85z0! zP&N=xuLnTefMZv$9^ZLVkmc90&>>@eEkBJGX;@Uo-p!rpRRxxdXEp_W(d4iD!ce7! zcTFVepKt1)_HBL${$FnOAnZRw zABOdr60R|f>nbW~`rh%nv5D;F^T3I6d5pJHSu2fVRcudWbhy2Hura$(+Di$B38jZjMUyy&p zt(eZ7RiMA4g6iI_{C&UTgkUjkbD*FtjDme_u(8r)^dzCHcdF|(MQ=HNH(9g-zI>be zgGlHe-dUW#3V}eEK%mt32SoQPSpNVw7}6E1MemwK(BmwsSB)Boe1zb%>gQ|!RltcQ z_vAt1T_yQC{fZg=8d&CrK;{PH-2vV|z=WXqFYA?U>z*ZSw!2$&nM@ECuO~+R2-RBA ztmE&a7}M`(X2Z@!V-mlIwHzbWHct#`X&K*PbiLajais=qIxEnp-0lCt$tQWh{L+xe z6ZZiXCrvS0q0Ddk@MH>4+}_bQwvImXA7F$)z6m||4#K_%0#UcHD$IR+vTqV{`Se?M z>sw&0vuQ4IGw2iLn7P+-fQb#>w}METarK0@LKG9=HWcV%$nf$f<`!`w*I)agKSoCQLkB1$wE~Jpm$mjkriM`0cw6v_eX~f`)ws=QV?aP8@Aa(%+4-pHY&wm?+j1`_eK;!!dNHI(S zuf8+WtQ?u62v<0>Au|l;A{jUPQsN0Gi7f<5%HQcwjWzz2BF94kog&i2)R99F-!TXf zBu3i>v4N6I?!bU>w(SApaSqPTiBwm3tYY)I5&4OdMUK`c5;?n(pNKqsc86ZhiB5UT zsR7wihwlI!5kVwo;}w>HefKL2>7EpuSWq*|N>>pW5pwxEel#x(^8oTF!9(V?~W zy0dZtG#iFwbD4z|LSAkpvQZT6ZQ;Y?s#eHyL$uOdJZd$|OwiPipf2i2xr{_=5u3YE zABpeCUt6GXVYJmst%IU*ijIiX2pK!Nj@OmNOSiVtljm-rjB8 zS|>kkS5}IF(X{uR<>{Z$vG8{nNXI{Z`84lGIu_APkGMK0TM6@*$GnhCA4Gnwe;GD| za7m7_6j%6;jO+tJpk~g}`sSC9{LK6OHmhhZDul%LSqG2iin*#61bUTE1z7vq)&dMg zdRKN4p}JE&U&F@*dVbL=`rs#xJ?1Bd4tr&?S-A<1?2BFu^M^p7R!#@#``9G(m$5H5 z5FiYq)O!KNj~3uEqO{b1fO0^FoJZB4FGzK*YAEasVyBKJj>s3AWBi7ITZ4*$IHOkd zGGWNX+FErNWj_qCV{0zl2x#bo1qW6CIf%3W!L(3yqji&gDnHUQrS-?CzD?-esoYO} zJnRR4VNjxd6j8^^_2}$ei!E+fiRK1MxNTgeGwvP{s#Fe3?A*B5QmVU#oUv)4{}zdk ziesg2BxpKfPK*)`jXaKBt!c)&DceVrJIHfXlP}K{GEH5aVQdTBY5g1hYN)MonuG{U z?S)t$0--9J>=CZQyl(XAK)N1g7rrC=vBIDJ0SvR2O=ck^0`#)IA+xNc>)1*E03A8f zs&vi=I4}%!Og7@PNUDWYSv)q9D*>K3--1)2ooVvrW=mBDL%m-s^g3oWgU86(fw}HP z_2H9jntuRjlM_uh9)ui$d_o{?ppud{sQ$T9N#;UZQ+*pgTVK9nppWb^AhLTtfEVD^ z15018g}6RD3t4w_5hp-7uA{ieFjvp-j09$+xGlAO1nSjAx$J3_&-QoP4%DbE&iUDC zTn70)cR@fSV20<;^aDHy4v(2v4{r@2-*dI(FBh!>$U?WNy+)43?ho`jDSa&77-obc ze<4W5nnFzGZ+>gXRWFl1yV~pli_&1{Y_z7+1Ps-3d0dhpss&?S_LCXKfA|Mz8QT59 z4EmV-$UnS%D5e@@Cf^C8rf5ZjaqArn)sb8gy{ccI)$UV|nH_QQUGXxKd#i^{!PKWD zYx75|>lJL;`EJ@HaHm6UB4%HDQhym0r)a$@xa*O}URbr~_1{5ESbg%aFF$e$j0?o$ z!$yR~f+P^(@BNRcmWP$66UQFc#|kBzG;W0m2A!5~fSHoku>^|6*7zAS@Om*kw5I!( zwkDJE>tXOJ+IJW7B78Z*H-CJ7u6{!A{oAAWTT#Qg?Ai9!M>6M?SN2y@CgGY`VV#+j z@FR-QADAQvfoW>iPHPkUcqo`e`ZxfO^?79Cuz(07TSi&Pi!sJP>IGf1qMwLowQLH* z?@rW{E~=K@YxfPxnP^Cc?yU6xc3_e|nt0x9Y0$lGuR;5(M_15B7B*n(-evfLO`Cx~ zL;47BWN=Fq9?#DT6`O_l;a)332u%=1e_QYE>!(Wmj~PRzPkgQVtl&{$Vx_WpBe;^X zKtc|91c{jJZ6=}m#r<{8!k7`1vIw^YS3iQ_jG*I$;QQjTtB*DczpsDXn7~z66n^3n z8i*H-y|oI09S#&7U>i~5!U`LJLVY5Lc>V!UOl-gYEcxm`i}RA76scL^VcFDJrTbE` zEe1{XY|jR(HF*XUYso*(%tH>6MMqBTOdZ~N#&3{<_o4djCMMK(=b9SM!RZ~|3Z`qo z5-f&p{R2TJmp3vQ%3L>2YPeJIv;;9e+r+1Bx_iY~@JoG)H({EfF$S|Y)QF7@Xh0)B z_C4M&cqIQ&5TPeY_bMwJ)_TJ7AqZE_FTjwTFDU7A$UwfQs3xN~tF0|=rR@5;JkHU(R|(NRjOvDV8LbN6F2V$3rd z3r^f!-iS&;KZ`r~iQc|^D1sJBSv`?InX5;zk{z7-M*4>ys0);Nw4Lw8SeI3-x}t?K zvM){;=O9p;@q>@xcq?%aOB_s;Za3as5+ENU_w67zfvOtp1xKzj#Z`1>e#6x!=v1Z#%zI25WccAm41OpQ)d*)TKIip@b!{I`m0lzz6szwyFb`%KMQa*_OI2Z~AC)0oO z6sL#*ICWIaw*uBEI@a8$R7qjLpqtFIwkebki>pSzq00*xWYRC(XqhPnYF#+mf=LdE<+kbx(s))dV<8{4phIjb!xxqfN~%f;5kMI z8a%#+u%`E3cSts(pOTn$>eH7fhDR)_Es-4%SbO^ozW!H|DmK`axlzP!smDRPj8WoW zZr2jc3I*So9H#AhC{g%5Uzu6E(VjK~$(gB`CT+Pg*E|n)b|;aB!KNfYQT~NqO7VNB z%M-^sB_b~Fp6u5as*NpVmhh<$GlN~U<*R8!WrlHIxVi?vONiY5`@+L^OYNC=Jn?Aw zI?iG4Rb}Sjh%^bZVDq;Q1GTPeU&=gdh=5q|hj7)*L)4VnsX&|>ih)#rCK|BUW4p=?Gs z8VD6uSXyk=4|di|VB}>mt9O}%WXDwJXlcKzo_YtP>xqZqwDY+ui)KIkY;Gb<3d@Hu zkr3neS3sC%`D1J7)m;qnrK~>34?OknS)`7HxcH8YR{;yiVM^J&^gv%~u-q24#=ia( z0rO3D)QqC*VPy^h)ez~MNFgDqh@N1b^cP8%K#RhaR-#l%b0HN`q#XTukdIPjePm;| zN$r@En85{6Ww>}G9byD|C}sr} zIN-Bz<fYk#Ytu$VZm_p0Gj=Kj* zz_Y|{OF>rG$SkY#}3=K*f~a*?G_|C zFvnas+$0?(SK&mNCAd~0kM@$4amCmX$}8xk*c?0b8{*fT*ns?o_#s4=Ti2j(8w>_z zBIn9A68x@gZRcU4$r3L{Mn=Xq?nd^7KB{K*85FjP$w;-6<>;ny4%D6r3^CF3FA9*5 zj0kZ0MI%^zF(YgOY7YPcQyIefslNDWhzeNIn-hHs?@Y+>e*6~p@~@=Qe}MK~-g*?| z7_vKZA7!q*y}nAI{;zNsl4okeLSwN;1t?)+1HK-kd;jx)LXn1bj5n>D>i{#HI z5T-6NyP=?STz>-09{JL$Baun%E7LNgp=y`Ou~{O_yJFcLcvnPg4`QKAe7^FEhsOX* z6y?;~$TR`WFC&b$_HvXYVK*{2?{`mD^w`_paDpPu((Tdb1QJ|GZC`eAmonWs*)qJbzG zPv{^#9OpRrGL;PoIuDmjcv;xdq(1I~OU+CNo$h)H-M>OIB)HgMOjuG}1`1nKQ7r zlz=?|C)tOHaUl=}6+Spac;5(JtY#k?ad{A1V^B0vO_I1=x>X2mJYK_*QI!u@E4Y!$os_ZtG&chEVG_Kay@^qBJws^m0jCBOIjc2N(LJ`#9m}k|M0XA!7cpTg|HQQfKQZno5ZBe!e_aSW@x7@ZMG!3T*C@iKw ztLt;;!-HrBc?THO+sIzIgz807`Uyf*q>yUJn( zmq$pK^tex6%f|+vEWm8JyDncMu-1J*1MH?8!u zX)-HgNE~8f!OBRkr&(-a^I{C?AMM@rM1qoY2MM{$hN%xQBynv=z&F>W*F1~5&jhx-oEx3 zTzadKTpj?!5XZO5ED02s6 zc0ZX~jzZSqyVMBi7zcVF4Uwzu3ow_OS4BT{%Mrswa`*dIPIV3W76bW5uI(p_I_Gk& zIFgEbb$t(y67WBOogA?1^DILP2i%ZC2PpdBO4iq!-u{fT$+9xNZ0p)%0QTZ_JDpyJ zHUoj;BvNQ;&B5vi8V=PRr$cwp4`n4=FwS>_&qZM(~5$Ouhs zp)nR;21_{)vw8$GW!;G~4*^SQrcCss7Sc-?AtC3;{^q3lMM{4n73n&@## zOZJ#Sc#nJqsPh*3hl+=YRcV4o@}IqVTI5OhrO6!e(82l)PLHj=JEtgk2JkMEdI~f< zmv#@|4rkT}yFX)-#t68OxTuv3N^U2oL+|mK{ippRxG@Wq@gOyaLv z7<~-NhZ_msHGR+R{5VH?O(7UIYKGt3vaA?kr`Vc_l-LiI2k8VYFYj=JDUSL}{sh_Z z|NP}Aala%&ri|ZdvCR^PCgci^vD5)|)QjQFA9Wlw=W{;4R1LO^Y3JHxAVMo!U=4lnlH@`%9b2|n$2j;{Z1RDFg*#0cR8OVoF86QXch7qnLatV4LN}5#wJ3>Gd zn6C$1(yoOLYt7U+$jbvgwKsb%YPDHI-23NvRDWZBdG~$&3Hsg0x_%`b00Gro2`gQ& zOgv^SNuC=GVfEgE!nDgGZo`uzz@Tm3u$-8Qxp)i%!F<6iKGmzG*idc6th zy?8bshg!z@i2ASn#pR=R2aomNQp2dI&%ak*G5WPX#FxJU+hP~_B5fCsC7`Y*qp$Oc zU*_l?Q8!K4?mKRzCh% zcHQtw${l_O)o_5O;(oWOG=kBy7=EE zanJMs*f~7t2?}W3b07e>){I&W+X{*Jk7aJIn)_0H%A+6H95sZ;ZyA39y)jQ%^!J_F@<+FZUj7Lmt9SJhZLR3Je4L?UwwjW>ufu*w zuAS~k{m}DD9Wvh5f48o01dwZ13F2;`J+>y&g>A`dDu3p#>4&+^=N(P%Y4 z@#bhdx^AE($xg_!(afSNNvh^2{oP;0rp1n3iIx61!l1qawxMzqG0J=csW&unXHfkT zWV^VC49)aIy+HvajSe-2BJyYDFO>cPJf0{Ka8`z77_=Dvdz0%HgonI9QjS+3-D_O- zlpgPa1Qs(j{{Wxdt5#_?m&g<)DJdr-S{ql``lbY7laxgyi9~;WIkrjr#o1M)?XZ-0l|Z7Q(M|;9E=>*m4A%1FiK!-$ql42P&PmIq$=K4`yFX$+f7C>*;h!ucLHrNEF8F)F?^CIK{S8RIei_w-&FqGi zW=|j`Op=jD6rRm$%gSP!7z6=xHF?e+Vb^@D$qnLe_FZ0aZOPqi|Kp;L3AHTY9&Q{TM(MqN1DObC>)hey#u8@z8J=&+^H z1h1Hv8m_(wdr#}4$z(JIR?gz8cCu6wC3VVO`%PK+Mr;W5QlUK}ftT%%szh<^Us=Uv z{UwI*@^YVpctBDGvVQa9#6(B6c{yW8i00^rh#M75j} z(P%o2slPkMb^N{MeZIL?hYWVXxS>PVIyJ2&wKkWLFYKoT0>o;EY(pZElMi!Oe7WWVB(Q|8`45FHQ_>lHumVU+CtYnd$_4CyewUZ0ZzO$6M60m9> zx!sUSv(r!^bkZNJHuk}lNoP8PQ5}KuLO;FBd;Jd}INrd@Dh2!pnDjf}tpwly1B~Cx zJSXu*i2x{QsAw-R(6FADy#6QE|GbEmh>!vJMu(W*+A|z2t+;vNJ0t%fiGZw}uFcnL z?Fg@-J*)pp=RYrzl|d;h{mH)cSjEixql~Zp@ZdS~SMK_vjp$M;&!1^Ch#afy_k2aT zTr|#qI^e);Bj>esw}5bn+= zai34QKmAk4&a={Oi*%xQQHR)8px!chT_~b3?aoKQw(wfUe0Lk`s+MpI3gBm6gjRt<}B5tzaiT zpI_reMFa+v)Kzqk*_ISuFOZ}C(u&bZr%!l22yA{glk!`s@0>KN?Rh!j^^ziKuJwvV zltYtT#xi5BLP-T_CQbd!Ycl$cRpnMOvrv@CTRIJ@0=-XKMzmjXUP-MHTn2<_(>lWJ zoAim|4;q>*^~VtT8DD4#i)9boBvb!XD4%l7U>2p^#HQq;!&mU;PJe=DLRDtQG+0aC zkLMOFVRwv03z})|V1#B<_ylZ4G8X@^ zdkwA|Zk$|>(&N^l&n8Y{&hiS7+&fCD?Q#dksz{e2`r~>=8o|c&@IIr6`G+ze?>oMh zR+ZI3$*;R75neI42NgL;diQUmb`@zdLujh1nQ|VoDDMv#uJk#|=qvb@*OkK3BL2(_ z--;-#GuizERR06iz-)7-_yMmg>741RUcAy2E>#XyR6t|rD~T7P_(X++++v}k=gMFF z+g^0+ixVq5*y*cC^qBVmdtLTHJ|;KFHfO>rhrr)lbULMv!>in^DqQ?S;YkOmhN)r^ zV*AOXN@g>KluGf0&>?Pygp^tCy9RnCmX3<0{;OWrHkyUkn{h)YO;Kwug_Knr5*ocP zB~iug^zvGQJJ)S|VrjLpGP&6olD=vbqad27*it<~6!|r1rPzb-XK}HD3znacoOA$SCa-{9iAfq>Sw_4Sb8j$E_~HL5W>? ziJU_ZCdaZB|5ElM$)@nJN`Z?f7e^5lpU7LzE)b@DerX@BU4IglP`v3>_@!KMD{D3Q zwfhhATG&ZI(xaY<*}QH-n)I~^c>BZHu@`XOLz&u`o`X~MXKMa}@=H!bP8?A_0#%Kl z^asB^9wxn7w%WaVgfQ@aJ^v+}T>qzx>6+m21RycLmpD zRV)^r$_ZL!O!Mb+e9sUNN7TZtf5TXQPfrR^fLp0g{0A4>udTo?S1vKNtEcXH3 zVslg}QqztqS}>*~#3q;7z*e(vEPnd*Fz=1`OjA3Rp7QIsX6( z(QfB!&W#K1-!i@~AIg*r`-I=Rbz4PtV*HcH+C-o=Ql%OS08N4|BN~%$krE{bK!b6G zB?6*R+;5Co86r4$=fN;ppLmFG!caB!8*=cTCJ(56P#0()GTQ$ikiC~Uo0$e{-^;q z^IvA+h4~v6rtiNqYCGA8Oq z3C+IntWyObs0siQjsE}u3b$Q7D$rf-$d3gOFM<)0c+Vr}y9XKv&5g7v*Y5k;e{_w~ zf+xWTBXzL0V;cnLPa%ik=U)8OX>`H>(2o>c1}WbVwfJX7x@=RM6$r&X4V@k4r3XeB z?ho#;n%$+a-fKH8pgHO4oZ@l(HqrNWv<;2CQ3LY&tFx|oEKf6%+4fVJ-MRog4;&3= zbQBOFyk!$@5q_Qd{x5G^rn$L9@v;ury*t4c9Ixl{!tzaMKSl75+;sj^oKG!392`ak z4%Fv#91aM8SJ|zTy=nIJ@xJuwWycY*w?GxgL&!<0m-K>KE)aHDJhsASe z`9^ki{UrOs@u(_GjN2_ERL(AcRVsanUtfzp!2sM(I<5xg9I5nNBhf2_dL?j-hp|5r zb3{t~7flEQ1RJV_8|H1@0rCB2y-`oAdsF!c=&Q|1$xeky$ybu$>(AlJJ4TPTEAgAJ zWyaoIrB3bCb6(5bXzw;BXVfWe3gg^+XVK%bJf@U1^?b4i#y*`XKPxkX%;~{xKV%p+sQx zUbRFlRH#7E{{UZx>646($T~mzn{+|o=yE<;{#3gggiNUHkAjoY7ZXKgAlfBLC1ZPE zF3QGkhG+Ojsj7&^2mlVJb82I>>4F}DtmueGb`$zfSXgLmZ`}tuztr3gJ@G(;QTZpj zf4Bbtnalf8`YLlOM(A7$B6}W2@T6cNqQ>*8ncWeE^SF$V?2UN}Q_WDX1RYwbn<8lh zTO4;rHaHA!q~XvGEM!* zlLEe*zN!t>r$~Yn$gV4wp}wk^RY{*L6(d>jP9u;C0{2>YkMM@orAtrC;JMit2$@=B zwvG`P{npM%%=sg^sEkDq*P1`pKjh!CYm0Sh?0&@qK4TH_Nr5QV8=t)O`lAMj3j{{< zxv)ni3Y`6b(yO0U6hevh2sbpqM_tv*nWml25>V6F103-C4a5nh4lTjlwN-EZPyJo% z-A#Pb&KDnViL^B5^a;1G_d7v=O_}0aDUH%1(>8U8Dk)S#vFHnq&C6i~K#M zTn1GsqWaVBiGZ1^;$x^U>dHJ884U7Nur=yB)e!^MIVi8LiZk2~jVom7n&Xz}P=S;U z;Z*wZRphT#DpBhKx=kSGP-@41m z6FijBG*^`eRZ-@Pswd^deG|wr7sEtor^Qa^E+S)0QA8CRp3}=6Rc^S9SA5bt9l#EG zDNukPWgf>6`2 zl;Q?yrgvAOf>tnaPBN>9iY|2^3g)Mw#3=&wP1-c$(H6-1Xs3v9x{nss3uNZ_CcB7z zeZ8fIQ&i_*nlnbGeE<+C=Ax4yRUY)I!M8cu0%LeYCqQ*E`MioIoPzoy+D>RyaFxP} zg;W#@=Z7^_;m>ildSZ+afb5;vWuk4OXetvpi;h@*k&ZpXJaz540a-l}-P#u(I*%Sf|%`|B~3mW(2p6A?Ar{y20 zjMHe*H93?@5}`m|@2jUkvIrAD(w@m9$B{shL)~!$U-Fw%c*$Tz58p7q$E{Qd)c7k= zY{854{!!Meg0mlWhpabNY1siCcac7^P7z**P*C?z_MYuN$+qF$9>a64xRk7O6Z z6f221&suj*l0kI?a0+r?ElqL)s5s)@7M~2HZh53wt^EuD6uq0HA1jlGPr3!=7jes72a+Yj-87ML%peWt-5u7;X(A8JdCV{FH0?zL419MHD}$P`lz zeD$p<&mHd)(wQdq7TqZA0J;vFR3ay)DABsAfkJiB%DDa20FIIqO1g96fF{0v*p0^8 zu=szJKEB2$zjSQ2e=n+OxTYKzy`tecsP3gWnAhl|T1=6uZO*7Qtuu+Hh`|-E;^LjQ zbkqE*s86?t^1e_c$TXkutwpo>`cWOv`BN;4heY9;BDJd7V-`S;*P17m;Rl!Sha@5@ zhYPKOGlexkoK`YE>luih#8*Q@%`oBWJ%?X)0QHKfQ$DV~S97lIwD1_Gg$2`g;wvPJ zpEL+H6-985;bTlFP60wIi}_cbKC6MVsw6Z|VVS{kJP;f{Y_LR1+5-_Zp2@GwMzbm= zqq;73X`5Wu(c&OfpeTpCc&#Af6w}lqK{1LH#YxpX@_&i$!!HC4;)bERVmwBaMLnwnp{ER z$DvYDKJ$9}C+MOofkqUmgP~H0rKd#m5I$XU(uu8XV0tZ}0kSCJW8}C(WOW}z_l60& zZrBq9MA+fE&vfvJt&Q%3NCz|9vL3naks9W>NjdqaY|SU6D}}_aoji}1G~E2=22+ZN z6PhLuG+T+HWO~I1K{$`Kk#`ZwJkb)iZjlECw2%2={OE*rQi}x90Ej9rr?TO?6mHrk zIZ7gYX7yi&;RnGY?P;q8-akK<`&G8GxGkK z`MRi0ZRBvsgUo)U*HIBIBGZ=RN}$)8&kjIGi7CL^`isV)06c;FqplfQIG0WVvC>hc zJ5ER#p~S!=%@75JhcZfSUp=KjPc%&)?~(yH1OV zA2%h#i0p$)j96owDgfcdTSx9va23xe#WV>6$6O6@Tt(76a6*Go_0@5bx!38wctqdS zBKOeSL5i$S2y5se9aK&*hj5-NBA{Sa&*$k~$94-2p41{ZPKZ}~nytx9qPCwX7)X^7 z?*5ZJIuVB?C}(*fQ`A`&9xfq$Y7ATVGXDsTQth%YPUb#Y%YjjGucCve<|m{5NIJ-vo~P zo-r41h*3W9FmoS5rf>5KXmvzc00MjfPF^Pj$Nu5l0sX3bV2K=4Z&vDuu>}U6B1Q5+ zJ>*bzJn#vGkS6%?%0Ppcgec@2R|rh!f?mG-AW*GIwrL_G^s>2-1`-TU?`~wT6ad^Q=S`0mtWCL1=S~nWZHP$ zIirpQpVVfxu-r)+`IH?Zq7@Nv7Jzeg0Q>Sq*&ZT)SIf?sWSS{d?1m|=fw+{Id zfswn^t99K}*iFab{HIJl+si^IcHIbs!v}=)^WP(>w!5~V@o^5xuXX`7xZ|4fPMTUj zR(%n5NSKe53So55d6m9t+aVM~XB(k8{5WxVC{8Z15kE{*M`dLwxd-u6_V!Sr4O1=7 zzYK|1zeBms0=eY4+lV7u{S&{zP2CG<+(p7;xQ4!d!2v)D7X=Jba$Z^Es&geYK;*WL zEflHlfshT3;-N}(9(#$DP&JRDV8=f6+*Ev06|YgB-4F<0g3OU^Awg+D$ReG@*KrJK zCc<+~e2MicWeR&kY|`lMx;=gU14^001p*V)>P8g<8bFXx2M-3gNyC+SYwr-?iKAZB# z$S++KiH^L&DmW}9xaOjzz}82(`>>}aG3pR^tM8q_A`?VTJV>z#Z5JAzFP5pTj(DHR zmgU<8In&l@?UOeL5rTt+nCyiJC*9AgqH|)QHS@fSrp(u-@AWvV1&1m|N)cq<*b71t z8gDUNa^4DixMLD*i{EMtPb3X1R2e+8`ykLQ`DhD*Dn7_h>R#*f1+_)#*HWs9S^- zM|yiPQ5UWXG-YlouSes{pJIZ7b3?J!W__17a^$CVB^o76lx#pOlx`wcOzM2QBooCB z6lS4JO^I4?ntANc5Gma!ih=EMPUz#mQ%`8T_Gl=lP~(cMAf~5u=2OpU*(uGa9?ul! zVs(nzFw3(-n5X#j9_htB)wMfOHk{9G*)CgJ?o;e>D`9OO?%4cwH1}P@@F*3u6kw*O zbu~SAEs&<}*$N{>?aqjP5eAB#5>ir9qHC<9_!RCZ+90IvJd>+OPMV9?+@PjY$DhKJ z!jJn;U_X8yD{Q~hnNDOmRdiFzb)xy`e- zdCOTX`P+2ffoEl{c)do)Ur|k0AxW!qdMZYg;9y*6;=kl%5!tnIM}LZOlB2J zmld-Dsan>^J@uFRvFu-{!{VA+}D3^Je z@=g#Lb~oI^UBW5kI?GMIcu?kp*2#9Vnuz>W{Z>CQ{{Rt>ruDNtTF2mS7jE(8*ub$AWj|fX$MF9Es@U0PThAtaT}&>6IGims(K{J>B3S!p@td(z?)O9- zRd8Xb9o>>DsGS=@Ik8`(&+cb|#h=nuZiv@s&%++?55q$uWd;P9(LLrjthO*wvR|x& z_@E~FgetQ+-IDkmIa2E|q`3{&Hex?7yFZlq75cyO97LK4^JhL|55mh|ltaEAkGBi> zP~u~B_N1OAZ+e{%viT8@CH-MoesMqU3co~rJ=w#$3ut%#5?aKad)z|9kgR8J3N+R# zH?CD5wPF_Hw<`S+am$uPRq0^XZvOz?oOp<*u@6q;f^$LNgE&nF4AZX}Z2hJQ*5iD4 zY4pblYcyJXW;q~U{Yse9_0|ui=eZa;+Io7dAkwI1mn7l;0BQAP@?WP@=lC!G0ApHk zPO%G-TUe=1L)>rP6PoKY17@;lH6cuTtmEveGZQnH3ottOu~~+@y~YLWXgKONcbXlV z3Ep%;R#Q$kTzpfEusV@ddPwio)oz8Z?R9+40v_?8d(bJw#*O-XF-|KbuQcPH9IQQ5Zd!=mvu6gmN`$&s0y6tM;dOCP|r3!A9-( zFQv)Z9XV{BZ%)eb-U;Nrs$!!-gVde6imc6T$9}S>b%!3~ma$b@m|H>3WU2Nc#(B7YZ&md=5ANvwYLD^o?SrBP-<#a~Cx|{@xba(pXN?f;55VG`_iN7O z*8!c#a6@hfm=eeADB#W z$nTL=+1u#z{miI!Ot~+s(fQq5Sj=P!4$g@?6=DNk{#>^B~3G0o`Tvt>lTLIKn!%;i(QMs?t{{W}= zGnVoCeK;?u$5v&Ax+6l?;?*5uiT?o zD9Ki5s8iX;4g0cxfle?zpUmrmX{jv&}ogX!F(dkP7V8kQ(+ zATpz>3C|mG6}NIBb5T!x1>=@hYcd`_;r>8>>=kx;y7E;@sMl1e!K@ngYxM8IRcZ%O z9h22N1Q`=-_zcevG#F+>Pdm+*S$S1KMD%mPI&BD#c26}Q9c3b_u;)!gariVk#1pJS zz;rb#9Yc-O1XOIxuvcbZb3f(GcdG1leLgaxt5a24?mw5CJC#>#was`x-I8-!;ntF_8AFk!K zIvwD0x{VKHMu^y~$A_zr2|m#zK5t6 z-nCYEBF#@371Eo#PG3;!3Mp$g2MUdk}AU!0Q5or#24n%6LgQ&itd&8MQ7S z@;*+o>kv<6KG_NR*p02p;WYW{xo5xGKFjHO5PUgVe?-)?^f|5cIXriS{19>2#X&Q? z$Ke7ctrZl>W?1_t8Hx*dn=e&VEf!3UfgBO&x=H%}p{N)qi7MGap_@4OiK>}Jle=DO zyFFn$_{wS)KpEJC?81i>^m5Nwr{JFWCyv5Xn(JN@l{Ff}A7xeVPNCw67tsQYCF#!8 zEW@tPRQj@a6;q@eh+m}12APqIKjg9)7h|wAz`>&|;!qd-^fp}0+uf$Z!%kZfZ`Zj3_?Mc={|plB!UGWGIM zfX~_2e_fm)*Rx*7xj3WIH{I;gEH$s?77uo}CmY6D@!^fKg#fwlL7`#xp-$9YB;hN( z#=TRT4i`n8ZcSH)r}Jk!ReC`2tduD}s~vd-SVHnK3a8rFRQq>J&lLS=A<_wn>v9{k zLaa1CFB<7HfcNvI!9vwpWK}^O_ix9uyIgJMa`K$%>QtAR&{})~FmVU?@l3JMmj}C! zeba@@zTp;5{zgg72WPoeGCBnoPPH`ShMtJKU~ct~Wr%^newL_;f{l&W;qcz4W~nhn znPtU&KN0W3mzV_MhP>=J#3zPz-hmjWVxWl4eJ+qd!0*Di82+b8G)#=Wj^$i4v~??@ z*vG6qo;}pIGuMg@px<%eWP6XQt(Kp3?CwpcQyUMf6<-P*HOUIoyp6+}g4s2OvcWi) z>Rronf_aA&_Cwz+bo2*F0-&O{Pz>RkjPX3TQsg7CkML-!)I!+~rTEx&NN363=rkl_ zaTtu3({rHxZi1?K9coIeQxH1f;+$qKSmX0y>}L~~!hc8{eQ^yAG=6|J;X!rrV?6}s zy3E5|W}`dDQLy&Az2)AVU~WiiMM1rfJ|8K~2q-A0g#{bvA{j0?74#dKgN}F?M!t|&G6y+piO^i{LDV#|aD8`MyBs9ceqy_DlSIjD#0a;jQ>THvGStP{kI zm$~}I25QdKC1imEf%GY_t1Q3D%~1&WZ}9l02vyIkp5yT=6^zC_iiOAr?uQhJKVR4(-wQM@j%O1si!UUO>Vj*Pg7M$ zb4JB?ZDyQ_W_T_6a@?b8HXLNPHIJd=fuY$!I^l!A;?yV+o(abJoq4Ft(=D9-DcONe z`|S{X3EVT&l>@H8C;~hOl>~!OUf8y8p_#kq+WbU%a z{N>*E9eouPUDztZto|Rn(KsRuiF3d8b%-bzooVUL@1{D|N!OV%`F+m!(^`tIhJ5LD z(O}7_e528|F%Cz8PS*bb3zvRV^I^%7e!}tTU^LDX;f?$IAJ)gq`LJU|7QdCKZr5_p ze>>AuIrDV{G9KjfHMOnkr-4pTrPf_z>kbWni(bdM9JKqA&STQ)*W<7_DBQvs{9HOz zaka8sy3WD=kH}=Ih`2oZcZ4;-Clef&_3$=?>Nz zabS$G2I=UqCN&G7EJlZ17KXPWSSSlTbpCYlA3%WTXaV~l2>Ve~r4 zBt%M<##;5bX|n(xJN_=5y2yvUJf}X(tVKFUIwCkb%YujTtkh+ig3UX~s`z89QENU z^qt52c_DB=R5^Lrf^sGAVBx=ZOuGxW*ny@9HZjq;XtVcuZXNWNYVWU>e-2OcxOLuS z;bIsf>8z2V_zW!TP`32!Z8Xn^bW{}7?LQ>^?aRMWL=y3b&wUTh+wo3{brnq|oUR`?!2fKMShE1o3JVYr^QX zCO?E5Fn*!B;i{c&Kgl_~P!t-)?BJf@^${cm(};M zb@W>P-`o3qF5}hIN4?(a9f7k|p!P~|khbBjJ0ZT*JLGP9?_a?@myS1T|@p zJN+qfP^4o06!4{d4o2_kbcR1`U*gvMjyF+deIxz9x7=EUmPV4vh$^N7KqulXY}@_&5-7LL%1rr3}6&NQcpwC9j-=8e8u|061-k$g;5aX>u zNmPE&!4bd9KSV<(YXXBU#|`vX%H39_sDw>w%%2|n_OCvheS8jo^7XX>qMsif#=^#@HWF)Xs3;F-*g*G&w`BcRay|#LfN7hCion%_D^TR>BdJu+&HMvSv+WH zGcqB|y$CoA{QS{wZvGR;g)UJ}W_fGUnAn8TtR6i#_ae((%41wqBs3jNox|K*7G(T+ zF0;pYi@u9e4H@<8;y7dk4~M`+eE> z@u8RCU(KHM;Y+E78`+<+w(1~@Ep?gG?7r}`C*q&dIl}?v{9abNliE6oQ39@h+wNg) zuE6m$ zgf`5^oU0D;m&QiaX?l3D^y>sCeayg*eh09;Sd+=q%6TNSnU?1b$-ts!H34EiDsquU zlhz0f_1#0eJzvZ3*sBR*HRP)^5Ns6nxo)DaRvaj*)sLvmj2ars>ZeJzFn_W3G#AB# zhVRpn@<53g_8Q(O79+>bjoqE9W7r&ejZgP$3!1~dLROt%T*OLT!m7aj?_uu0uNdsU z2Y&Y&Ar)1tz~QaxD5%j@KeM!V_D`hL$5;0EVRKZ-%Uk;o(*f+ro&3FQ?oKC$AI}B2 zYuH(Gb(gBF*@eYpZ1imh0rztk1ol^ngZiSg0x zP>9596SB{B5&TJhi7o6!zJvmp4pO%~Iir_k{Q-G}U9M3|+_YeZpO? zvpV9kYZ1#abC}6Od0K=DakN@EBL@*i(T-ojdodq_I859-vb;@I>1X-5*_W=wuD&hC`ZvWqt|$z7okhs@7bJgf1S;7TkBO zldcvVXV^Dtd(aESf?p3WT96YWoD3LEYG}UKI z=IoYn(}lzpSG!VCG`K{l-br9ol$5({3zpW>n~Iy$v8CXk`KYKB8C}P-?oTB-myg~Swp z*-%0FQ3V;@Y=@$HNENdcKlY5&=#3MiYjqR<0IIV80H?qI!~iQ000IF60|NvC0|5a6 z00000009vpF+mVfVR3=*k)g4{Aki@4@jy^u|Jncu0RaF3KOs#ztsLqn2CtR+E1fUZ z5u|<%5dzh?Qdg=xArdF}NZ;`%4pkoG;`(FCf+=bIqHcJPf&_IEK2w4HCZjWcVf{of53l7;JBfx z%Kf1~&A6T)sLY2AQ2fBfnrL#^Y&|{2l4Azd*%XvMf2b7ZAxS92$=% zkXzCumA@v*7naFnYSQTM`G{JrU}%C;OA_i%nm9Mqc?NNM)!+RsmJ*c5*rhdg$jy+( z#ta~cjzes_zoWJ=Mbzr_bhy!7hlk60EfAiu{L{t^qBF_Lz^LYue}%T_*rC*Q65N*L zcRS=*{s|XL2(4$Jc!+GV`Jo9AAcPRcoQ=@rglf4XE076qZb(jdv-2fgn-ofH=cth- zR(a7IsNOu-mM4;HL5!e_gp#(1Ws6sMcx1Pt{0sgzvlkfdi)oH=`$BoRFZohj#E)eA z{RX~)Z}0d}g`$B+;OsVr;+bjHPf6eH3h_8cnD>yc(4Kx8EpVwTL06}2PvbB$9O+?#uYFqxTJ5`2DkExc%I1w6`yJ z{EI{+B+BT7RK}>Tj3uDBzd8+5$7W|>vk7ee6dG>J*t3ju_I}HYh30=X_%FtFfAOZ( zsC~GfnJ|adexO3>KRb&jzxp};ztPY29zTEdF=Us2@WU6Jvg+R-1;F25@BRg%5PFc( z5VcH{Q}M72@tS_3S$c1rV|_a08*c7@g$XD`LxKosMF<>5k)zTZaFX^__C$MdzK-tX ziCVhdC2pupo1c4oLK!6uK2`?hcNP7j1tjwW!yPb~!%dy`Dl3$}(}p#Kk1+oL@lc2o zPKbgC{{W>Gg655-6Vag~BN;=}u{W37gEe+k?E47PUKh^f<$|OA57|3Y6@XhPKr`ea&D{$wp#0YOc)kca~%k{(mb+iu`WQ9@W> zq%i>%UBA*Q#Ymd$DH0;3bf!mEl{RGKhZk|f>Hh$RTBQQk<$vfx5Q~T^EfmriTIIT) z`v<72-|5qW+8F~zsX?-%n4Bu$e|5-`X}r$IdW)S*>fD>e*h zNNfK91!$2BTBKM0i4$UH0WQQeO5t03D*P30^+(WINX$8Da9x-&wp-oq4L84PFtA7#dzBv~Lw4-f&{WX3x~IAaz3t2NpsqJ$k9H?sS3l?# zq^F%=Ld-p3l8T1&u2x-owtJVA-dm`VOIaki)FCuvX<5qXCYy52-!sskZ<2|~@8lPX zg+v$&(jm*(X%f{H&EZ=~B5iw#?!QF=*;{vC^^z<~BB-5INf=8h7a}8qD*{<}63J3u z@yMIzEV`5rynYp>=oxp<-9aK)RGTDyKLpUE^9UC1(*o@F$-5^(V>OElg)Z1psMX7n zx3dw+sNmtan<50vi1ax#-sGf&WYDli1VdP4oe>~Cst{9sh$2>r(QG8GzhWoWcW{`e z{{WlmCA)vm1OysX9HKEIDPm+;F_KV`z9P_}vMAVhq^&dm01i3{e75kB?FKwGibB#X zlwFc1MCjQfha!Wk_tW*o|0+b2o(L@mYrYCYBzD zA8*%Da8-Q}wZ@Y&2=K*nxS8}|$*UP(JO2R8g`#>8lnIH-gvpZ=#1j7ig-zUz&ETv- zTr9eVUB<*VF*89ssN-X4R;7H1;YIM+KwN@j^foX_C>$#jHWW0FbwdQp2D7Yj2oq>y(HTT6Hd#lh>P)0`(iVu*sFZG~UvN73aA}R zwaI&dxM&~=`i_C54HJOVgh;MBD)6|KNx@V5b`?uh ze?kQgVP>@CfRLDZ4Z`!>Tk1HPIYmetmwzZDb>By=1-cGwl~6|2Npur=7HK4(Q6}or zlU%y=65MQ(3He37HB|*sDx|OhrkpxGzlI1PhDM7@=!K#pH9~bF+x99z*+0sxqYKby2x89ajn<~@P+r#prlrjv+o2iI`+d)#q#s>BZ76>ghGATwj z`Vgx(9^vQD4@#*Ak*$`R1p&-;axgLy?7@=OV_OX}MOd1Z!4-tHR~awU8eP?op}PKb z8PO?sVwfd&EU8ZHK~+*Kh+FiA;#F0(4j9J+1WzLezwC2xJG;m>MGYlSHX6H-kvoVnybdb{Ng-SE$43<( z3yTC+4*U%~2?9fq_7Fp*#B}Zb6hNSIqa0nEe_M_{6&k3~5mj7Zr*=OwIVB!c#UqT9 zS&>Bu&qDJAf{AY^G;b>V_iQVoX`^I^!XSt9ol?7oVVlaQXZbB7Nd5=^03s4)tc%8} zxZTz}2@Q9bM&PB?nO?nt5vKVx85Rwa5A&xhFqOyRpv!X`<nChK3OpiRC&zHcKahw1? zZX5S6(?otz{BQmkZNjT|Uq>NIHjq~NFZ7hF9%4$`g-N#rBo=BklBv@*A?TWwN@I5H zMBza!T+A+^24K~_Qx^KnRdsRtNJ~yCPhZg}iS9(4SYdR!a7ikpoVRj+K%`b$hVxPo zCBBg%tzsXq3+#l)xXzA~aaC9WohQ-oCz52D7}eLEx{p)I9*A)oCp$Y_jX}ihCpst~ z)kaQLmhlbMMuyI}j?RbWTEyI_{0VwG3PgD*LIoz3GEa5-J56?dAE<o$P0J}ujF!PjC1ZZ$!p|&ACyGSH;+^&&!g1(3%T|TeD0qHEb1Mu!Mg&WH zJTkNlw0KWy3CgdWtfHDXR({U@L-%bykB^8ZVR?C8#C~vf{{Wfd#fP1%_7YbJn=Fyn zEd#IkM4MJ2Ovr)yjIdNtN^Ttlt3qJdPbyKX*j30~?us^6`R2!9E*PjOR^p4UDXQz` z1|c+WJ8(OYb#0d~orMIzpxSq0qAkd?zeUKL(!`z8^4SL3Az0rcMt#P+gepk5jmy|{ zQwKuaz4U6xG$iU+8^~0+jMpyIkD3lPWJ41w<;*xtpZM+6a#2;?nZX@KwB1gkGRY)1 zuGS|km|iFQL`w}3W1$Mw+(`r~)i;iUSZ&IbpO$bbk3C1QLJ#Z6fCJLRld&DWuqLg+!#Qz>}h@yDG(U+@NwJ zv-1tHVXr^6b62pG-pr|H~v*B=D5Gro2Hln{Te|uVQ5; z>{vWtWJt7@P}Ns<-Ei<4C_Wl~WPcZD)@bY%DjxO1piQ&awYgz%FY2#xJimk^@lpBH zSk@+rt=r)vn1g%$LE+HLcD`H-$6AC@?fpMyGF?3P9dt7S9?&3|l_pKg2)FZ|g5cze zL&#;-W8Ow>EL>2AvXYyUleo#D6`1cy63UVkl94T`+8)wFQmZb_Vo+#Qt5;cB^c4jU zJs6k@#e_{ps8&}X7BV4MpsgfxM#xvNl17dR?3IA>UBmsRQ#-DMIAPaPtI1 zf^p}tuczz0>?Zzp6kt+Ce^MJq?|SLiWYF34eA)*v##{BjW$qPZJYVR2xdyLH7llH8 zG%2iU1b%(L923iBp7si*WqMXSj^;|vB&?Y11?rpbm-b(#tHo7WD`RhmLZaWxjdT#m zoT2bHNMxkk%wU#Y9(G-(8Aw5@XXLe=gtcWL#u5=A^;+_Okh?3kFyBTsmz_uQ(v zCd5fm4#P6in!{5oV%&_bMeA1RN)uJ^M5?|(#RzCbi_-d}CxQe+8qzvO zISOOYy9@NaooNIEr=8y;VB9qX43^PxUI@qRsjB!f`VBYpk~ng>8E_fa>E-+hxAScr zI{9)!^=ER*hBA=dZYyeoVj{lBvR>s?6e8y_jok1hR>;w5*9&F72S8#>JfP)ljW*;> zWTPAs?1dF9?8z@jpDKtwJybnbg)|9j3miEX*Xa6Va)0MQEwh1qA0yEN!{vSuMv%Qhw3gl$TU; z+zm>mJ(an35v1x7)FacHyCO)Sx?4$AJ2{=m^Ty>>^SUEj;uLgac^93E zkR)hpgpDeCizGOu{yoLXcSF~3KvAaqxdPRh570i-VAn$ZE(&90J zSD`y}Oy+~sP<<-y{vt?_-;4|(owSN%HhuDkdcU^PChg#Rs#xP@imL}_2ifhn@IVreGy$D-}{494ULpi;QJ%oW^$GN|_XlxeN=Nsw+=acIRZ@*#HpFOoK*H{ptgnJk^ihkqHy(-PN?KVZirS`**Sn*tt3>0k`x_t!W?AJVcSVz_6%D&8quy00kPNQT%zQ~tR z<~QvVi&*kdsGNqkYCXR8Aku~jDhfO(887^CjWK`7b&R%AK?|!GlRPrhtkQ{Sj_b_tY`myx2}fqV724^mqRNazY`a zYN*58PcAp>RwNFbv4w>>C=)g_Jx0xTXu+|hoyfI?RSFxB=0f%qT!|)^-y=t0mMOso zs;bq*?JcP&L?`fp5?qc%i=tB&cWs5n27QZ^sAh@@<%IG5kn|GKfRu{Jw6a|W2$G%z z&XPlV57Ig+oTa!=?G5`~rcRDwJnZn}XJMGhY}egj%7LSkWN%?l38UX`56(%}8zgFz zL%~m_MSa)3mVSW{Lg9YjF6?Y+A=d;^Q+q-Y5=t1N!m15U(K&%*!0+_GLZnn-#lEf} zxVp)E)bH>~t_G}3#$r7CkEA4rE~#-9BCS;U+-!W+3vXs&Dr3r$s}z2va40Hzlxe6T ztJrp1wb*X3BC_rFbwWuht@spaG@FTgB_hJ0lCI6V8BoPxMeI8sCuQa@mv;>q=`n#)QGRndC_=qcIFP zUoY5V9v+@x2PkR|t(GDRo;V;-l&V@+xtS{M?U4tKM=(i{ZZ#q8A9Nio&yq(KUyvf( zhH<(=*f$+UyQ(7UhAe_~71NgTqnL|d`Z@mqdqTx&BL3t01wn2ah#?W@QF;jA(p@CF z8VzD0oPtI$qEW2Oi7250%%nR%E+nk*R5;+G2^Z}BJtSo=K(bYtock6^n+2j9S)Lj$ zS~O3vy<4#=#J7vMOIT2YsnNc4tVE1gi>~U+nhjkOg%qF6!5a|9y2eydhYWj?!}=Xt zyr|2V*@oegp_Tz1e$1zSQweC9!eU$lvupZdAl0w1577;)mfWVeUrsyr-$>s`6V*f5 zEeRZ`TI6&pQt4#6vQk)iVZw5#uPY0rlOMSxzey8Otg2a=RyOK%v3;} zw5+V}MX?ep6gmkSZaJENLQUtv3`}ydf9Qx+6*efdxbzi+X>S#Y8(rxy;U%z>DBmO{ zB~q8tj^iXjEzPgRM7*<-E{?urOf}RPKQpO$x!fELkqY=9uM8&|sfNM=L&*AzX!{ z?`A8e!h48_z_=xt9oj{$KBI22{t7UtpsmFh_jL-Wv)(2m#3YoyeHiC;LG_0@hCQI7 zo2%)vYA?ZLUtK~)GQgG2K8XKx)@1G={zQ4XkyOlbX5lxbO zWRt(-_a;YH&k(*d5AHZhmlUE~b%wcNs`BwYV_u}Kw1V0`293{3zS+tcN&?+hPjwD zDhiaSmljF|MMy}Tv&ZZuOQH6BHVa7cakfHCNpy1m7{ z=P+7ckLYpZ=)hxg<=f;Cseitu%kq+RgQ&4mUAs!Yx(9KfkpsZ3-{48{e{CV@HLl)Jf~h+UjMJ+>RouZ5 zzr@O!l8Fv*H5Vr`Ql(U74?zT*5(XEPAytxSP5SanOJiHV^h~75KbXLqtr&qfDz>YL z7>a;vt?RIF1AvjViAUVD`WLTcEVwqU2>{Cm608G81D05;}Vpe z%ZK)X$;XM3Q&bR11BIl?M^}2kB_4G%(V{X!e$NsiqIM)k-3AFMazGN;m0*??kkqFr zZ#W$-+&-flv1f;MKIGgDJ;O)~*??(LhUims8f63-Nme}I-X+*-)UQFe19^=Z2BX{vdL`xR5u^dcz1=X7N@^?xQkR_Ocp9!W-P?G8b~roCw^ls|hWIe^F! z`)L(s8*E$#Xcah@cC1Z}1QNLGqCW(+LhvkXCM~4!aHnSIC|>^nzUb+Rm?Ut@htkM4 znHtF=AcCg167{Fq6s9TZLU9A4sJBtF7Fi%y(0NjG59bg%$rEb|L|w*?sA`Ix;A&$b zRu)i61M;M@Mzs;C??F+^ic_)Tu&`S+ynPFRTSOER*OfU}{>Gx?PB5zpQW8L!hvo;9BY!F= z+d|?NXXXy)mLzQ#?Tb6^)flof57%$tkw;SdkzNFZP`ae4vVmS*hv+4eAD3WDTqE$3 zQ3BCQaDJcEVs8Ru#F|RUOfH{w#RwfKWQD*Z9@2JPNb3IpNJLRcxX7lXUmxg%9LO|Y zMIfz7C1MMd(5i*9#*b&0W^IKv%A#rPf=-hv?6VxQ1eoGC>Ou?9-yn#Q(HfA(KH&9+ z<}dW*3c5w!&Upi@00{Ex{M^$WQN9srkHU~E+h`~*=>>^Rc&?dy#-LQ6rMH} z880S+T$&SRsL0Z#uYKF(gi@5GsmPsQI3X?ObrMfXu z#RRo^(wOC|1v$6O^DRY%+=6RyrG?ZuT}b`%Ax1;cgA8K7Wld~9p^jpTA)L#~UK2M* zMJ`-SHIE?(w2+mvEcpdQF^#2f_68u<&qAex1}jO9wjBbnLaTLgNRodQNheC-Qc;A= z#O^*qhuXxP)zl-V2Mmu2$Ds^@8DGH*dhAo*_+wI6Es1*$Mqt{mB-Mt^=PT(Cl^Zna zt>`y_qH!Uirm2P`gev(EONt33apM^@Db(gEI~UZZ)O^D%4a>Y6 zOCduhtrc7`oRPbKvC5rZe&|M(XNjh-B9ToNSL#OA9$^v3L)|M1wfx*kxYRMiVq;UI za3rcD-jfUysMb#JX)6LT3lu{-Jc))CEEPW}jztuvdG*{FgQT9~LKTP-HwuDogjfZzXb0FHevQA@qI9(z|%|E3vwKU~>~_nQ{@6VG{WD(MXX&e6ghvFI^v$8%6I6 z27At~t5aky#8w4BUlA`pUfqN&|&wg6NdbdI+P2LCUv6SX6c=y`Q=$;r?UMh|(WoC{UpyX(QRE?wKWb7OZ4ba!6#bF$ga5 zBUE=LK}9q{Lai3U9&|{QiK;2wrm*nTl77U=u*5q{7bIFxWl)Qd_8$$v(FY{8QF0PU zm5xy06^i14Aq^4^bqkTBV$HVoqM{sB6^Dzzy9&*erM}d1khBdqFVL!!DpeOdy6&FP zQB}DRl8M;m)ecr9CgF|v`ymkS$Gq|qZO>x;AyMp9v)=&fP}6m!Y)_F9M@;_Tu?I+B zJhmpLT;QSTf@G3Nl&KC!wb!rbE z9R5a@v}#vd{T;+Of3k6<#W`#u-sd)?^|SXv(YQiHlqKHBt)8%317bwn&o3lg39^Le zR#6FwkUN$V#lMop5lheQ3u7wA{4$8%;)FzV(WxxDlsO|<9*GJDyZKR#QdcIcUEtVB zZ`QE58lO#HjoU6fEygyOPW{$?i&E@I%d$H^|mXMr(6LJ;uH*;nn0F;zM+l@s^GpedqS&!H%cj{LKtd!WgLA?X!L z>?_uUt#yJTwA};(Q({t4RUMmlI*df(XX>qQKyJmm(L0DIr3pi(lO|wumm=)xUhGKp zb{ZQD7jW)S>h&BjOsOAWR-Iyd^3+AXZb8y!iGqD)^8l>;yJzGOgwGgWo zahYMZqEh!#mqxP^8_F%={fQ?R@ol9J2E-z88+H*$gp|s(c*%E|B6(sN6?4OT=8<6v zfOM(V;wCw4BW#xjRqH)PBoFHisDpTW@JNGfEQ3u2R-t*ml94$pq}mhh*dlay%I{#> z>r$+15=A2#K?P1?U$>*w?kGZQa)e8&T(&GWq9>2hI+*ytjgcTh6QPzaIt>C{2}77V zZs85ZiMI?|6C<$fSazl~OAL{ro5%9y5)`d#-vZ%k;W=AT)7!B#X& z8IPh8Ev)O*Wh<56P)poaQ>Ndw`zNc>d=VUm=vVXHOdLygU$*RrNmBOpCXRhcG8szR zQ&4Jzq)kbv*;G6J>A<+lE4yWhtl?i`bZm1_Y^q9s5RR}TS1a(5JrI+~il|?h5%elt zkoHJihlC~ys>va)9mJZ|h074NHtXem3{1A6K}a2iDh)fCQ7;u1MM0{))e`Q83C@W_ zY;1s<#*U>6vhcqgIDF3fK?s3ngFSM{sbZu8kd}mq?P3K7A{_+s^gyT`4Eh^6W(fqV zL}ifDNldDQ>WgWQIXFO4{P-D5W?CL@HC-r0f^HPAe^RQC&ca*ynC@3koCye#B@{bO zIygx-DgvErjk}h8PnTt|IMu2OkLVVb?9lgpL)s*aQC~_yM4b4iQa?j>y&7)z95rdr zb8<<|h&Ca8br9)Ns5h${yCj)SM}>Hwxga(YrMW&QaE7RVf*5!Pkd!$tWE-Z9>iejN zV(#-KipO73xgs9Zf;|{gpCd)Q?lct+TcH&+%TCo)69n8^7$iwS3dzi#$$zlfR>R{B z6(rlRxx$=C{{Tz@UD|~KDoptFog{+j=_MvF$`(ys zOG%}!@|O?#3Bf2CrYgFX*HrJB>Yc_>9(L7hDrXFJK_u=^hT?k2qBiXgrAG2hX`6pR zOjLDRP6Z3#J|s64U%kEpV@$a`h=ylzB*+vh4eTU_+a&Z0BBv`Psk+MR(u*-y;Z>a} zh*VyJije7&GJ0eP4d)}eB=L7B@LJ@yjmR{2HY_nioB$p(Lw>yc{jK-8urP>F(T9>*q1bf`k5 zTw6K7=5cbqQFaiwKcgyBlCAJ0pnC*{qazBT!!Mlk(SKM_ym@v#E&M}@E%#Ab9fO>l ziwa~_gK{A$$zSMM6)LX8qF|&Ui$Y?0#+^po-Zu7aAEK0$46u?RA6Xa>y8R8NJY;Nz zZzOCr-|dg8#M^z#eK-E#hEyDt^YARGDhoPHtl{pK+=b~e=0+%*k`S8QLQx`MR&SvZ zO~{AIF>g64tU&z4PgED;2BqDH>Lj^Na=kyT8`zpr6(}cC-IMgG5n(I6P}9K#Yhp^4 zsCY)6P7>?-5osc(@s!yNeI*a+iHldjNhJdqoeT9PWTLZZ;*D2u1F!*_nL15 z8D&54tS&l~lgqRI$ZjR95u-$ow~y|^8dMz8)wIK#b_!dq+L`Ex40+Nq%6Gt!kfBAM z+dGN}5m9dG%A3a_lb>cCN!2}yYxez#M1(S;Om{(PB?gxg;K#_vB9w=*!=0P-lq^b5 zUaV;3Sp^Ct^dnjjgK}h{1+_=TJE5eUo=2LiOx(8Oe8Y{h3Nfk`euSk*J5JaXTUUFR z^e1*7%YpSphdnM-;SdaU6x#&8)pn~cDldn`p&>5DD(W`18cTYj0Wm8p9{m}Hh@$1Y?jEL)e zS8-o={dJ(>q5Eu6;OX6Oa&&M>3+5YvI+Nhx+4Hh}1xfEpJ_`aAm!PUijH9PDZ;4az zD1w56EGW%}NSnn@lDU(jV>BoBiA=8x*k=%*4jiQmnR#?cB);+u1gM-Z<7Q`8a9*|uEC4&T|;&0%8uz_ zIjIYg3iQ6rlHY$UC@4K!M?xJ2=&v>g3+|E41rcpaL*!ktdPj0I%z^kbxG$k zBnLGj%!hJQVcuSa;7SBc8UnfNO?)z>xf@RI!kx;Ea(B^|n;YM&p86B{L01CncO!S* zcp_R&RXV1#vrIzeNEB0ZEAy#HiAt^(=lf%Fft&vT+mcI=g^Q0_!F%0962!#>mKBmh zp>dT`vrd@O%Gg_GYMb@oBVOBm$}G`xP4)6UN>yCzl^ZCCz$-4xFNumFE#I95P$62v z)=4KyC8HwYR)}o`p?F@giXRw~s!tK=6)-hH#kTPd2Bko!R*OYDJ_Ensq(Cc5o3%dH zfTu*K%d){}@Y$%kRi*V8*;;p83pqiW5J2gmjfs$iil{6`)1)7HLQ+Nw6y8Rbk47=D z*;$>L`Qw0-CBZ_eN6*2wRrv2%Jw?k#iC9y~ZT<;lZXzUsTf(aMR;>xf;OTC{6_s}d zGNLjl6i%b8sL7>SR;yhJd0xu$(!!;P zqXy*gcDnldHw2#sTJ0Uq-|hE z-3{xNo&=@BmD#2z86`}OiA5gz{T~=PniF6fPJHR3hQDu&K1SMpN$t+Nx zXF?+~+HXU>S#n9)PFbAbpio9j%@hO;K4e`4@H(FEv}Xp()HnCbqxy#L-+KrOF{yRYN0#g0$<&L8M>J z$LeR=Um~$FZ7CWbB#9pkxU4}MNW~{QMBqk;u$r*KMFf;?{{RINJ3YzFn*&hr%WA4l zj*+|+Xq!$|8mem#4Ke9|VOWI4pvhZQ#tJ&)MyBIN$2B79B6_={D#_fHGM;{u396r( zY1btiZ%@B)m-Z^uTC@|G@L~A_)|yx0VFVUqaukwXTz=jMX&AX;Hg4i-vhhmg%NZ0z zA}Id=0hDdhD>>@~V){`E)w*hz+$^nke@5fQkLna`(>I*%Bw*bVUot*QC){qWm(bs0 zhaQZ5Q^Mw$cJoGl)m32;T) zEBG=y==3U?*iFQc!lDz^ra2HwgCer9`k@-jy4mFEq8TG=Lq$e1F@BeUyCL}3LM6Wa zaR8~%iDN2qIaB>nvvEd+Hu*lF%%S7%!!FwLQq^`o+rsA#&x$jA>a z6Al_EtBRCKN3~Zuj^%ip+mj5Hj3;@k^&Pm`NKk_O{ev5=%v@|tY&`TOY)LEelCx-B zT&u8aEKJK?uDEM%N|4^+w5Fa+Vox7&oar?WTwiq zhq?OVq2`eP=d)! zu8ydXDm}-gLX~MHbahnxC{U!;SpIh(A|&%Mf-sxmi}1w?o&s`JIUp_|oWzvfla7Z+ z`zD&9-4ev@!OEkn%Fh={Aw}6d3Y8t*@WBIC<_=?Bbb8iZEvhiNzp22jE~9_iqk(&n zGH!W4aE*WLR)VIHp@zxSgP_IUla7hvc@eoUvE}kg;kY0m&}G8wM?pvBT7}C# zx6p_j5V|#jPCorYR47Z)y*m{C39ED9>fYe(QcDRgl)3Sf<;B{PPr?l z8P%k$4d{caVS2TtG^s*1{v-xMRWgse!OfsyfJq=ccAg}sg$Q@y?PDkc;Y zBw`ta6sRF`iyL6*{zRf^omrJgl1UhcfmKN}ePt9g)9frEDAj^eV5rm z^@O)lU0DfJOi4<;%A{dIT=wQR4L|Tf3e$11R3?LF2*p8XZmL&7FAyzPWT%~pBvs*T zlcbG`A*pJJb*Xnks8kYlQjQf(bR?P;-bfshHpyg?{{T0W9! zX(Q}r3rP}H>1Aq%k6>L7WK(xE?j6zD9qxXjdATPQuRi;oNTm^@646{G_^91PzqHxV zi?dqu20Y#N)5#PZ+;NcHq8-+Rv{8Ym;6qe~LsuC}i4={rH6lSP0(u>UE->$W)$yh@ zD6_2p02&QTHhlvZGZfnUe?GDy^N z@L9%0DYUgvnKdO11ZS~Luw)qGeFuoEL{;jLlxrnNQWhsEl9+gs%${_eTwCs>(t$fh zl{JRPNqdcAl#-%LYb3f99{2bzG9Fj!jA(KraSf$$K{8eU0Cp7A)%$ds z!LqfU{Kg1JL1Doma?1Cpu6Tjefr-V(6l7Sf0&+~WlaRW?p>;I55Ofi+=eGS7(auo% z2yhx8jmZ8dq@P1SAW|fq3G7X@D_-OjGC?tAaxQ@~@#!Aj1Cn4+B%N8c1kuW)Bvt$w z0>v8JwYY_<5T%W!9=LOkRVY+$_9o%jAd-6@6U6}`C2J~_Bu6CaBNyn-a`xMTg5SwI zg`ATEi0V8vtGJYF1Dp)xov)8pHL^Q&{`6%WX#-r#E3|BCFnL-fl10`1FL6yGkt_4K@=)WOG-oj z+?i-aZn~o(5|Vy`zuTeWRABKH`$k=!71rNtbaIYSijJ?2;B+E#qZ|i8_dPrh-Cd z-+6O~$m>JUi~xM@2PqGD1cen4j}Ff-PcMGzyY1Qi}r z5}?sF#B~^(GXDU?Apk0$A=uH!55t-=!$Psv-Xu4`iHiLh$#c3BSYGA z^|zs&R|iTx4#t`x1Ci-Z;)uTq(gv`dhO}eTFljK=Qy{v@rz7q6B>@rm#*jq&Y9a{!#8NcTC~=Yvr(T>Gs44h1PFY7+rG2{! zEJl>R2Dls$LD|C`4JD*#{{WInQ~s-9yvg@26AY+^fw_rcDYqKdk1jEnYv4)9wPdW& zwSt5ho1<4kmXcUVhu4*I)jh=T>KjR8#W=e$1T~{=}%58=)tPd6A~oPrvj-xaLZXsmJq3-m494gb6*? z;Hc^$=>!rP9g1C?zMcd%@@xM9Vv#yDw2GQ}BEKke*kplLS2}Vne6s$M>c_(9bh?LT zpUHOv2#(~6Uswt*lRt(=L?`$%UqlTMHKqyB$k3^ypo41zB#wm(?fyvCo(z2>%o9yn zU&23)39y!Eh^YDxq$EwHtk>*lgmdopHeXU0h)ih<dw)Xg+`O3ea!ozSA5g+ zCi3cR`Z(2jEme|@Zl~B31hS&-L?x>#Ef~Wh=`-a7o<~BX7-Uh6L#$Z?5*|~^{!mk( z*0m&m@}N5A0!=RpHG+KvD-uhAOsUl3CRIgzfvm|7gWhk^0R*%>wIB8`NR^cy}r!yt_kNoq8AZP8?4<#^b2 zNkg;dHaFTr%dP$e9JUwF@xajCAepj<9dKMW&P3dpZW9V`Xn{cx$hISJa{Q|$w=eSa z(Im+unDc!jc=L6lFeCms*AFWXgc&8x>gk7a3}RYQDP&af!7{BSvhl$>E3;2TA*w3e z1NzA0M>n^qn}*`nl}v$t391qo(YGQUq|>8s>^4kC?$Qm$RsR67sTwIS%L&gZr|-0; ziALGQBx)irVF=a@gi~`fS!1MKxMPXdbZnh2Difkf2oix4cX{r}8Zo4ok(kPLT5ewc zrz35p)xXXtT!)f1gQ+|eYJBw^f6EE=t)aW6u(1&RxN8LIPMVgxB}pv#BXm-$$rjF9 zCf5TJh+`O5FDV}Dy`JpP3`_i-aE2`urX-|U`C$xjlT$X?C{!(>)W!n%l{;t9q{JIR zJHnA7d$|$TJBmQY#@S|BMxeANyA+GQA$?J$45h|88C%0mx*Kh2Ir1+i$(^9Nc8bub> z%+K)Yz@$w&Jr<}k=!*!__E#k6#$==4T1&gadO*a+$riP({II3#y9)gwHzyf0T^7g= z#CMj(qW9k+9LP;!Lp2y*Y>uL@VQ@PA=614M4|rx)1P++=`X?RC8HrtfICi!C2jaz zlWI&!SBfDSz`%53617;NBiv*95ote!k|&}H;G?{^u&rOl1`-yqRWVT)D^wy9Hgb)T zT&d*`18p0PDG{jCwJNuTg%C z>GEbG zKeAYmN;(_}Yp;yOP>AChYGOzES4K>J3kz+;K*eH4=pu5?f3X$KGKxb>q9Na$4l%5o z?)nd*$Ztcu}vwfDgOY5!deXcIUiyxe-fEeul)1A^*U(TjYJqp+9Y(itK`BqO27L2*o?GfB|6JAW)4%8|8nmtQwT z<}0?1Aycs(h()x7K^kQ3{{V|Dm$@%Xp{|DM+`h)>+z^VT;BwtN1(}?OFoc;%&?RV# zB|=7rL`vmJMZr2K6V@g+X?1__*q4K;(3i5)g*@4lxj%(bUG%QwV<34ke#WcP*iSs(Y|!4UC{X)bND#_0OBKp2!ft7 z*iWC?+_lxp6)L>J15Ak{L`k;^gCOG}}Ar*>xmEXAI7vt|5bx)nj&pD4E zrhQlFt`qazTnu3JF=6;+I~_(Tr9b#|dJEL1b$|cb01N{G00IC50000G76NjJj1+8p zkA(f>>Hs*5?L4@ka@j4*Hw=7%Bf%Gk00taD0K6z8#fB1!B;_#2015^Fgpu000A+wf_KZ)tpmSkX>h#u3Wm> zPhUBfm32*eLQrn<_up+Y(@k;TdB%%<@DEjl7r~_v00000LCaO6pK}d7`!fPA-`{=n zjyQk-6ah#qVu?qcvF#w(03rY+_nATFq(VEh(Bmo3{{Y{7-~a#s0003;M7NRS>_2UE z0002baF4-2-Bt{DYj^(6Bx`qVG($}=Ls^Uz*_!;w~mg<3|zRPWbv-VkKx7q>J*z4^703{TcZ=owRwtT^;{{Y_! z10`B27c)uRN`)0x9smU&=g;N4A5k>o6?ikn@1-l4n|n&L+)4VMHv?XHvA1P7+BMzu z-%NFT_1RFX2Frbv$#6#BWI^R_zCSEDBJc=hU#0In&}nRU%fB^?RoIIG!p1HimBRP` z03B)ooon0*X$ne!bt%u>_MrQ%v+sZW!>>Jpc+*l$;WYF`6}J%$)PQTe*8$!XJSF(v z84~-Pxzmom>myhg&BS!H6I<+;29Rj_w*q$k`U_|0I1I-px^L>AEGPc}`_0EgsqFWU zbI(jR-J0To4XsB(actSJ(4$lw&wFpCk_>~wN`v3yk=r|bJ;JB>O5noCr|eX8h_?`y z`h6v2V$EkDlBxIJzXcD((I>VfZ_#8A9d)VQTm8kMW6JDnO{uVtZhtW-`BwXXgL~+@ zfW@AK8_me=eQ#1`gieMc%m-6-IS1ajeL+qLJTm}pnL5*6gPWO19#X1R37mDa#I}d znCyYnK(Ox9yQDSFf)4eW!o&n`lvdV>eI4j_Yu2>frG2fu6?v5!CB5TPdTTWO(!OYs z^LTX}iLw-GDQRT58)xvebN8u)`lsT%d_P6K14a*D1}gc!QOc|L9NFJ5a??HH$7M@( zY^6Mu8pdDJj#axiIwu2Np%_ka#67DI-5hB&9>Qo_c5RaFzHzcy?^~vRBs64sK?kT_hUnT z08_gL0WQmMF|o4u%N7++`ONoApL|UP+jD^mxW!3}RFO)UUMDr_qq*bsX3TKafFt52 z9QOY2+#YRL+D;TadJp*-|r*6N=)$oib&;Y6YggFz$^G6x*XdQw|rAlj1m-NR2)MTK8o_tN3d zI!j@$Qc**5QbrvZXYRc0TGPWhlJ}{k{{YkFoMo36BR`mETAI!<3CcuSW=C;lE)iJUn$6tTjRoP+I&`H-_ebnx2g`ft>(AT9y z0nEPU@(3N*8&P-s_uje9M^;JK)B(lWVU`eMR0+tRrgI>pNN?sLAOJP@mT64=`#ygC zr&dY!kOV|fK>&aa79D>^JI(Y*vLp}y01k2H)Ml->>*zbl*A!XwkN^Y#000C)1XFp( z5@{6>K!5-M5?@6p-HZPKz1lrEZ513@w30v|00013LBV2mizX zD-i(z0s;a71OfsA0s{d6000315g{=_QDG1uae*+AK%ue0P~l+F@bUlJ00;pC0RcY{ zuA-zp!G3{%5pVE~OtboWw2e$BAGih=Zxa0^r-<@1t+)ptv>oOIc=+|MShx69N-^BB zc1!j^!@N_(V7G&~ydRNc{)nxZc=ia=lgs;`{8aKqHon1cM{Kaxe7)7}Z=XSMryiR{ zJiuKNn?8|GgRjgfl4YgBmYR;J5jX6q;;)%QY*=Xh!mj@SFNlUvbs1Q8{-m*?`9gOJSD4U5yX_Z12bb0A;YPt$o~L50_qRa9T(yQ{?I2fODCJV zguJX%xw&Q6k4a3;tb2-rR^?4ZIK#;k@YkhEl@jHpc#c>lGM~d{;UlE-z%+y4?%=uN zA;d?&s3%hE#4_dz5^om;-4fTGOA9~l0Pa~{F*py1xFHqa;|2RImdj8uYEd z2*vj)T7b!LN{_VDQ!{~aO^`I!(5ZEr&r=u_H4_aW1vc(bVo;WHM1n?Y>G_H#61$W& zEO991vLc5S1Hot}>*))osNwDJ_ybhos2r|6GR4lA4ou848Hs!6a)ukIj}UhN577>* zQMy5>mI^_6jkMe-jTX-r1dscc4=}fgc7IZaBVgWbL7A8=)5{&&EBICI#x$;7%-v{$ zgXpN!6his9j`ej54X~}uz_{V=TC1GaAl_hV%Y#9rqh<`K?_{zZ6R?!y5&7{L>lFqX z)aoNqWiSJEXq+QMnN%xr4WHluC@(SW3T26-%-qTGEV`8f5iT@9bv72%D&h+;YGvLb zVl#b^gfEjV<|x$WBdKE)`JQrMqc!ydgwmukob+KuVgBYt_bxn6HX@LbZm8}Ksrr8_ z0OcKF=)j^}f+aT#LnLtO<*o!Rk-&ibN{QxYsL@U!Z^MFKaV)?MuxWh5XNmC)x0evv zS5mBsn2y}Cqj6&3D918}EfoaN++9g*%)I_YQb4~6Fc&Q{iD>ppxI}Dls4DE8lai~l zSLt$&rYZsjTbf6qM8s8M;Wp-7aFq&H&1w|}rNAlSxGbx#g2nef%DZ~h3D>G*3E&wfl;*liC#G;#* z(!eeXT+&Tg#Lng!mNwi`Mckn-%}YbvriiS&;s$cWBexAxBwN79@A^NA>);qBq6Xy!Ab6DA_=^DPqnOu7E9NrgWEVRo+o-Cm5k}?a zC`!x=a_TF@bjO*$LnO1zH5|rXMp|ht*_W?)JE+61ZWk{#Aw|>$X~7r!t3l}ge-`KjgjrlLgHejNlqblxHslpGKGcn5~Gx9&9}Lo z21PY1Eikj>h(Og$5IJrHaV~clgQPN8#KI-}XNow}Xox6r{Y*qr!eiWdiJ*WK%#mQK z9uQ4S@?cch9&p=6m_8#y^-~1dDpxla0E94s5Ql_V7KjTPn)46=9KcoX4aE_H?o`pJ z8+U0O8#aT|B`k!b8`3GpVmglHMXTu=4_g zXtPDOU8Z@7!Ne$nx8RxddY@z^60Sgsd5>t=`SkrD-txnD)HF&l2`sLl9XA?sM&>0= zyl3?SR;zFn+cM)o(cTbQVVlOHG{7aqOM%GCrKsAsNOS!o1+0+`Y80p!Rz$KWSD8fiTZly{kLZ+V378>D_&K)mfW9DWoyvyfARzMktXqa&eAm&tn(zt-6 zB^yS_A|6P|-cukoaKVg_-Ky-C))d@r@Wo63joCCn3bO*h98e4ho(x+viZE%Zc4AZ! z8>dk7C6X3oE4cZwBU-;~Dk$lMXw=rfa{Tu1?p*u86w`@bW8wtjE6iDnrXsnOX%os3 z7Xq4(h^~@#M&+AzID#eqCZ}*y^O-xL7g&RZfQHOR%nEL1mSqDjFc4Q*R-uP1#Z(w^EH}ASOD+y0S1*KNqE{$~+!8d@ zU3^dRL|4Sj3DN@*S`!ZAC@$#cKNC&c2ktTHOsG|OiJ5BZQ0akD;mu>v&}4a+k0FRK z;tDq}TUZWjy&+-+&Q~uCZG}(}`teU83Zo8oBy0C5-`%)%7W${J#% zP9lNL%(7yL=#(09aR&oXQ2oNzqPXu2w;8J34Cf(&QK4XhQ{1_kmZ+tI>LDz|r!tV* zVkvZ63E_cDvXU|xxFdB?gRFSTC}XU^7SXp!@i5VdE8NcT`Gh+60hm4*OnU~hX5!u; zs4PuD$;lF;r*-C9w@86k!*LzG?gFUWz9A?X$cHexfs1A^5OTcAwgrdM7}_AVubYad zIjpqYt=dDVQLZ6ohf;&$Zw?V*L(32dHzE#qYly6Xr~d$=H+IOYT9liD0Pj+W4lYoL zR-S#FQr*kBY`C&pC~+`_Kk5~Drf7G}SxpWYB}mFuT(gZ5{{T>8`im~j80`qakOkSe z3&hkLf?gCtz^)?8Z5K{pE98YO4mT-WW?0Cofi|&Ka&86&1BgHiolFG#i?{}=VWjWv z4da-p!(5fNSlPr-mQ&&rd6fxjj=~Br^o8VzcY*y<~Mx{AfK?O3iDpPeXU0z6KvkWsT2`><8aB~8KMX;c%Xz`KQU2#~jMHa_NH8{ADPseQphak*ZKh99I-ZUwlAsVmTA`JdSLsDI2)?o>zn zBL1O>OO|Fd`H2UpsuG6H%P5$WG20D8g>RWvD-jyFs52W-eHT|6)uSv6rY8O(b;pTd zZWd}GL5&%Fp8^si3lwSuR*F2Q5vWwqz8}ND>NZRx(KKvBJ{!cBxRt$2AiclTbhJXB zxEGT%Xh%~pPGAU}@6ZP7Faqq3VU*1Xx<-jWtY%nY)%=h0oiGVwA*;2jNTjYh}4Z)aV z6ELTlabc9GABd??6i|(jg{8T3EXM~CUP_o7xCl{Y$_>GxhJ2&JFEZt(7bxXuP_AY< zT}p{D1jy%pi-@&R>C(Mdh)3L!vQ;naMR6Sk7~E|l8Hny0#HL(5I*W4g2EO40MKSFx zrj8NkzM`x$tUhjq@s7s5~BrsYpP^<%vTmY8fgtjM%9_4u3cX1eZsw z!9#6z2Mu1O+lbug%rA?eX(`IfT&$~%pbjGksA3y%_^IL74(DhR@ON*LD6 z;4>EBlj0>S&+rh}>I&8%R`V~Yy&5@#Xx%DN7k}Djw-jjuI?kY7+fewFA1Z>GB~fhz z0DD{kZ4s`u->5Jm>MrG!japFV12KiP!5ef(eQ19SzA}bcE?r8M0EtlauOzFu5p!{N+fNAE z;Am_4+aQL)r-_n(`9tcNq&Ex zJobWWqi?t?wbo+b9}9(ijPTp_4x{%xpR^V#*thU|%%OYy$=``zX1!zRL6~F+Hk-as z1Iu4?LRwtb1ZkYFP&Yn_e4pH>zuc#fM4g3O({I@Jx3R%s z#ORjM4Wm;XjUyc0FuGxcgdmPlBLy4{N=r*SN{P`^K>7a zxR3jL-JkP1&+{jc2*d+^vChY6zQh-dLERm`kUTp3b&(QA%Dfx>O1 zTnQP~o1URJ`ynFSxGL>4PMhLph8H)lK1b|lY8M|HMxL|sKK(jTXM#H{XxvVy`WS_p#>2q2Y-)h6O*RH>jeFEk&$baCOhZu5Bc88W7^i?(? z?etGt?ro)p$XLed1G@cYI{~Pq-~{S~C)g>n)w2m^a0w&faS$U~T~qn(Q@ZDQ{-QZ` z_K0b~{l0+0y9s5;Wm=~S?LRfx!SogL6bDoamh{*=NA;jqcGG1_`|^RJgUET|_P)ab z_DldmJ?Ar8InXBPi_ym zbv4%&x#0;5NkZhUu;yQ~e(lDT*^Njkbj?xJIXQVEIE>*0L?};T zYRx4=!8OmV9$YuvP6Tmje%#Lt(>xfi@x3FX7Eh3KOpS@b{choB@p04@Ue5cK{?A@9z_nx7FBM z5&ZpcZ0H;FwXd2pd`-RC*`nY2HBbx42@Qd+#_6%*;SYV~pHmowq)d#qZBKp2HKsZE z>R1I*e4vDY58s?JoFMJ@!8SfW;Wq%*#*8Zu3}JIR0tF#aQChNTwfO>wI3v>@3tMdV zk0VKJYGH2vZpUvwZBC5Lqvu5LuIt?l9jC5wm5pV#LoyDi+yPbRw9ag;A?=i#sAg-Q z%4VGb_y$?yhw(~`UiLT3hjc!s^HGcnHH)?K8{@*Se4-4Jyxcs`Q3`)qE#8o%oqh53 zJk^~a5{eEmE=vl0ACB2j3D03K0s}@{u}&z=9uaR`4X|Y#noQ&G%`P4zj@)Bp&fc~6 z-oFKWm<~+nRCz+_lVpD&Q7xL})sBnOMOt)z?WOEs+?}{wzbAuO%#-E#E{`WVrwZ<< zKD>V9{-_M&>Ew+IYGK9b9)MTl)wNXq?x)mIWSA>JHMN5m?sC(b2!(H31m~w!DHko&JOeN=uW@Y+cgCXyC+yg^Z69b`#oI>VZPJxnx~oU3&?&q2 z*FiG(iHO0ptX9%d=j&H6&t}V<0hAg%K*vGpl#$1JKuGa7asE=Bz^guB&o!@mcjhpJ z=qELugJkXCT}kc@Sg69b)g^XvBP?^YUhO}C6V8FenyTD5+_HUbKV^^wwC|J%D zor(C7tiTuL?C8&twbf199gbz8x}!4R;n%ek9*F`S8ZYXJ#3{hD{E%e*!+zb=L^w}F zyfEiMZ3PdfFpR}o5RXUWW%YIopUI`#y4Y47kh8c6kiwO<=9f zNDWP{<$X@S_-9g{-c+3PSZ$&?ih`hdndu|^*?PyMx>$WEJdrav1n_L(G^^r@QiU{A z&v&!krsZmD$T=BA9wb+W+0F!Q2vg@U@hp{i@kVO!5yvlvi*`Kh1^8Oi8#rtGLxrB%*x*=s)( zTh}f3i9oZn&C8@$_bBiWyHjTJb{L1i$gLSQJ6AyHRjKgcTZYsB8sH(yyT3Ui*?tI$ zZ&ce9>_+g*o?05^qfYt08*jY%l=`&{{)qDUwiW%gsNO!%!zKqS6~vvZWc8t+s2snB zr6}mz1a>h64r<)5%-ACZi4IP+v&%DliUA-s+IqRT^B=1621NJbt?2Ye+lT=9ArUL4 z*VB)&sU$?|!nv8A40tV zHnJY-2Rj*Xj@w&w>V zmXB|7e|unDEl6p~6-GBrJ}@*0_S}!+`MkQR&_Ky|-Z5e9eJLZod}+0~@l62j%g;8> ziB0ea`9wh$@f?}bsx6YkaT86ilOnbKEI65SN7~OWzuv;KBYrpv(;Zwo{sH1K|BLna zsExw%I`;;U+~1P+(LasByJ(T~$)OXF`xJhQxwfJ&NyPmiKJza{0F{5FR4x7;b25Tp zug5|At29%wovR+V$5`NkbMX^IR>98246ctPQ1bA>AhYlw4`+#H{hu3F2+e>%EfPfP1792V2_<3Ai5NM&KPtRQ(?_UaFW;uqR z0gnJQ!eKEi)28~?C-zxHr$@A^s1St8ndY!YMOLZmOS%mjn_Ymo^5L%*eeHZa>d_U) zo_mQ#IXxl@^3PR+dUoZnr5etB<>x!KXmaK~eKMh=B7noThT(6d$ara6%3Wj1tH^0> z;)%c4U}%x35@GV<_Ads9Ync0df6Wd*g)m5QXcxQIk}J{O5y|6woqfK!=BW1#DGz43 z+!iyZ&-7GfKR%2c`46D>edSPEwsY>zwyAR;hr&{beBJt2y*&*<8K@qcRI~pv+m+K- z%;K-W`>$)3^P5dWF0H&kcEvJ1Kg~(Wj8M&<)x5qxJ9*yOD-B?%S0bTFS99;ZIFe=i z6iyZ*KC2Ya2X|P*?fL%bKS~-Mcq4nhTUiiV#?^I8kH5*b_+u9+R_=^#`}vM%8YK~B z;HZ~8oPh&FBm-kXZL^mX#Q88{$GXq z|2ES6KW6bi#G(s<99u-~9Ai%Ye;*B;cE+DQ=Ta@C9TD7MzIijsdJUugkCR`o$)Op; z=H^+~T=NrZ-pO8-ZX&0h_JCbVHO$Uv@*kJcrm^JC`Bf6w05PuA%A_e~n0(0cwHnjY zD6-W47Q=}e)_IWW_-z4;I@t+BvNm)bV0`=DlI^n`yu?8bFE^k32Y7E3)5~-d-&S0? z#mM;CMN$sNfn%ct?7p;OV?I-q?q>=^RMTm0fSO<=`8#?HG<0KwWvEAwZZBHtOCne+ zCGHqNEWJqBZ7Kb} zZ<)3v3w^e_7tGea$*LO6P*%MVt6*l$V*0?KAG8QcrXA;Po;$?J9CBCA?P}A?%%$9h z&2c10&(&80Dr>|N_g1MM(07ZP-?f#ikI4Okeg9y?`f%e0B%Q^o;Ia3TYHm;AL4ifOG+=J;7~$Nce$adD9pM`o ze=oo-tpUs(_Xw`u84YcrdzATuMh4*y4*8l@ykOsXZgNb2d%;_1g6D$LUxa5V_j=nc z)xlxXWV%049fiRA&6c6>dnPAeCB47@6Mpc70vx)TA$;mtf2HBJ1)3>HBoZB|7MST>CWV}92if$)}V?1MNn?My=^{9i{DRHb@}5z8eG1UtzRx9vQ&%Fq|W~w(nrNRW+B(MW=0oe~P4CDusACcb&<3 zHkB};!)%rqn?wwAyoElk#m{JZwN_4`LPtbkxhH@*6}E*{S_d+?k<;DPE85RK@JGV0_jEh z+FTN;xN0+zd{KuX1I9Qn2^!D#hvjrF&u`pbxJu)+qz7)ZfZBF?@yWO}`-|1Ff=#Ec zZk$n@hIOS{r33~(=()?8u$dI_tlW=qW~{GoYip~&HmjC-2E|ai;F|nKGtWw(a$9*y ze|L}X28Mt6Q|l}?!!*aAvRUgL`H{FVt7w73%8FS;WS=_|PT0Y9jX-IS=uzdP1j_8) zGbR)@u1Km_Jzs|{F#88M%)6*Lvh}zA)ArE=PM6640M~wUlO^sR@F1v+V`W)ij-yx? zX?Tumjjz5oULWEsPmLabxSa9Z)*AMYzVbhS{-vwU|LS5Ar+xNSdaP-cw?NeZDVP`S%_5Gv ze=~Awb`8lX>LMM-dW5r`M&ZU)_xn4rBXlxRJ{4qJ56g0chqF~wTxHzk0yR-;M#hdj?))5g4%{4Ds%CDWajG1Tv#gwyX}R3* z+pfGlQBfA82H}B@m}Iw)Hgrf}tqRJOQ*Z%CB1>FdGQjQ}EM!-H#oH=kseeIuLv3h@ z3!nzCn2@7!rQz}fSIN`xHu!#H9hN*LxH zB{McVPfx%$zyQ(<^JP~C{HN)1mB7!Vk#Ov)KaI-2#x(rsRXnHB6GI!ndqT()tXF%= z-N=KQuqVkF+d9CCZ+Q`hEvwnM9Ii@;V(>3BdngaT^0aW8Te18sRZcDK4uqnlElh>}}lzrp_VxE%eu&EutyZw7xWp#tVn=?%Yj

*Z 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 literal 0 HcmV?d00001 diff --git a/assets/login1.PNG b/assets/login1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..b24c991153247ee4fd7b6deecda543bd26f90205 GIT binary patch literal 14927 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 literal 0 HcmV?d00001 diff --git a/assets/login2.PNG b/assets/login2.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5124c8cc7261050957f20f95a9d953a16f63135e GIT binary patch literal 13746 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 literal 0 HcmV?d00001 diff --git a/assets/login3.PNG b/assets/login3.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5e1c4727e6ac049b6a4a27fb683c305b87de1754 GIT binary patch literal 13141 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 literal 0 HcmV?d00001 diff --git a/lib/main.dart b/lib/main.dart index 18d34cf..11c90c1 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -6,9 +6,9 @@ import 'package:rcapp/pages/CategoryMenuList/Biryani_MenuList.dart'; import 'package:rcapp/pages/CategoryMenuList/Bread_Menu.dart'; import 'package:rcapp/pages/CategoryMenuList/Breakfast_Menu.dart'; import 'package:rcapp/pages/CategoryMenuList/Burger_Menu.dart'; +import 'package:rcapp/pages/CategoryMenuList/Chinese_Menu.dart'; import 'package:rcapp/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart'; import 'package:rcapp/pages/CategoryMenuList/MainCourse_Menu.dart'; -import 'package:rcapp/pages/CategoryMenuList/Paneer_Menu.dart'; import 'package:rcapp/pages/CategoryMenuList/Pasta_Menu.dart'; import 'package:rcapp/pages/CategoryMenuList/Pizza_Menu.dart'; import 'package:rcapp/pages/CategoryMenuList/Roll_Menu.dart'; @@ -58,10 +58,9 @@ class MyApp extends StatelessWidget { "/breadmenu" : (context) => Bread_MenuList(), "/breakfastmenu" : (context) => Breakfast_MenuList(), "/burgermenu" : (context) => Burger_MenuList(), - "/chinesemenu" : (context) => Burger_MenuList(), + "/chinesemenu" : (context) => ChineseMenuList(), "/friedriceandnoodlesmenu" : (context) => FriedRiceAndNoodles_MenuList(), "/maincoursemenu" : (context) => MainCourse_MenuList(), - "/paneermenu" : (context) => Paneer_MenuList(), "/pastamenu" : (context) => Pasta_MenuList(), "/pizzamenu" : (context) => Pizza_MenuList(), "/rollmenu" : (context) => Roll_MenuList(), diff --git a/lib/pages/CategoryMenuList/Accompaniment_Menu.dart b/lib/pages/CategoryMenuList/Accompaniment_Menu.dart index 61d8ebc..1719497 100644 --- a/lib/pages/CategoryMenuList/Accompaniment_Menu.dart +++ b/lib/pages/CategoryMenuList/Accompaniment_Menu.dart @@ -25,7 +25,7 @@ class _Accompaniment_MenuState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Accompaniments'), actions: [ IconButton( icon: Icon( diff --git a/lib/pages/CategoryMenuList/Biryani_MenuList.dart b/lib/pages/CategoryMenuList/Biryani_MenuList.dart index 82ca122..8749875 100644 --- a/lib/pages/CategoryMenuList/Biryani_MenuList.dart +++ b/lib/pages/CategoryMenuList/Biryani_MenuList.dart @@ -24,7 +24,7 @@ class _Biryani_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Rice and Biryani'), actions: [ IconButton( icon: Icon( @@ -190,6 +190,7 @@ class _BiryaniMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + addToCart(_menuList[index]); setState(() { checked = !checked; }); diff --git a/lib/pages/CategoryMenuList/Bread_Menu.dart b/lib/pages/CategoryMenuList/Bread_Menu.dart index 9d37044..16a33da 100644 --- a/lib/pages/CategoryMenuList/Bread_Menu.dart +++ b/lib/pages/CategoryMenuList/Bread_Menu.dart @@ -24,7 +24,7 @@ class _Bread_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Breads'), actions: [ IconButton( icon: Icon( @@ -190,6 +190,7 @@ class _BiryaniMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + addToCart(_menuList[index]); setState(() { checked = !checked; }); diff --git a/lib/pages/CategoryMenuList/Breakfast_Menu.dart b/lib/pages/CategoryMenuList/Breakfast_Menu.dart index a4e2cd5..1beef94 100644 --- a/lib/pages/CategoryMenuList/Breakfast_Menu.dart +++ b/lib/pages/CategoryMenuList/Breakfast_Menu.dart @@ -24,7 +24,7 @@ class _Breakfast_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Breakfast'), actions: [ IconButton( icon: Icon( @@ -190,6 +190,7 @@ class _BreadMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + addToCart(_menuList[index]); setState(() { checked = !checked; }); diff --git a/lib/pages/CategoryMenuList/Burger_Menu.dart b/lib/pages/CategoryMenuList/Burger_Menu.dart index 42a4964..b74575d 100644 --- a/lib/pages/CategoryMenuList/Burger_Menu.dart +++ b/lib/pages/CategoryMenuList/Burger_Menu.dart @@ -24,7 +24,7 @@ class _Burger_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Burgers'), actions: [ IconButton( icon: Icon( @@ -190,6 +190,7 @@ class _BurgerMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + addToCart(_menuList[index]); setState(() { checked = !checked; }); diff --git a/lib/pages/CategoryMenuList/Chinese_Menu.dart b/lib/pages/CategoryMenuList/Chinese_Menu.dart index 435d2c4..fbba4b3 100644 --- a/lib/pages/CategoryMenuList/Chinese_Menu.dart +++ b/lib/pages/CategoryMenuList/Chinese_Menu.dart @@ -24,7 +24,7 @@ class _ChineseMenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Chinese'), actions: [ IconButton( icon: Icon( diff --git a/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart b/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart index 26bd340..9be1ff2 100644 --- a/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart +++ b/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart @@ -24,7 +24,7 @@ class _FriedRiceAndNoodles_MenuListState extends State[ IconButton( icon: Icon( @@ -190,6 +190,7 @@ class _FriedRiceAndNoodlesMenuListListPageState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Main Course'), actions: [ IconButton( icon: Icon( @@ -190,6 +190,7 @@ class _MainCourseMenuListListPageState extends State BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + addToCart(_menuList[index]); setState(() { checked = !checked; }); diff --git a/lib/pages/CategoryMenuList/Paneer_Menu.dart b/lib/pages/CategoryMenuList/Paneer_Menu.dart deleted file mode 100644 index 7fde495..0000000 --- a/lib/pages/CategoryMenuList/Paneer_Menu.dart +++ /dev/null @@ -1,236 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_spinkit/flutter_spinkit.dart'; -import 'package:rcapp/models/user.dart'; -import 'package:rcapp/pages/storeData.dart'; -import 'package:provider/provider.dart'; -import 'package:rcapp/services/database.dart'; - -class Paneer_MenuList extends StatefulWidget { - @override - _Paneer_MenuListState createState() => _Paneer_MenuListState(); -} - -class _Paneer_MenuListState extends State { - StoreData dataforCart = StoreData(); - int total = 0; - - int qty = 0; - List qtyList = List(); - - @override - Widget build(BuildContext context) { - return StreamProvider>.value( - value: DatabaseService().paneer, - child: Scaffold( - appBar: AppBar( - backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), - actions: [ - IconButton( - icon: Icon( - Icons.shopping_cart, - color: Colors.white, - ), - onPressed: () { - Navigator.pushNamed(context, '/cart'); - // Navigator.popAndPushNamed(context, '/cart'); - }, - ) - ], - ), - body: Column( - children: [ - Expanded( - child: PaneerMenuListListPage(), - ) - ], - ), - ), - ); - } -} - -class PaneerMenuListListPage extends StatefulWidget { - @override - _PaneerMenuListListPageState createState() => _PaneerMenuListListPageState(); -} - -class _PaneerMenuListListPageState extends State { - StoreData storeData = StoreData(); - int total = 0; - bool checked = false; - Map quantityDetail = Map(); - int qty = 0; - List qtyList = List(); - - void updateTotal() { - Map foodDetail = storeData.retrieveFoodDetails(); - Map qtyDetail = storeData.retrieveQtyDetails(); - - total = 0; - - setState(() { - qtyDetail.forEach((key, value) => qtyList.add(value)); - foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); - }); - } - - void quantityIncreement(String foodName) { - storeData.increaseQty(foodName); - updateTotal(); - } - - void quantityDecreement(String foodName) { - storeData.decreaseQty(foodName); - updateTotal(); - } - - void update() { - Map qtyCart = storeData.retrieveQtyDetails(); - Map foodDetail = storeData.retrieveFoodDetails(); - - setState(() { - qty = 0; - qtyCart.forEach((key, value) { - qty += value; - qtyList.add(value); - }); - foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); - }); - } - - void addToCart(PaneerMenu post) { - String item = post.item; - int price = post.price; - - Map qtyDetail = storeData.retrieveQtyDetails(); - - int qty = 1; - - qtyDetail.forEach((key, value) { - if (key == item) { - qty = value; - } - }); - - if (qty > 1) { - storeData.StoreFoodDetails(item, price, qty); - } else { - storeData.StoreFoodDetails(item, price, 1); - } - print(item); - } - - @override - Widget build(BuildContext context) { - final _menuList = Provider.of>(context) ?? []; - if (_menuList.length == 0) { - return Container( - height: 200, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SpinKitDualRing( - color: Colors.deepOrange, - size: 38, - ), - SizedBox(height: 20), - Text('LOADING', style: TextStyle(fontWeight: FontWeight.w500)) - ]), - ); - } else { - return Column( - children: [ - Expanded( - child: Container( - child: ListView.builder( - physics: NeverScrollableScrollPhysics(), - shrinkWrap: true, - itemCount: _menuList.length, - itemBuilder: (_, index) { - return ListTile( - title: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), - Text( - '${_menuList[index].item}', - style: TextStyle( - fontSize: 17, - fontWeight: FontWeight.bold), - ), - ], - ), - InkWell( - onTap: () { - addToCart(_menuList[index]); - }, - child: Container( - height: 45, - width: 43, - margin: EdgeInsets.only(top: 6), - alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), - child: IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - }, - icon: Icon( - Icons.add, - color: Colors.white, - ), - ), - ), - ), - ], - ), - Row( - children: [ - Container( - margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), - child: Text( - '₹' + '${_menuList[index].price}', - style: TextStyle( - fontSize: 15, - fontWeight: FontWeight.bold), - ), - ), - ], - ), - Divider( - color: Colors.grey, - height: 2, - thickness: 1, - indent: 5, - endIndent: 5, - ), - ], - ), - ); - })), - ) - ], - ); - } - } -} diff --git a/lib/pages/CategoryMenuList/Pasta_Menu.dart b/lib/pages/CategoryMenuList/Pasta_Menu.dart index 9467f64..e53ab70 100644 --- a/lib/pages/CategoryMenuList/Pasta_Menu.dart +++ b/lib/pages/CategoryMenuList/Pasta_Menu.dart @@ -19,12 +19,12 @@ class _Pasta_MenuListState extends State { @override Widget build(BuildContext context) { - return StreamProvider>.value( - value: DatabaseService().paneer, + return StreamProvider>.value( + value: DatabaseService().pastamenu, child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Pasta'), actions: [ IconButton( icon: Icon( @@ -190,7 +190,8 @@ class _PaneerMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { - setState(() { + addToCart(_menuList[index]); + setState(() { checked = !checked; }); }, diff --git a/lib/pages/CategoryMenuList/Pizza_Menu.dart b/lib/pages/CategoryMenuList/Pizza_Menu.dart index 5275f49..f82dcb8 100644 --- a/lib/pages/CategoryMenuList/Pizza_Menu.dart +++ b/lib/pages/CategoryMenuList/Pizza_Menu.dart @@ -24,7 +24,7 @@ class _Pizza_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Pizza'), actions: [ IconButton( icon: Icon( @@ -190,7 +190,8 @@ class _PizzaMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { - setState(() { + addToCart(_menuList[index]); + setState(() { checked = !checked; }); }, diff --git a/lib/pages/CategoryMenuList/Roll_Menu.dart b/lib/pages/CategoryMenuList/Roll_Menu.dart index 37c3c7a..0aad152 100644 --- a/lib/pages/CategoryMenuList/Roll_Menu.dart +++ b/lib/pages/CategoryMenuList/Roll_Menu.dart @@ -24,7 +24,7 @@ class _Roll_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Roll'), actions: [ IconButton( icon: Icon( @@ -190,6 +190,7 @@ class _RollMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + addToCart(_menuList[index]); setState(() { checked = !checked; }); diff --git a/lib/pages/CategoryMenuList/Sandwich_Menu.dart b/lib/pages/CategoryMenuList/Sandwich_Menu.dart index 22fa511..d44cfe6 100644 --- a/lib/pages/CategoryMenuList/Sandwich_Menu.dart +++ b/lib/pages/CategoryMenuList/Sandwich_Menu.dart @@ -24,7 +24,7 @@ class _Sandwich_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Sandwich'), actions: [ IconButton( icon: Icon( @@ -190,6 +190,7 @@ class _SandwichMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + addToCart(_menuList[index]); setState(() { checked = !checked; }); diff --git a/lib/pages/CategoryMenuList/Snacks_Menu.dart b/lib/pages/CategoryMenuList/Snacks_Menu.dart index 39147c9..deb0e7f 100644 --- a/lib/pages/CategoryMenuList/Snacks_Menu.dart +++ b/lib/pages/CategoryMenuList/Snacks_Menu.dart @@ -24,7 +24,7 @@ class _Snacks_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Snacks'), actions: [ IconButton( icon: Icon( @@ -190,6 +190,7 @@ class _SnacksMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + addToCart(_menuList[index]); setState(() { checked = !checked; }); diff --git a/lib/pages/CategoryMenuList/Soup_Menu.dart b/lib/pages/CategoryMenuList/Soup_Menu.dart index 16548cf..ee0abeb 100644 --- a/lib/pages/CategoryMenuList/Soup_Menu.dart +++ b/lib/pages/CategoryMenuList/Soup_Menu.dart @@ -24,7 +24,7 @@ class _Soup_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Soup'), actions: [ IconButton( icon: Icon( @@ -190,6 +190,7 @@ class _SoupMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + addToCart(_menuList[index]); setState(() { checked = !checked; }); diff --git a/lib/pages/CategoryMenuList/Starter_Menu.dart b/lib/pages/CategoryMenuList/Starter_Menu.dart index 9a4f6b7..8aa075b 100644 --- a/lib/pages/CategoryMenuList/Starter_Menu.dart +++ b/lib/pages/CategoryMenuList/Starter_Menu.dart @@ -24,7 +24,7 @@ class _StarterMenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Starters'), actions: [ IconButton( icon: Icon( diff --git a/lib/pages/CategoryMenuList/Tandoori_Menu.dart b/lib/pages/CategoryMenuList/Tandoori_Menu.dart index a47c2dc..52ac54a 100644 --- a/lib/pages/CategoryMenuList/Tandoori_Menu.dart +++ b/lib/pages/CategoryMenuList/Tandoori_Menu.dart @@ -24,7 +24,7 @@ class _Tandoori_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('Category: Tandoor'), actions: [ IconButton( icon: Icon( @@ -190,6 +190,7 @@ class _TandooriMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + addToCart(_menuList[index]); setState(() { checked = !checked; }); diff --git a/lib/pages/Food.dart b/lib/pages/Food.dart index 8ec7937..c482102 100644 --- a/lib/pages/Food.dart +++ b/lib/pages/Food.dart @@ -94,16 +94,30 @@ class _FoodState extends State { SizedBox(height: 10.0), FoodCategory(), SizedBox(height: 30.0), - Container( - padding: EdgeInsets.fromLTRB(10, 0, 0, 0), - child: Text( - "Categories: ", - style: TextStyle( - color: Colors.grey, - fontSize: 25, - fontWeight: FontWeight.bold, + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + padding: EdgeInsets.fromLTRB(10, 0, 0, 0), + child: Text( + "Categories: ", + style: TextStyle( + color: Colors.grey, + fontSize: 25, + fontWeight: FontWeight.bold, + ), + ), ), - ), + FlatButton( + onPressed: () { + Navigator.pushNamed(context, '/allmenu'); + }, + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + child: Text('Full Menu'), + color: Colors.orange, + ), + ], ), ListPage(update: update), ], @@ -245,7 +259,7 @@ class _ListPageState extends State { children: [ InkWell( onTap: () { - Navigator.pushNamed(context, "/allmenu"); + Navigator.pushNamed(context, "/maincoursemenu"); }, child: Container( height: 100.0, @@ -264,7 +278,7 @@ class _ListPageState extends State { SizedBox(width: 20), InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/breadmenu"); }, child: Container( height: 100.0, @@ -276,14 +290,14 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/29.jpg"), + image: new AssetImage("assets/40.jpg"), fit: BoxFit.fill)), ), ), SizedBox(width: 20), InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/biryanimenu"); }, child: Container( height: 100.0, @@ -295,14 +309,14 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/38.jpg"), + image: new AssetImage("assets/28.jpg"), fit: BoxFit.fill)), ), ), SizedBox(width: 20), InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/tandoorimenu"); }, child: Container( height: 100.0, @@ -314,7 +328,7 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/39.jpg"), + image: new AssetImage("assets/29.jpg"), fit: BoxFit.fill)), ), ), @@ -331,7 +345,7 @@ class _ListPageState extends State { children: [ InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/chinesemenu"); }, child: Container( height: 100.0, @@ -343,14 +357,14 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/33.jpg"), + image: new AssetImage("assets/38.jpg"), fit: BoxFit.fill)), ), ), SizedBox(width: 20), InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/friedriceandnoodlesmenu"); }, child: Container( height: 100.0, @@ -362,14 +376,14 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/34.jpg"), + image: new AssetImage("assets/39.jpg"), fit: BoxFit.fill)), ), ), SizedBox(width: 20), InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/rollmenu"); }, child: Container( height: 100.0, @@ -381,14 +395,14 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/27.jpg"), + image: new AssetImage("assets/33.jpg"), fit: BoxFit.fill)), ), ), SizedBox(width: 20), InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/pizzamenu"); }, child: Container( height: 100.0, @@ -400,7 +414,7 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/31.jpg"), + image: new AssetImage("assets/34.jpg"), fit: BoxFit.fill)), ), ), @@ -417,7 +431,7 @@ class _ListPageState extends State { children: [ InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/snacksmenu"); }, child: Container( height: 100.0, @@ -429,14 +443,14 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/32.jpg"), + image: new AssetImage("assets/27.jpg"), fit: BoxFit.fill)), ), ), SizedBox(width: 20), InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/sandwichmenu"); }, child: Container( height: 100.0, @@ -448,14 +462,14 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/35.jpg"), + image: new AssetImage("assets/31.jpg"), fit: BoxFit.fill)), ), ), SizedBox(width: 20), InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/burgermenu"); }, child: Container( height: 100.0, @@ -467,14 +481,14 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/36.jpg"), + image: new AssetImage("assets/32.jpg"), fit: BoxFit.fill)), ), ), SizedBox(width: 20), InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/pastamenu"); }, child: Container( height: 100.0, @@ -486,7 +500,7 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/26.jpg"), + image: new AssetImage("assets/35.jpg"), fit: BoxFit.fill)), ), ), @@ -503,7 +517,7 @@ class _ListPageState extends State { children: [ InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/soupmenu"); }, child: Container( height: 100.0, @@ -515,14 +529,14 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/28.jpg"), + image: new AssetImage("assets/36.jpg"), fit: BoxFit.fill)), ), ), SizedBox(width: 20), InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/accompanimentmenu"); }, child: Container( height: 100.0, @@ -534,14 +548,14 @@ class _ListPageState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/31.jpg"), + image: new AssetImage("assets/37.jpg"), fit: BoxFit.fill)), ), ), SizedBox(width: 20), InkWell( onTap: () { - Navigator.pushNamed(context, "/cart"); + Navigator.pushNamed(context, "/allmenu"); }, child: Container( height: 100.0, @@ -564,4 +578,4 @@ class _ListPageState extends State { ], )); } -} +} \ No newline at end of file diff --git a/lib/pages/Login.dart b/lib/pages/Login.dart index b9b905b..bbac15b 100644 --- a/lib/pages/Login.dart +++ b/lib/pages/Login.dart @@ -1,3 +1,4 @@ +import 'package:carousel_pro/carousel_pro.dart'; import 'package:flutter/material.dart'; import 'package:rcapp/services/auth.dart'; @@ -10,6 +11,8 @@ class Login extends StatefulWidget { } class _LoginState extends State { + List photos = ["assets/delivery-man.png", "assets/login.png"]; + final AuthService _auth = AuthService(); final _formKey = GlobalKey(); @@ -20,6 +23,27 @@ class _LoginState extends State { @override Widget build(BuildContext context) { + + + Widget logincarousel = Container( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 0), + height: 180.0, + child: new Carousel( + boxFit: BoxFit.contain, + images: [ + AssetImage('assets/login1.PNG'), + AssetImage('assets/login2.PNG'), + AssetImage('assets/login3.PNG'), + ], + autoplay: true, + dotSize: 0, + dotBgColor: Colors.transparent, + animationCurve: Curves.fastOutSlowIn, + animationDuration: Duration(milliseconds: 2000), + borderRadius: true, + indicatorBgPadding: 10.0, + )); + return Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, @@ -42,27 +66,11 @@ class _LoginState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.start, children: [ - Image.asset( - 'assets/delivery-man.png', - fit: BoxFit.contain, - ), - SizedBox(height: 8.0), - Text( - 'Food Delivery', - style: TextStyle( - color: Colors.black, - fontWeight: FontWeight.bold, - fontSize: 40), - ), - SizedBox(height: 7.0), - Text( - 'Rourkela club now delivers food at your doorstep', - textAlign: TextAlign.center, - style: TextStyle( - color: Colors.grey, - fontSize: 22, + SizedBox( + height: 250.0, + width: 370.0, + child: logincarousel ), - ), SizedBox(height: 18.0), TextFormField( decoration: InputDecoration( diff --git a/lib/services/database.dart b/lib/services/database.dart index 9cb1f8f..a1effaf 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -22,8 +22,6 @@ class DatabaseService { Firestore.instance.collection('Biryani'); final CollectionReference starterfoods = Firestore.instance.collection('Starter'); - final CollectionReference paneerfoods = - Firestore.instance.collection('Paneer'); final CollectionReference maincoursefoods = Firestore.instance.collection('MainCourse'); final CollectionReference breadsfoods = @@ -276,9 +274,6 @@ class DatabaseService { Stream> get maincourse { return maincoursefoods.snapshots().map(_maincoursemenuListFromSnapshot); } - Stream> get paneer { - return paneerfoods.snapshots().map(_paneermenuListFromSnapshot); - } Stream> get biryani { return biryanifoods.snapshots().map(_biryanimenuListFromSnapshot); } diff --git a/pubspec.lock b/pubspec.lock index 8cdb32a..269eac2 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -162,6 +162,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.1.6" + flushbar: + dependency: "direct main" + description: + name: flushbar + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.4" flutter: dependency: "direct main" description: flutter diff --git a/pubspec.yaml b/pubspec.yaml index 1aa4f4a..a0fb7f4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -32,6 +32,7 @@ dependencies: google_maps_flutter: ^0.5.30 geolocator: ^5.3.2+2 flutter_spinkit: ^4.1.2 + flushbar: ^1.10.4 From 793df5666a45e549d6c8a85998aaeea5aa7c1d8e Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Tue, 18 Aug 2020 12:13:57 +0530 Subject: [PATCH 05/29] cart bug fix --- lib/pages/Cart.dart | 15 ++++--- lib/pages/CategoryMenuList/Tandoori_Menu.dart | 39 ++++++++----------- 2 files changed, 26 insertions(+), 28 deletions(-) diff --git a/lib/pages/Cart.dart b/lib/pages/Cart.dart index 3f7b4de..67fdc75 100644 --- a/lib/pages/Cart.dart +++ b/lib/pages/Cart.dart @@ -127,9 +127,7 @@ class _CartState extends State { ]) ], ), - Text( - '$address' - ) + Text('$address') ], ), OrderCard(total: total), @@ -177,7 +175,8 @@ class _CartState extends State { qty: qty, keyname: keyname, quantityDecreement: quantityDecreement, - quantityIncreement: quantityIncreement) + quantityIncreement: quantityIncreement, + removeItem: removeItem) ], ), Row( @@ -219,6 +218,7 @@ class QuantityInCart extends StatefulWidget { String keyname; final quantityIncreement; final quantityDecreement; + final removeItem; QuantityInCart( {this.index, @@ -227,7 +227,8 @@ class QuantityInCart extends StatefulWidget { this.qty, this.keyname, this.quantityDecreement, - this.quantityIncreement}); + this.quantityIncreement, + this.removeItem}); @override _QuantityInCartState createState() => _QuantityInCartState(); } @@ -284,9 +285,11 @@ class _QuantityInCartState extends State { color: Colors.white, ), onPressed: () { - if (widget.qtyList[widget.index] > 0) { + if (widget.qtyList[widget.index] > 1) { print(widget.key); widget.quantityDecreement(widget.keyname); + } else if (widget.qtyList[widget.index] == 1) { + widget.removeItem(widget.keyname); } }, ), diff --git a/lib/pages/CategoryMenuList/Tandoori_Menu.dart b/lib/pages/CategoryMenuList/Tandoori_Menu.dart index 52ac54a..8cdb56c 100644 --- a/lib/pages/CategoryMenuList/Tandoori_Menu.dart +++ b/lib/pages/CategoryMenuList/Tandoori_Menu.dart @@ -177,28 +177,23 @@ class _TandooriMenuListListPageState extends State { ), ], ), - InkWell( - onTap: () { - addToCart(_menuList[index]); - }, - child: Container( - height: 45, - width: 43, - margin: EdgeInsets.only(top: 6), - alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), - child: IconButton( - onPressed: () { - addToCart(_menuList[index]); - setState(() { - checked = !checked; - }); - }, - icon: Icon( - Icons.add, - color: Colors.white, - ), + Container( + height: 45, + width: 43, + margin: EdgeInsets.only(top: 6), + alignment: Alignment.center, + decoration: + BoxDecoration(color: Colors.deepOrange), + child: IconButton( + onPressed: () { + addToCart(_menuList[index]); + setState(() { + checked = !checked; + }); + }, + icon: Icon( + Icons.add, + color: Colors.white, ), ), ), From 32368c4abf2a710fd4ecffeb8cabc164c7919cdd Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Tue, 18 Aug 2020 15:00:43 +0530 Subject: [PATCH 06/29] cart bug fixed --- lib/pages/Cart.dart | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/pages/Cart.dart b/lib/pages/Cart.dart index 67fdc75..e0042e1 100644 --- a/lib/pages/Cart.dart +++ b/lib/pages/Cart.dart @@ -285,11 +285,12 @@ class _QuantityInCartState extends State { color: Colors.white, ), onPressed: () { - if (widget.qtyList[widget.index] > 1) { + if (widget.qtyList[widget.index] > 0) { print(widget.key); widget.quantityDecreement(widget.keyname); - } else if (widget.qtyList[widget.index] == 1) { - widget.removeItem(widget.keyname); + if (widget.qty == 1) { + widget.removeItem(widget.keyname); + } } }, ), From 9342988575257dc84ae8f19c8d367de9a1546110 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Tue, 18 Aug 2020 15:05:57 +0530 Subject: [PATCH 07/29] are yaar ek bug reh gaya tha --- lib/pages/Cart.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/pages/Cart.dart b/lib/pages/Cart.dart index e0042e1..4e12ce6 100644 --- a/lib/pages/Cart.dart +++ b/lib/pages/Cart.dart @@ -140,9 +140,9 @@ class _CartState extends State { int price = _foodNamePrice[keyname]; int qty = _foodQtyPrice[keyname]; return ListTile( - onTap: () { - removeItem(keyname); - }, + // onTap: () { + // removeItem(keyname); + // }, title: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ From 704dd0e0c5dd26f18bd5d0d44a196cecb1017bb5 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Tue, 18 Aug 2020 18:28:29 +0530 Subject: [PATCH 08/29] added flushbar in category pages --- .../CategoryMenuList/Accompaniment_Menu.dart | 7 ++++++- lib/pages/CategoryMenuList/All_Menu.dart | 5 +++++ .../CategoryMenuList/Biryani_MenuList.dart | 3 +++ lib/pages/CategoryMenuList/Bread_Menu.dart | 3 +++ .../CategoryMenuList/Breakfast_Menu.dart | 3 +++ lib/pages/CategoryMenuList/Burger_Menu.dart | 3 +++ lib/pages/CategoryMenuList/Chinese_Menu.dart | 3 +++ .../FriedRiceAndNoodles_Menu.dart | 3 +++ .../CategoryMenuList/MainCourse_Menu.dart | 3 +++ lib/pages/CategoryMenuList/Pasta_Menu.dart | 3 +++ lib/pages/CategoryMenuList/Pizza_Menu.dart | 11 ++++++---- lib/pages/CategoryMenuList/Roll_Menu.dart | 3 +++ lib/pages/CategoryMenuList/Sandwich_Menu.dart | 5 ++++- lib/pages/CategoryMenuList/Snacks_Menu.dart | 3 +++ lib/pages/CategoryMenuList/Soup_Menu.dart | 3 +++ lib/pages/CategoryMenuList/Starter_Menu.dart | 3 +++ lib/pages/CategoryMenuList/Tandoori_Menu.dart | 3 +++ lib/pages/CategoryMenuList/flushbar.dart | 20 +++++++++++++++++++ 18 files changed, 81 insertions(+), 6 deletions(-) create mode 100644 lib/pages/CategoryMenuList/flushbar.dart diff --git a/lib/pages/CategoryMenuList/Accompaniment_Menu.dart b/lib/pages/CategoryMenuList/Accompaniment_Menu.dart index 1719497..88fb567 100644 --- a/lib/pages/CategoryMenuList/Accompaniment_Menu.dart +++ b/lib/pages/CategoryMenuList/Accompaniment_Menu.dart @@ -1,7 +1,9 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; import 'package:rcapp/pages/Cart.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -53,7 +55,8 @@ class _Accompaniment_MenuState extends State { class AccompanimentMenuListPage extends StatefulWidget { @override - _AccompanimentMenuListPageState createState() => _AccompanimentMenuListPageState(); + _AccompanimentMenuListPageState createState() => + _AccompanimentMenuListPageState(); } class _AccompanimentMenuListPageState extends State { @@ -187,6 +190,7 @@ class _AccompanimentMenuListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; @@ -230,4 +234,5 @@ class _AccompanimentMenuListPageState extends State { ); } } + } diff --git a/lib/pages/CategoryMenuList/All_Menu.dart b/lib/pages/CategoryMenuList/All_Menu.dart index 67a4c18..4f0f378 100644 --- a/lib/pages/CategoryMenuList/All_Menu.dart +++ b/lib/pages/CategoryMenuList/All_Menu.dart @@ -1,9 +1,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; +import 'package:flushbar/flushbar.dart'; class AllMenu extends StatefulWidget { @override @@ -186,6 +188,7 @@ class _AllMenuListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; @@ -229,4 +232,6 @@ class _AllMenuListPageState extends State { ); } } + + } diff --git a/lib/pages/CategoryMenuList/Biryani_MenuList.dart b/lib/pages/CategoryMenuList/Biryani_MenuList.dart index 8749875..0820cec 100644 --- a/lib/pages/CategoryMenuList/Biryani_MenuList.dart +++ b/lib/pages/CategoryMenuList/Biryani_MenuList.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -190,6 +192,7 @@ class _BiryaniMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; diff --git a/lib/pages/CategoryMenuList/Bread_Menu.dart b/lib/pages/CategoryMenuList/Bread_Menu.dart index 16a33da..b8ab838 100644 --- a/lib/pages/CategoryMenuList/Bread_Menu.dart +++ b/lib/pages/CategoryMenuList/Bread_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -190,6 +192,7 @@ class _BiryaniMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; diff --git a/lib/pages/CategoryMenuList/Breakfast_Menu.dart b/lib/pages/CategoryMenuList/Breakfast_Menu.dart index 1beef94..63d0e1e 100644 --- a/lib/pages/CategoryMenuList/Breakfast_Menu.dart +++ b/lib/pages/CategoryMenuList/Breakfast_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -190,6 +192,7 @@ class _BreadMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; diff --git a/lib/pages/CategoryMenuList/Burger_Menu.dart b/lib/pages/CategoryMenuList/Burger_Menu.dart index b74575d..8c84120 100644 --- a/lib/pages/CategoryMenuList/Burger_Menu.dart +++ b/lib/pages/CategoryMenuList/Burger_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -190,6 +192,7 @@ class _BurgerMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; diff --git a/lib/pages/CategoryMenuList/Chinese_Menu.dart b/lib/pages/CategoryMenuList/Chinese_Menu.dart index fbba4b3..de7b639 100644 --- a/lib/pages/CategoryMenuList/Chinese_Menu.dart +++ b/lib/pages/CategoryMenuList/Chinese_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -186,6 +188,7 @@ class _ChineseMenuListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; diff --git a/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart b/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart index 9be1ff2..ae0f704 100644 --- a/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart +++ b/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -190,6 +192,7 @@ class _FriedRiceAndNoodlesMenuListListPageState extends State BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; diff --git a/lib/pages/CategoryMenuList/Pasta_Menu.dart b/lib/pages/CategoryMenuList/Pasta_Menu.dart index e53ab70..74c6384 100644 --- a/lib/pages/CategoryMenuList/Pasta_Menu.dart +++ b/lib/pages/CategoryMenuList/Pasta_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -190,6 +192,7 @@ class _PaneerMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; diff --git a/lib/pages/CategoryMenuList/Pizza_Menu.dart b/lib/pages/CategoryMenuList/Pizza_Menu.dart index f82dcb8..45fe3df 100644 --- a/lib/pages/CategoryMenuList/Pizza_Menu.dart +++ b/lib/pages/CategoryMenuList/Pizza_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -190,10 +192,11 @@ class _PizzaMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { - addToCart(_menuList[index]); - setState(() { - checked = !checked; - }); + showFlushbar(context); + addToCart(_menuList[index]); + setState(() { + checked = !checked; + }); }, icon: Icon( Icons.add, diff --git a/lib/pages/CategoryMenuList/Roll_Menu.dart b/lib/pages/CategoryMenuList/Roll_Menu.dart index 0aad152..e5074f0 100644 --- a/lib/pages/CategoryMenuList/Roll_Menu.dart +++ b/lib/pages/CategoryMenuList/Roll_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -190,6 +192,7 @@ class _RollMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; diff --git a/lib/pages/CategoryMenuList/Sandwich_Menu.dart b/lib/pages/CategoryMenuList/Sandwich_Menu.dart index d44cfe6..e8a269e 100644 --- a/lib/pages/CategoryMenuList/Sandwich_Menu.dart +++ b/lib/pages/CategoryMenuList/Sandwich_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -190,7 +192,8 @@ class _SandwichMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { - addToCart(_menuList[index]); + showFlushbar(context); + addToCart(_menuList[index]); setState(() { checked = !checked; }); diff --git a/lib/pages/CategoryMenuList/Snacks_Menu.dart b/lib/pages/CategoryMenuList/Snacks_Menu.dart index deb0e7f..6038654 100644 --- a/lib/pages/CategoryMenuList/Snacks_Menu.dart +++ b/lib/pages/CategoryMenuList/Snacks_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -190,6 +192,7 @@ class _SnacksMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; diff --git a/lib/pages/CategoryMenuList/Soup_Menu.dart b/lib/pages/CategoryMenuList/Soup_Menu.dart index ee0abeb..710fb17 100644 --- a/lib/pages/CategoryMenuList/Soup_Menu.dart +++ b/lib/pages/CategoryMenuList/Soup_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -190,6 +192,7 @@ class _SoupMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; diff --git a/lib/pages/CategoryMenuList/Starter_Menu.dart b/lib/pages/CategoryMenuList/Starter_Menu.dart index 8aa075b..5c549c6 100644 --- a/lib/pages/CategoryMenuList/Starter_Menu.dart +++ b/lib/pages/CategoryMenuList/Starter_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -187,6 +189,7 @@ class _StarterMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; diff --git a/lib/pages/CategoryMenuList/Tandoori_Menu.dart b/lib/pages/CategoryMenuList/Tandoori_Menu.dart index 8cdb56c..378d04e 100644 --- a/lib/pages/CategoryMenuList/Tandoori_Menu.dart +++ b/lib/pages/CategoryMenuList/Tandoori_Menu.dart @@ -1,6 +1,8 @@ +import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; @@ -186,6 +188,7 @@ class _TandooriMenuListListPageState extends State { BoxDecoration(color: Colors.deepOrange), child: IconButton( onPressed: () { + showFlushbar(context); addToCart(_menuList[index]); setState(() { checked = !checked; diff --git a/lib/pages/CategoryMenuList/flushbar.dart b/lib/pages/CategoryMenuList/flushbar.dart new file mode 100644 index 0000000..c6f0a49 --- /dev/null +++ b/lib/pages/CategoryMenuList/flushbar.dart @@ -0,0 +1,20 @@ +import 'package:flushbar/flushbar.dart'; +import 'package:flutter/material.dart'; +void showFlushbar(context) { + Flushbar( + margin: EdgeInsets.all(10), + padding: EdgeInsets.all(10), + borderRadius: 8, + backgroundGradient: LinearGradient( + colors: [Colors.deepOrange, Colors.deepOrange], + stops: [0.6, 1]), + boxShadows: [ + BoxShadow(color: Colors.black45, offset: Offset(3, 3), blurRadius: 3), + ], + duration: Duration(seconds: 5), + dismissDirection: FlushbarDismissDirection.HORIZONTAL, + forwardAnimationCurve: Curves.fastLinearToSlowEaseIn, + title: "Item added to the cart", + message: "Tap on the top cart icon to view your item in the cart") + ..show(context); + } \ No newline at end of file From a352a6ac06b5c83714a2eaec99a6490f91d307e7 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Fri, 11 Sep 2020 17:55:40 +0530 Subject: [PATCH 09/29] added today's menu add functionality --- .vscode/settings.json | 3 + assets/41.jpg | Bin 0 -> 159498 bytes lib/CustomWidget/food_card.dart | 88 +++++-- lib/CustomWidget/foot_category.dart | 60 +++-- lib/main.dart | 4 + lib/models/user.dart | 7 + lib/pages/Cart.dart | 53 ++++- lib/pages/CategoryMenuList/All_Menu.dart | 2 - lib/pages/Food.dart | 244 ++++++++++++++------ lib/pages/Home.dart | 242 +++++++++++--------- lib/pages/Login.dart | 22 +- lib/pages/NavigationBar.dart | 11 +- lib/pages/uploadImage.dart | 279 +++++++++++++++++++++++ lib/pages/welcome.dart | 9 +- lib/services/auth.dart | 14 +- lib/services/database.dart | 133 +++++++---- pubspec.lock | 32 ++- pubspec.yaml | 12 +- 18 files changed, 931 insertions(+), 284 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 assets/41.jpg create mode 100644 lib/pages/uploadImage.dart diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..28a51d5 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "compile-hero.disable-compile-files-on-did-save-code": false +} \ No newline at end of file diff --git a/assets/41.jpg b/assets/41.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c0c7f45783d12c4d9eda4e30e32a9e08d8f18822 GIT binary patch literal 159498 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 NsEH=Nw2S|}{Xa$*^ke`4 literal 0 HcmV?d00001 diff --git a/lib/CustomWidget/food_card.dart b/lib/CustomWidget/food_card.dart index 0295d45..80637cd 100644 --- a/lib/CustomWidget/food_card.dart +++ b/lib/CustomWidget/food_card.dart @@ -1,4 +1,6 @@ import 'package:flutter/material.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; class FoodCard extends StatelessWidget { final String categoryName; @@ -7,30 +9,88 @@ class FoodCard extends StatelessWidget { FoodCard({this.categoryName, this.imagePath, this.itemprice}); + StoreData storeData = StoreData(); + + void addToCart(String item, int price) { + // String item = post.item; + // int price = post.price; + + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + } + @override Widget build(BuildContext context) { return Container( + width: 160, margin: EdgeInsets.only(right: 10.0), decoration: BoxDecoration( image: DecorationImage( - image: AssetImage('$imagePath'), + image: NetworkImage(imagePath), fit: BoxFit.cover, ), borderRadius: BorderRadius.circular(6)), - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - categoryName, - style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16.0, color: Colors.white), - ), - Text( - '₹' + '$itemprice', - style: TextStyle(color: Colors.white), - ) - ], + child: Container( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 60, + child: Text( + categoryName, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16.0, + color: Colors.white), + ), + ), + Text( + '₹' + '$itemprice', + style: TextStyle(color: Colors.white), + ) + ], + ), + InkWell( + onTap: () { + addToCart(categoryName, itemprice); + }, + child: Container( + height: 25, + width: 45, + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: Colors.black, width: 0.1), + borderRadius: BorderRadius.circular(5)), + child: Center( + child: Text( + 'Add', + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + ), + ) + ]), )); } } diff --git a/lib/CustomWidget/foot_category.dart b/lib/CustomWidget/foot_category.dart index 1b4d1cd..7b864f2 100644 --- a/lib/CustomWidget/foot_category.dart +++ b/lib/CustomWidget/foot_category.dart @@ -1,5 +1,10 @@ import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/storeData.dart'; import 'food_card.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; // DAta import '../data/category_data.dart'; @@ -7,24 +12,47 @@ import '../data/category_data.dart'; // Model import '../models/category_model.dart'; -class FoodCategory extends StatelessWidget { - final List _categories = categories; +class FoodCategory extends StatefulWidget { + @override + _FoodCategoryState createState() => _FoodCategoryState(); +} + +class _FoodCategoryState extends State { + // final List _categories = categories; + @override Widget build(BuildContext context) { - return Container( - height: 90.0, - child: ListView.builder( - scrollDirection: Axis.horizontal, - itemCount: _categories.length, - itemBuilder: (BuildContext context, int index) { - return FoodCard( - categoryName: _categories[index].categoryName, - imagePath: _categories[index].imagePath, - itemprice: _categories[index].itemprice, - ); - }, - ), - ); + final _menuList = Provider.of>(context) ?? []; + if (_menuList.length == 0) { + return Container( + height: 90, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitCircle( + color: Colors.deepOrange, + size: 45, + ), + SizedBox(height: 20), + Text('LOADING', style: TextStyle(fontWeight: FontWeight.w400)) + ]), + ); + } else { + return Container( + height: 100.0, + child: ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: _menuList.length, + itemBuilder: (BuildContext context, int index) { + return FoodCard( + categoryName: _menuList[index].category_menu, + imagePath: _menuList[index].imagepath, + itemprice: _menuList[index].price, + ); + }, + ), + ); + } } } diff --git a/lib/main.dart b/lib/main.dart index 11c90c1..b5c545d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -25,6 +25,7 @@ import 'package:rcapp/pages/admin_order_confirm.dart'; import 'package:rcapp/pages/booking_calendar.dart'; import 'package:rcapp/pages/confirmOrder.dart'; import 'package:rcapp/pages/orderdetails.dart'; +import 'package:rcapp/pages/uploadImage.dart'; import 'package:rcapp/pages/welcome.dart'; import 'package:rcapp/services/auth.dart'; import 'pages/wrapper.dart'; @@ -70,6 +71,9 @@ class MyApp extends StatelessWidget { "/startermenu" : (context) => StarterMenuList(), "/tandoorimenu" : (context) => Tandoori_MenuList(), "/accompanimentmenu" : (context) => Accompaniment_Menu(), + + //Routes for admin + "/uploadImage" : (context) => UploadImage() }, ), ); diff --git a/lib/models/user.dart b/lib/models/user.dart index bea9243..0be0696 100644 --- a/lib/models/user.dart +++ b/lib/models/user.dart @@ -146,6 +146,13 @@ class AccompanimentMenu { AccompanimentMenu({this.item, this.price, this.searchIndex}); } +class Today_Menu { + String imagepath = ''; + int price = 0; + String category_menu = ''; + + Today_Menu({this.imagepath, this.price, this.category_menu}); +} class Orders { List item; diff --git a/lib/pages/Cart.dart b/lib/pages/Cart.dart index 4e12ce6..abac0da 100644 --- a/lib/pages/Cart.dart +++ b/lib/pages/Cart.dart @@ -47,9 +47,13 @@ class _CartState extends State { Map qtyDetail = storeDataforCart.retrieveQtyDetails(); total = 0; + totalquantity = 0; setState(() { - qtyDetail.forEach((key, value) => qtyList.add(value)); + qtyDetail.forEach((key, value) { + totalquantity += value; + qtyList.add(value); + }); foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); }); } @@ -205,6 +209,7 @@ class _CartState extends State { ); }), ), + // BottomItemView(total: total, qty: totalquantity), ProceedAccess(address: address) ])); } @@ -398,3 +403,49 @@ class _ProceedAccessState extends State { } } } + +// class BottomItemView extends StatefulWidget { +// @override +// _BottomItemViewState createState() => _BottomItemViewState(); +// } + +class BottomItemView extends StatelessWidget { + int total; + int qty; + BottomItemView({this.total, this.qty}); + + @override + Widget build(BuildContext context) { + return Container( + width: double.maxFinite, + height: 54, + decoration: BoxDecoration(color: Colors.deepOrange), + child: Padding( + padding: EdgeInsets.symmetric(vertical: 0, horizontal: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + '${qty} ' + + ' item ' + + '|' + + ' ' + + '₹ ' + + '${total}', + style: + TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + InkWell( + onTap: (() => Navigator.pushNamed(context, '/cart')), + child: Text( + 'VIEW CART', + style: + TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + ) + ], + ), + ), + ); + } +} diff --git a/lib/pages/CategoryMenuList/All_Menu.dart b/lib/pages/CategoryMenuList/All_Menu.dart index 4f0f378..be8f103 100644 --- a/lib/pages/CategoryMenuList/All_Menu.dart +++ b/lib/pages/CategoryMenuList/All_Menu.dart @@ -232,6 +232,4 @@ class _AllMenuListPageState extends State { ); } } - - } diff --git a/lib/pages/Food.dart b/lib/pages/Food.dart index c482102..2f41ac8 100644 --- a/lib/pages/Food.dart +++ b/lib/pages/Food.dart @@ -1,8 +1,14 @@ + import 'package:flutter/material.dart'; import 'package:rcapp/CustomWidget/foot_category.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/Cart.dart'; +import 'package:rcapp/pages/NavigationBar.dart'; import 'package:rcapp/pages/Search.dart'; import 'package:rcapp/pages/storeData.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; + // var cartList = []; @@ -26,19 +32,29 @@ class _FoodState extends State { int total = 0; int qty = 0; + + // @override + // void initState() { + // // TODO: implement initState + // super.initState(); + // updateTotal(); + // } + List qtyList = List(); - void update() { - Map qtyCart = dataforCart.retrieveQtyDetails(); + void updateTotal() { Map foodDetail = dataforCart.retrieveFoodDetails(); + Map qtyDetail = dataforCart.retrieveQtyDetails(); + + total = 0; + qty = 0; setState(() { - qty = 0; - qtyCart.forEach((key, value) { + qtyDetail.forEach((key, value) { qty += value; qtyList.add(value); }); - foodDetail.forEach((k, v) => total = total + v * qtyCart[k]); + foodDetail.forEach((k, v) => total = total + v * qtyDetail[k]); }); } @@ -49,12 +65,15 @@ class _FoodState extends State { void initState() { // TODO: implement initState super.initState(); - update(); + updateTotal(); } @override Widget build(BuildContext context) { - return Scaffold( + updateTotal(); + return StreamProvider>.value( + value: DatabaseService().today_Menu, + child: Scaffold( appBar: AppBar( automaticallyImplyLeading: false, elevation: 10.0, @@ -93,7 +112,7 @@ class _FoodState extends State { ), SizedBox(height: 10.0), FoodCategory(), - SizedBox(height: 30.0), + SizedBox(height: 20.0), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -119,39 +138,41 @@ class _FoodState extends State { ), ], ), - ListPage(update: update), + ListPage(), ], ), ), SizedBox(height: 10.0), - Container( - width: double.maxFinite, - height: 54, - decoration: BoxDecoration(color: Colors.deepOrange), - child: Padding( - padding: EdgeInsets.symmetric(vertical: 0, horizontal: 20), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - '$qty ' + ' item ' + '|' + ' ' + '₹ ' + '$total', - style: TextStyle( - color: Colors.white, fontWeight: FontWeight.bold), - ), - InkWell( - onTap: (() => Navigator.pushNamed(context, '/cart')), - child: Text( - 'VIEW CART', - style: TextStyle( - color: Colors.white, fontWeight: FontWeight.bold), - ), - ) - ], - ), - ), - ) + BottomItemView(total: total, qty: qty) + // Container( + // width: double.maxFinite, + // height: 54, + // decoration: BoxDecoration(color: Colors.deepOrange), + // child: Padding( + // padding: EdgeInsets.symmetric(vertical: 0, horizontal: 20), + // child: Row( + // mainAxisAlignment: MainAxisAlignment.spaceBetween, + // children: [ + // Text( + // '$qty ' + ' item ' + '|' + ' ' + '₹ ' + '$total', + // style: TextStyle( + // color: Colors.white, fontWeight: FontWeight.bold), + // ), + // InkWell( + // onTap: (() => Navigator.pushNamed(context, '/cart')), + // child: Text( + // 'VIEW CART', + // style: TextStyle( + // color: Colors.white, fontWeight: FontWeight.bold), + // ), + // ) + // ], + // ), + // ), + // ) ]), - ); + ), + ); } } @@ -222,8 +243,6 @@ class _QuantityState extends State { class ListPage extends StatefulWidget { @override - final update; - ListPage({this.update}); _ListPageState createState() => _ListPageState(); } @@ -264,8 +283,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Main Course', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -283,8 +306,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Breads', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -302,8 +329,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Biryani', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -321,8 +352,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Tandoori', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -350,8 +385,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Chinese', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -369,8 +408,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Fried Rice and Noodles', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -388,8 +431,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Main Course', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -407,8 +454,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Pizza', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -436,8 +487,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Snacks', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -455,8 +510,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Sandwiches', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -474,8 +533,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Burgers', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -493,8 +556,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Pasta', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -522,8 +589,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Soup', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -541,8 +612,12 @@ class _ListPageState extends State { child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Accompaniment', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -555,19 +630,46 @@ class _ListPageState extends State { SizedBox(width: 20), InkWell( onTap: () { - Navigator.pushNamed(context, "/allmenu"); + Navigator.pushNamed(context, "/startermenu"); }, child: Container( height: 100.0, width: 100.0, - child: Center( - child: Text('test'), + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Starters', + style: TextStyle(color: Colors.white), + ), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/37.jpg"), + image: new AssetImage("assets/41.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/breakfastmenu"); + }, + child: Container( + height: 100.0, + width: 100.0, + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Breakfast', + style: TextStyle(color: Colors.white), + ), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/26.jpg"), fit: BoxFit.fill)), ), ), @@ -578,4 +680,4 @@ class _ListPageState extends State { ], )); } -} \ No newline at end of file +} diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index d273693..fe04f12 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -3,8 +3,12 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:carousel_pro/carousel_pro.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:rcapp/CustomWidget/foot_category.dart'; import 'package:rcapp/CustomWidget/todays_menucategory.dart'; +import 'package:rcapp/models/user.dart'; import 'package:rcapp/services/auth.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/services/database.dart'; class Home extends StatefulWidget { @override @@ -14,9 +18,9 @@ class Home extends StatefulWidget { class _HomeState extends State { final AuthService _auth = AuthService(); - bool areYouadmin; - String userName; - String userNumber; + bool areYouadmin = false; + String userName = ""; + String userNumber = ""; Future getAdmin() async { try { @@ -71,111 +75,131 @@ class _HomeState extends State { indicatorBgPadding: 10.0, )); - return Scaffold( - backgroundColor: Colors.white, - appBar: AppBar( - elevation: 10.0, - backgroundColor: Colors.deepOrange, - leading: Builder(builder: (BuildContext context) { - return IconButton( - icon: const Icon(Icons.account_circle), - onPressed: () { - Scaffold.of(context).openDrawer(); - }, - // tooltip: MaterialLocalizations.of(context).openAppDrawerTooltip, - ); - }), - title: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text('Home'), - ]), - ), - drawer: Drawer( - child: SafeArea( - child: Container( - height: 100, - child: LoadingData(auth: _auth), + return StreamProvider>.value( + value: DatabaseService().today_Menu, + child: Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + elevation: 10.0, + backgroundColor: Colors.deepOrange, + leading: Builder(builder: (BuildContext context) { + return IconButton( + icon: const Icon(Icons.account_circle), + onPressed: () { + Scaffold.of(context).openDrawer(); + }, + // tooltip: MaterialLocalizations.of(context).openAppDrawerTooltip, + ); + }), + title: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Home'), + ]), + ), + drawer: Drawer( + child: SafeArea( + child: Container( + height: 100, + child: LoadingData(auth: _auth), + ), ), ), - ), - body: new ListView( - padding: EdgeInsets.symmetric(horizontal: 10, vertical: 0), - children: [ - SizedBox(height: 4), - InkWell( - onTap: () {}, - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ + body: new ListView( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 0), + children: [ + SizedBox(height: 4), + InkWell( + onTap: () {}, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Rourkela Club Menu', + style: TextStyle( + color: Colors.deepOrange, + fontSize: 10, + decoration: TextDecoration.underline), + ), + IconButton( + onPressed: () {}, + icon: Icon(Icons.insert_drive_file), + ) + ]), + ), + imageCarousel, + SizedBox(height: 20.0), + Text( + " Notice Board", + style: TextStyle( + color: Colors.grey, + fontSize: 22, + fontWeight: FontWeight.bold, + ), + ), + SizedBox(height: 20.0), + HomeListPage(), + SizedBox(height: 10.0), + Row( + // mainAxisAlignment: MainAxisAlignment.start, + children: [ + Row(children: [ Text( - 'Rourkela Club Menu', + " Today's Menu", style: TextStyle( - color: Colors.deepOrange, - fontSize: 10, - decoration: TextDecoration.underline), + color: Colors.grey, + fontSize: 22, + fontWeight: FontWeight.bold, + ), ), - IconButton( - onPressed: () {}, - icon: Icon(Icons.picture_as_pdf), - ) + SizedBox(width: 130), + if (areYouadmin) ...[ + FlatButton( + onPressed: () { + Navigator.pushNamed(context, '/uploadImage'); + }, + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + child: Text( + 'Add To List', + style: TextStyle(color: Colors.black), + ), + color: Colors.orange, + ) + ] ]), - ), - imageCarousel, - SizedBox(height: 20.0), - Text( - " Notice Board", - style: TextStyle( - color: Colors.grey, - fontSize: 22, - fontWeight: FontWeight.bold, + // SizedBox(width: 130.0), + /* OutlineButton( + onPressed: () { + Navigator.pushNamed(context, '/address'); + }, + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + child: Text('View'), + color: Colors.amber, + ), */ + ], ), - ), - SizedBox(height: 20.0), - HomeListPage(), - SizedBox(height: 10.0), - Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Text( - " Today's Menu", - style: TextStyle( - color: Colors.grey, - fontSize: 22, - fontWeight: FontWeight.bold, - ), + SizedBox(height: 7.0), + FoodCategory(), + SizedBox(height: 20.0), + Text( + " Upcoming Events", + style: TextStyle( + color: Colors.grey, + fontSize: 22, + fontWeight: FontWeight.bold, ), - SizedBox(width: 130.0), - /* OutlineButton( - onPressed: () { - Navigator.pushNamed(context, '/address'); - }, - shape: new RoundedRectangleBorder( - borderRadius: new BorderRadius.circular(10.0)), - child: Text('View'), - color: Colors.amber, - ), */ - ], - ), - SizedBox(height: 7.0), - TodaysMenuCategory(), - SizedBox(height: 20.0), - Text( - " Upcoming Events", - style: TextStyle( - color: Colors.grey, - fontSize: 22, - fontWeight: FontWeight.bold, ), - ), - SizedBox(height: 10.0), - Container( - height: 150, - decoration: BoxDecoration(color: Colors.blue[50]), - child: Center(child: Text('No Events')), - ), - SizedBox(height: 50) - ], + SizedBox(height: 10.0), + Container( + height: 150, + decoration: BoxDecoration(color: Colors.blue[50]), + child: Center(child: Text('No Events')), + ), + SizedBox(height: 50) + ], + ), ), ); } @@ -235,7 +259,7 @@ class _HomeListPageState extends State { return Container( margin: EdgeInsets.symmetric(vertical: 1, horizontal: 0), padding: - EdgeInsets.symmetric(horizontal: 10, vertical: 2), + EdgeInsets.symmetric(horizontal: 10, vertical: 2), decoration: BoxDecoration( color: Colors.blue[50], borderRadius: BorderRadius.circular(8), @@ -304,7 +328,7 @@ class _AdminOptionState extends State { child: InkWell( onTap: () {}, child: Text( - 'Notification', + ' ', style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), ), ), @@ -416,6 +440,20 @@ class _LoadingDataState extends State { )), ), SizedBox(height: 10), + Container( + padding: EdgeInsets.fromLTRB(15, 0, 0, 10), + child: InkWell( + onTap: () { + Navigator.pushNamed(context, '/uploadImage'); + }, + child: Text( + "Upload Today's Menu", + style: TextStyle( + fontWeight: FontWeight.bold, fontSize: 25), + ), + ), + ), + SizedBox(height: 10), AdminOption(areYouadmin: snapshot.data["isAdmin"]), SizedBox(height: 10), Container( @@ -434,4 +472,4 @@ class _LoadingDataState extends State { } })); } -} \ No newline at end of file +} diff --git a/lib/pages/Login.dart b/lib/pages/Login.dart index bbac15b..37473b6 100644 --- a/lib/pages/Login.dart +++ b/lib/pages/Login.dart @@ -17,14 +17,12 @@ class _LoginState extends State { final _formKey = GlobalKey(); // test field state - String email = ''; + String number = ''; String password = ''; String error = ''; @override Widget build(BuildContext context) { - - Widget logincarousel = Container( padding: EdgeInsets.symmetric(horizontal: 10, vertical: 0), height: 180.0, @@ -66,15 +64,11 @@ class _LoginState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.start, children: [ - SizedBox( - height: 250.0, - width: 370.0, - child: logincarousel - ), + SizedBox(height: 250.0, width: 370.0, child: logincarousel), SizedBox(height: 18.0), TextFormField( decoration: InputDecoration( - hintText: 'Email', + hintText: 'Mobile NO.', fillColor: Colors.white, filled: true, enabledBorder: OutlineInputBorder( @@ -85,10 +79,11 @@ class _LoginState extends State { borderSide: BorderSide( color: Colors.deepOrange, width: 3.0), borderRadius: BorderRadius.circular(10))), - validator: (val) => - val.isEmpty ? 'Enter an email' : null, + validator: (val) => val.isEmpty + ? 'Enter Your Registered Mobile No.' + : null, onChanged: (val) { - setState(() => email = val); + setState(() => number = val); }), SizedBox(height: 20.0), TextFormField( @@ -128,8 +123,9 @@ class _LoginState extends State { ), onPressed: () async { if (_formKey.currentState.validate()) { + String numemail = number + "@gmail.com"; dynamic result = await _auth - .signInWithEmailAndPassword(email, password); + .signInWithEmailAndPassword(numemail, password); if (result == null) { setState(() => error = 'could not sign in with the credentials'); diff --git a/lib/pages/NavigationBar.dart b/lib/pages/NavigationBar.dart index 029e080..7e4b31a 100644 --- a/lib/pages/NavigationBar.dart +++ b/lib/pages/NavigationBar.dart @@ -27,22 +27,27 @@ class _NavigationBarState extends State { return Scaffold( body: _children[_currentIndex], bottomNavigationBar: BottomNavigationBar( + unselectedItemColor: Colors.black, + selectedItemColor: Colors.deepOrange, onTap: onTappedBar, currentIndex: _currentIndex, items: [ BottomNavigationBarItem( icon: Icon(Icons.home), title: Text('Home'), - backgroundColor: Colors.black, + backgroundColor: Colors.deepOrange, ), BottomNavigationBarItem( icon: Icon(Icons.fastfood), title: Text('Food'), - backgroundColor: Colors.black), + backgroundColor: Colors.deepOrange, + activeIcon: Icon(Icons.home, color: Colors.deepOrange), + ), BottomNavigationBarItem( icon: Icon(Icons.book), title: Text('Booking'), - backgroundColor: Colors.deepOrange), + backgroundColor: Colors.deepOrange, + ), ], ), ); diff --git a/lib/pages/uploadImage.dart b/lib/pages/uploadImage.dart new file mode 100644 index 0000000..c4d43d9 --- /dev/null +++ b/lib/pages/uploadImage.dart @@ -0,0 +1,279 @@ +import 'dart:io'; +import 'package:firebase_storage/firebase_storage.dart'; +import 'package:flutter/material.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:path/path.dart'; +import 'package:rcapp/services/database.dart'; + +class UploadImage extends StatefulWidget { + @override + _UploadImageState createState() => _UploadImageState(); +} + +class _UploadImageState extends State { + @override + Widget build(BuildContext context) { + return ImageCapture(); + } +} + +class ImageCapture extends StatefulWidget { + @override + _ImageCaptureState createState() => _ImageCaptureState(); +} + +class _ImageCaptureState extends State { + File _pickedImage; + + bool showOptions = false; + + String food = ''; + int price = 0; + + void _pickImage(ImageSource source) async { + final pickedImageFile = await ImagePicker.pickImage( + source: source, imageQuality: 100, maxWidth: 350, maxHeight: 280); + setState(() { + _pickedImage = pickedImageFile; + }); + } + + void _clear() { + setState(() => _pickedImage = null); + } + + void toggle() { + setState(() { + showOptions = !showOptions; + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Upload Image'), + ), + bottomNavigationBar: BottomAppBar( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + if (showOptions == true) ...[ + IconButton( + iconSize: 40, + color: Colors.deepOrange, + icon: Icon(Icons.photo_library), + onPressed: () => _pickImage(ImageSource.gallery), + ), + IconButton( + iconSize: 40, + color: Colors.deepOrange, + icon: Icon(Icons.camera), + onPressed: () => _pickImage(ImageSource.camera), + ) + ] + ], + ), + ), + body: SingleChildScrollView( + child: Container( + padding: EdgeInsets.fromLTRB(40, 10, 40, 0), + child: Column(children: [ + if (_pickedImage == null) ...[ + Center( + child: Container( + width: 320, + height: 250, + decoration: BoxDecoration( + border: + Border.all(color: Colors.deepOrange, width: 2.0), + borderRadius: BorderRadius.circular(10)), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + IconButton( + onPressed: () { + toggle(); + }, + iconSize: 40, + icon: Icon(Icons.image), + ), + SizedBox(height: 5), + Text('ADD AN IMAGE', + style: TextStyle( + fontWeight: FontWeight.w500, fontSize: 20)) + ], + ), + ), + ), + SizedBox(height: 10), + TextFormField( + decoration: InputDecoration( + hintText: 'Food Name', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.isEmpty ? 'Enter Food Name' : null, + onChanged: (val) { + setState(() => food = val); + }), + SizedBox(height: 10), + TextFormField( + decoration: InputDecoration( + hintText: 'Food Price', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.isEmpty ? 'Enter Food Price' : null, + onChanged: (val) { + setState(() => price = int.tryParse(val)); + }) + ], + if (_pickedImage != null) ...[ + Image.file(_pickedImage), + SizedBox(height: 10), + TextFormField( + decoration: InputDecoration( + hintText: 'Food Name', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.isEmpty ? 'Enter Food Name' : null, + onChanged: (val) { + setState(() => food = val); + }), + SizedBox(height: 10), + TextFormField( + decoration: InputDecoration( + hintText: 'Food Price', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.isEmpty ? 'Enter Food Price' : null, + onChanged: (val) { + setState(() => price = int.tryParse(val)); + }), + SizedBox(height: 10), + Uploader(file: _pickedImage, food: food, price: price), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + FlatButton( + color: Colors.deepOrange, + child: Icon(Icons.refresh), + onPressed: _clear, + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + ), + ]), + ] + ]), + ), + )); + } +} + +class Uploader extends StatefulWidget { + final food; + final price; + final file; + Uploader({this.file, this.food, this.price}); + @override + _UploaderState createState() => _UploaderState(); +} + +class _UploaderState extends State { + final FirebaseStorage _storage = + FirebaseStorage(storageBucket: 'gs://rcapp-de25c.appspot.com'); + // StorageUploadTask _uploadTask; + + var _uploadTask; + + final DatabaseService _todayMenuUploader = DatabaseService(); + + Future _startUpload(String food, int price) async { + try { + final ref = FirebaseStorage.instance + .ref() + .child('today_menu') + .child('${DateTime.now()}.jpg'); + + setState(() { + _uploadTask = ref.putFile(widget.file); + }); + + await ref.putFile(widget.file).onComplete; + + final url = await ref.getDownloadURL(); + + _todayMenuUploader.updateTodayMenu(food, price, url); + print(url); + } catch (e) { + print(e.toString()); + } + } + + @override + Widget build(BuildContext context) { + if (_uploadTask != null) { + return StreamBuilder( + stream: _uploadTask.events, + builder: (context, snapshot) { + var event = snapshot?.data?.snapshot; + double progressPercent = + event != null ? event.bytesTransferred / event.totalByteCount : 0; + + return Column(children: [ + if (_uploadTask.isComplete) Text("Uploaded To Database"), + LinearProgressIndicator(value: progressPercent), + Text('${(progressPercent * 100).toStringAsFixed(2)} %') + ]); + }, + ); + } else { + return FlatButton.icon( + onPressed: () { + _startUpload(widget.food, widget.price); + }, + icon: Icon(Icons.cloud_upload), + label: Text( + 'Save Data To List', + style: TextStyle(fontSize: 17), + ), + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + color: Colors.deepOrange, + ); + } + } +} diff --git a/lib/pages/welcome.dart b/lib/pages/welcome.dart index 47f713d..048aea7 100644 --- a/lib/pages/welcome.dart +++ b/lib/pages/welcome.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; - class welcome extends StatefulWidget { @override _welcomeState createState() => _welcomeState(); @@ -9,8 +8,8 @@ class welcome extends StatefulWidget { class _welcomeState extends State { @override Widget build(BuildContext context) { - Future.delayed(Duration(seconds: 3), () { - Navigator.pushNamed(context, '/wrapper'); + Future.delayed(Duration(seconds: 1), () { + Navigator.popAndPushNamed(context, '/wrapper'); }); return Scaffold( backgroundColor: Colors.deepOrange, @@ -18,7 +17,7 @@ class _welcomeState extends State { children: [ Image(image: AssetImage('assets/rclogo.png')), Center( - child:Text( + child: Text( 'ROURKELA CLUB', style: TextStyle( color: Colors.white, @@ -30,4 +29,4 @@ class _welcomeState extends State { ), ); } -} \ No newline at end of file +} diff --git a/lib/services/auth.dart b/lib/services/auth.dart index bea23b7..3c22dfa 100644 --- a/lib/services/auth.dart +++ b/lib/services/auth.dart @@ -55,17 +55,18 @@ class AuthService { } //register with email and pass - Future registerWithEmailAndPassword( - String name, bool isAuth, String number, String email, String password) async { + Future registerWithEmailAndPassword(String name, bool isAuth, String number, + String email, String password) async { try { + String numemail = number + "@gmail.com"; AuthResult result = await _auth.createUserWithEmailAndPassword( - email: (email), password: (password)); + email: (numemail), password: (password)); FirebaseUser user = result.user; - //create a new document for the user with the uid await DatabaseService(uid: user.uid).updateUserData('chowmin', 100, 10); - await DatabaseService(uid: user.uid).updateUserInfo('$name', isAuth, '$number'); + await DatabaseService(uid: user.uid) + .updateUserInfo('$name', isAuth, '$number'); var userkaabba = user.uid; var dat = await Firestore.instance @@ -76,7 +77,6 @@ class AuthService { isAdminglobal = dat; - return _userFromFirebaseUser(user); } catch (e) { print(e.toString()); @@ -93,4 +93,4 @@ class AuthService { return null; } } -} \ No newline at end of file +} diff --git a/lib/services/database.dart b/lib/services/database.dart index a1effaf..42cecef 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -8,53 +8,47 @@ class DatabaseService { //collection reference final CollectionReference foodCollection = - Firestore.instance.collection('food'); - + Firestore.instance.collection('food'); //collection reference to different categories of food from firestore final CollectionReference allmenufoods = - Firestore.instance.collection('All_Menu'); + Firestore.instance.collection('All_Menu'); final CollectionReference breakfastmenufoods = - Firestore.instance.collection('Breakfast'); + Firestore.instance.collection('Breakfast'); final CollectionReference chinesefoods = - Firestore.instance.collection('Chinese'); + Firestore.instance.collection('Chinese'); final CollectionReference biryanifoods = - Firestore.instance.collection('Biryani'); + Firestore.instance.collection('Biryani'); final CollectionReference starterfoods = - Firestore.instance.collection('Starter'); + Firestore.instance.collection('Starter'); final CollectionReference maincoursefoods = - Firestore.instance.collection('MainCourse'); + Firestore.instance.collection('MainCourse'); final CollectionReference breadsfoods = - Firestore.instance.collection('Breads'); + Firestore.instance.collection('Breads'); final CollectionReference tandoorifoods = - Firestore.instance.collection('Tandoori'); + Firestore.instance.collection('Tandoori'); final CollectionReference friedriceandnoodlesfoods = - Firestore.instance.collection('FriedRice_Noodles'); - final CollectionReference rollfoods = - Firestore.instance.collection('Roll'); - final CollectionReference pizzafoods = - Firestore.instance.collection('Pizza'); + Firestore.instance.collection('FriedRice_Noodles'); + final CollectionReference rollfoods = Firestore.instance.collection('Roll'); + final CollectionReference pizzafoods = Firestore.instance.collection('Pizza'); final CollectionReference snacksfoods = - Firestore.instance.collection('Snacks'); + Firestore.instance.collection('Snacks'); final CollectionReference sandwichfoods = - Firestore.instance.collection('Sandwich'); + Firestore.instance.collection('Sandwich'); final CollectionReference burgerfoods = - Firestore.instance.collection('Burger'); - final CollectionReference pastafoods = - Firestore.instance.collection('Pasta'); - final CollectionReference soupfoods = - Firestore.instance.collection('Soup'); + Firestore.instance.collection('Burger'); + final CollectionReference pastafoods = Firestore.instance.collection('Pasta'); + final CollectionReference soupfoods = Firestore.instance.collection('Soup'); final CollectionReference accompanimentfoods = - Firestore.instance.collection('Accompaniments'); - - - + Firestore.instance.collection('Accompaniments'); + final CollectionReference today_Menu_Data = + Firestore.instance.collection('Today_Menu_Data'); final CollectionReference userInfo = - Firestore.instance.collection('userInfo'); + Firestore.instance.collection('userInfo'); final CollectionReference confirmedOrders = - Firestore.instance.collection('confirmedOrders'); + Firestore.instance.collection('confirmedOrders'); Future updateUserInfo(String name, bool isAdmin, String number) async { return await userInfo.document(uid).setData({ @@ -77,6 +71,12 @@ class DatabaseService { return await userInfo.document(id).updateData({'address': address}); } + Future updateTodayMenu(String food, int price, String url) async { + return await today_Menu_Data + .document() + .setData({'category_menu': food, 'itemprice': price, 'imagepath': url}); + } + Future confirmOrderofUser(String id, String name, String number, String address, List item, List qty, int total, bool isConfirmed) async { return await confirmedOrders.document(number).setData({ @@ -97,8 +97,6 @@ class DatabaseService { return qn.documents; } - - //Database related to categories of food data retrieval form firebase List _menuListFromSnapshot(QuerySnapshot snapshot) { @@ -109,6 +107,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _maincoursemenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return MainCourseMenu( @@ -117,6 +116,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _chinesemenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return ChineseMenu( @@ -125,6 +125,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _startermenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return StarterMenu( @@ -133,6 +134,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _biryanimenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return BiryaniMenu( @@ -141,6 +143,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _paneermenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return PaneerMenu( @@ -149,6 +152,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _breadmenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return BreadMenu( @@ -157,6 +161,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _tandoorimenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return TandooriMenu( @@ -165,7 +170,9 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } - List _firedriceandnoodlesmenuListFromSnapshot(QuerySnapshot snapshot) { + + List _firedriceandnoodlesmenuListFromSnapshot( + QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return FriedRiceAndNoodlesMenu( item: doc.data["item"] ?? '', @@ -173,6 +180,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _rollmenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return RollMenu( @@ -181,6 +189,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _sandwichmenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return SandwichMenu( @@ -189,6 +198,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _pizzamenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return PizzaMenu( @@ -197,6 +207,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _snackmenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return SnacksMenu( @@ -205,6 +216,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _burgermenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return BurgerMenu( @@ -213,6 +225,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _pastamenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return PastaMenu( @@ -221,6 +234,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _soupmenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return SoupMenu( @@ -229,7 +243,9 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } - List _accompanimentmenuListFromSnapshot(QuerySnapshot snapshot) { + + List _accompanimentmenuListFromSnapshot( + QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return AccompanimentMenu( item: doc.data["item"] ?? '', @@ -237,6 +253,7 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } + List _breakfastmenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { return BreakfastMenu( @@ -245,9 +262,15 @@ class DatabaseService { searchIndex: doc.data["search_index"] ?? ''); }).toList(); } - - + List _todaymenuListFromSnapshot(QuerySnapshot snapshot) { + return snapshot.documents.map((doc) { + return Today_Menu( + imagepath: doc.data["imagepath"] ?? '', + price: doc.data["itemprice"] ?? 0, + category_menu: doc.data["category_menu"] ?? ''); + }).toList(); + } //Storing order data of customers as confirmedOrders in firesore_database @@ -259,73 +282,91 @@ class DatabaseService { name: doc.data["name"] ?? '', number: doc.data["number"] ?? '', address: doc.data["address"] ?? '', - total: doc.data["total"]?? 0, - isConfirmed: doc.data["isConfirmed"]?? false); + total: doc.data["total"] ?? 0, + isConfirmed: doc.data["isConfirmed"] ?? false); }).toList(); } - - //Stream provider for different categories of food in widgets Stream> get chinese { return chinesefoods.snapshots().map(_chinesemenuListFromSnapshot); } + Stream> get maincourse { return maincoursefoods.snapshots().map(_maincoursemenuListFromSnapshot); } + Stream> get biryani { return biryanifoods.snapshots().map(_biryanimenuListFromSnapshot); } + Stream> get starter { return starterfoods.snapshots().map(_startermenuListFromSnapshot); } + Stream> get allmenu { return starterfoods.snapshots().map(_menuListFromSnapshot); } + Stream> get breadmenu { return breadsfoods.snapshots().map(_breadmenuListFromSnapshot); } + Stream> get tandoorimenu { return tandoorifoods.snapshots().map(_tandoorimenuListFromSnapshot); } + Stream> get friedriceandmenu { - return friedriceandnoodlesfoods.snapshots().map(_firedriceandnoodlesmenuListFromSnapshot); + return friedriceandnoodlesfoods + .snapshots() + .map(_firedriceandnoodlesmenuListFromSnapshot); } + Stream> get rollmenu { return rollfoods.snapshots().map(_rollmenuListFromSnapshot); } + Stream> get sandwichmenu { return sandwichfoods.snapshots().map(_sandwichmenuListFromSnapshot); } + Stream> get pizzamenu { return pizzafoods.snapshots().map(_pizzamenuListFromSnapshot); } + Stream> get snackmenu { return snacksfoods.snapshots().map(_snackmenuListFromSnapshot); } + Stream> get burgermenu { return burgerfoods.snapshots().map(_burgermenuListFromSnapshot); } + Stream> get pastamenu { return pastafoods.snapshots().map(_pastamenuListFromSnapshot); } + Stream> get soupmenu { return soupfoods.snapshots().map(_soupmenuListFromSnapshot); } + Stream> get accompanimentmenu { - return accompanimentfoods.snapshots().map(_accompanimentmenuListFromSnapshot); + return accompanimentfoods + .snapshots() + .map(_accompanimentmenuListFromSnapshot); } + Stream> get breakfastmenu { return accompanimentfoods.snapshots().map(_breakfastmenuListFromSnapshot); } - - - + Stream> get today_Menu { + return today_Menu_Data.snapshots().map(_todaymenuListFromSnapshot); + } final CollectionReference menuorders = - Firestore.instance.collection("confirmedOrders"); + Firestore.instance.collection("confirmedOrders"); Stream> get orders { return menuorders.snapshots().map(_orderListFromSnapshot); @@ -338,6 +379,6 @@ Future menu; Future getPosts(numb) async { var firestore = Firestore.instance; QuerySnapshot qn = - await firestore.collection('${menucategories[numb]}').getDocuments(); + await firestore.collection('${menucategories[numb]}').getDocuments(); return qn.documents; -} \ No newline at end of file +} diff --git a/pubspec.lock b/pubspec.lock index 269eac2..35b84e2 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -156,7 +156,7 @@ packages: source: hosted version: "0.1.11" firebase_storage: - dependency: transitive + dependency: "direct main" description: name: firebase_storage url: "https://pub.dartlang.org" @@ -174,6 +174,13 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_full_pdf_viewer: + dependency: "direct main" + description: + name: flutter_full_pdf_viewer + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.6" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -198,6 +205,13 @@ packages: description: flutter source: sdk version: "0.0.0" + focused_menu: + dependency: "direct main" + description: + name: focused_menu + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" geolocator: dependency: "direct main" description: @@ -227,7 +241,7 @@ packages: source: hosted version: "1.0.4" http: - dependency: transitive + dependency: "direct main" description: name: http url: "https://pub.dartlang.org" @@ -240,6 +254,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.1.4" + image_picker: + dependency: "direct main" + description: + name: image_picker + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.7+7" + image_picker_platform_interface: + dependency: transitive + description: + name: image_picker_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" intl: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index a0fb7f4..aa633ac 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -33,6 +33,16 @@ dependencies: geolocator: ^5.3.2+2 flutter_spinkit: ^4.1.2 flushbar: ^1.10.4 + http: ^0.12.2 + flutter_full_pdf_viewer: ^1.0.6 + image_picker: ^0.6.7+7 + firebase_storage: ^3.0.7 + focused_menu: ^1.0.1 + + + + + @@ -44,8 +54,6 @@ dev_dependencies: flutter_test: sdk: flutter provider: ^3.1.0 - firebase_auth: ^0.16.1 - cloud_firestore: ^0.13.7 From 27e0739cf3db3d64c23ba44353fec3789e054af6 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Sat, 12 Sep 2020 02:02:26 +0530 Subject: [PATCH 10/29] added pdf downloader --- android/app/src/main/AndroidManifest.xml | 16 ++ lib/main.dart | 53 +++-- lib/pages/Home.dart | 67 ++++-- lib/pages/uploadPdf.dart | 270 +++++++++++++++++++++++ lib/services/database.dart | 8 + pubspec.lock | 91 ++++++++ pubspec.yaml | 6 + 7 files changed, 471 insertions(+), 40 deletions(-) create mode 100644 lib/pages/uploadPdf.dart diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index a28c09f..7fe9db4 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -5,10 +5,26 @@ In most cases you can leave this as-is, but you if you want to provide additional functionality it is fine to subclass or reimplement FlutterApplication and put your custom class here. --> + + + + + + + + + + runApp(MyApp()); +void main() async { + WidgetsFlutterBinding.ensureInitialized(); + await FlutterDownloader.initialize( + debug: true // optional: set false to disable printing logs to console + ); + + runApp(MyApp()); +} class MyApp extends StatelessWidget { @override @@ -51,31 +60,33 @@ class MyApp extends StatelessWidget { '/wrapper': (context) => Wrapper(), "/add_event": (context) => AddEventPage(), "/confirmOrder": (context) => ConfirmOrder(), - "/address" : (context) => AddressForm(), + "/address": (context) => AddressForm(), //routes for different categories of food - "/allmenu" : (context) => AllMenu(), - "/biryanimenu" : (context) => Biryani_MenuList(), - "/breadmenu" : (context) => Bread_MenuList(), - "/breakfastmenu" : (context) => Breakfast_MenuList(), - "/burgermenu" : (context) => Burger_MenuList(), - "/chinesemenu" : (context) => ChineseMenuList(), - "/friedriceandnoodlesmenu" : (context) => FriedRiceAndNoodles_MenuList(), - "/maincoursemenu" : (context) => MainCourse_MenuList(), - "/pastamenu" : (context) => Pasta_MenuList(), - "/pizzamenu" : (context) => Pizza_MenuList(), - "/rollmenu" : (context) => Roll_MenuList(), - "/sandwichmenu" : (context) => Sandwich_MenuList(), - "/snacksmenu" : (context) => Snacks_MenuList(), - "/soupmenu" : (context) => Soup_MenuList(), - "/startermenu" : (context) => StarterMenuList(), - "/tandoorimenu" : (context) => Tandoori_MenuList(), - "/accompanimentmenu" : (context) => Accompaniment_Menu(), + "/allmenu": (context) => AllMenu(), + "/biryanimenu": (context) => Biryani_MenuList(), + "/breadmenu": (context) => Bread_MenuList(), + "/breakfastmenu": (context) => Breakfast_MenuList(), + "/burgermenu": (context) => Burger_MenuList(), + "/chinesemenu": (context) => ChineseMenuList(), + "/friedriceandnoodlesmenu": (context) => + FriedRiceAndNoodles_MenuList(), + "/maincoursemenu": (context) => MainCourse_MenuList(), + "/pastamenu": (context) => Pasta_MenuList(), + "/pizzamenu": (context) => Pizza_MenuList(), + "/rollmenu": (context) => Roll_MenuList(), + "/sandwichmenu": (context) => Sandwich_MenuList(), + "/snacksmenu": (context) => Snacks_MenuList(), + "/soupmenu": (context) => Soup_MenuList(), + "/startermenu": (context) => StarterMenuList(), + "/tandoorimenu": (context) => Tandoori_MenuList(), + "/accompanimentmenu": (context) => Accompaniment_Menu(), //Routes for admin - "/uploadImage" : (context) => UploadImage() + "/uploadImage": (context) => UploadImage(), + "/uploadPdf": (context) => UploadPdf() }, ), ); } -} \ No newline at end of file +} diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index fe04f12..c3b3a97 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -2,13 +2,17 @@ import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:carousel_pro/carousel_pro.dart'; +import 'package:flutter_downloader/flutter_downloader.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:permission_handler/permission_handler.dart'; import 'package:rcapp/CustomWidget/foot_category.dart'; import 'package:rcapp/CustomWidget/todays_menucategory.dart'; import 'package:rcapp/models/user.dart'; import 'package:rcapp/services/auth.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; +import 'package:path/path.dart'; class Home extends StatefulWidget { @override @@ -129,19 +133,35 @@ class _HomeState extends State { ), imageCarousel, SizedBox(height: 20.0), - Text( - " Notice Board", - style: TextStyle( - color: Colors.grey, - fontSize: 22, - fontWeight: FontWeight.bold, + Row(children: [ + Text( + " Notice Board", + style: TextStyle( + color: Colors.grey, + fontSize: 22, + fontWeight: FontWeight.bold, + ), ), - ), + SizedBox(width: 130), + if (areYouadmin) ...[ + FlatButton( + onPressed: () { + Navigator.pushNamed(context, '/uploadPdf'); + }, + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + child: Text( + 'Add To List', + style: TextStyle(color: Colors.black), + ), + color: Colors.orange, + ) + ] + ]), SizedBox(height: 20.0), HomeListPage(), SizedBox(height: 10.0), Row( - // mainAxisAlignment: MainAxisAlignment.start, children: [ Row(children: [ Text( @@ -168,16 +188,6 @@ class _HomeState extends State { ) ] ]), - // SizedBox(width: 130.0), - /* OutlineButton( - onPressed: () { - Navigator.pushNamed(context, '/address'); - }, - shape: new RoundedRectangleBorder( - borderRadius: new BorderRadius.circular(10.0)), - child: Text('View'), - color: Colors.amber, - ), */ ], ), SizedBox(height: 7.0), @@ -287,7 +297,26 @@ class _HomeListPageState extends State { ) ]), IconButton( - onPressed: () {}, + onPressed: () async { + final status = + await Permission.storage.request(); + + if (status.isGranted) { + final externalDir = + await getExternalStorageDirectory(); + + final taskId = + await FlutterDownloader.enqueue( + url: + '${snapshot.data[index].data["downloadLink"]}', + savedDir: externalDir.path, + fileName: + '${snapshot.data[index].data["title"]}', + showNotification: true, + openFileFromNotification: true, + ); + } + }, icon: Icon(Icons.picture_as_pdf), ) ]), diff --git a/lib/pages/uploadPdf.dart b/lib/pages/uploadPdf.dart new file mode 100644 index 0000000..d5b734b --- /dev/null +++ b/lib/pages/uploadPdf.dart @@ -0,0 +1,270 @@ +import 'dart:io'; +import 'package:file_picker/file_picker.dart'; +import 'package:firebase_storage/firebase_storage.dart'; +import 'package:flutter/material.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:path/path.dart'; +import 'package:rcapp/services/database.dart'; + +class UploadPdf extends StatefulWidget { + @override + _UploadPdfState createState() => _UploadPdfState(); +} + +class _UploadPdfState extends State { + @override + Widget build(BuildContext context) { + return PdfCapture(); + } +} + +class PdfCapture extends StatefulWidget { + @override + _PdfCaptureState createState() => _PdfCaptureState(); +} + +class _PdfCaptureState extends State { + File _pickedPdf; + + bool showOptions = false; + + String title = ''; + String subtitle = ''; + + void _pickPdf() async { + File pickedPdfFile = await FilePicker.getFile(type: FileType.custom, allowedExtensions: ['pdf']); + setState(() { + _pickedPdf = pickedPdfFile; + }); + } + + void _clear() { + setState(() => _pickedPdf = null); + } + + void toggle() { + setState(() { + showOptions = !showOptions; + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Upload Pdf'), + ), + bottomNavigationBar: BottomAppBar( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + if (showOptions == true) ...[ + IconButton( + iconSize: 40, + color: Colors.deepOrange, + icon: Icon(Icons.photo_library), + onPressed: () => _pickPdf(), + ), + ] + ], + ), + ), + body: SingleChildScrollView( + child: Container( + padding: EdgeInsets.fromLTRB(40, 10, 40, 0), + child: Column(children: [ + if (_pickedPdf == null) ...[ + Center( + child: Container( + width: 320, + height: 250, + decoration: BoxDecoration( + border: + Border.all(color: Colors.deepOrange, width: 2.0), + borderRadius: BorderRadius.circular(10)), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + IconButton( + onPressed: () { + toggle(); + }, + iconSize: 40, + icon: Icon(Icons.file_upload), + ), + SizedBox(height: 5), + Text('Click to Add Pdf', + style: TextStyle( + fontWeight: FontWeight.w500, fontSize: 20)) + ], + ), + ), + ), + SizedBox(height: 10), + TextFormField( + decoration: InputDecoration( + hintText: 'Title', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.isEmpty ? 'Enter Title' : null, + onChanged: (val) { + setState(() => title = val); + }), + SizedBox(height: 10), + TextFormField( + decoration: InputDecoration( + hintText: 'Sub-Title', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.isEmpty ? 'Enter subtitle' : null, + onChanged: (val) { + setState(() => subtitle = val); + }) + ], + if (_pickedPdf != null) ...[ + // Image.file(_pickedPdf), + SizedBox(height: 10), + TextFormField( + decoration: InputDecoration( + hintText: 'Title', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.isEmpty ? 'Enter Title' : null, + onChanged: (val) { + setState(() => title = val); + }), + SizedBox(height: 10), + TextFormField( + decoration: InputDecoration( + hintText: 'Sub-Title', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.isEmpty ? 'Enter Subtitle' : null, + onChanged: (val) { + setState(() => subtitle = val); + }), + SizedBox(height: 10), + Uploader(file: _pickedPdf, title: title, subtitle: subtitle), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + FlatButton( + color: Colors.deepOrange, + child: Icon(Icons.refresh), + onPressed: _clear, + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + ), + ]), + ] + ]), + ), + )); + } +} + +class Uploader extends StatefulWidget { + final title; + final subtitle; + final file; + Uploader({this.file, this.title, this.subtitle}); + @override + _UploaderState createState() => _UploaderState(); +} + +class _UploaderState extends State { + + var _uploadTask; + + final DatabaseService _pdfUploader = DatabaseService(); + + Future _startUpload(String title, String subtitle) async { + try { + final ref = FirebaseStorage.instance + .ref() + .child('pdf_store') + .child('${DateTime.now()}.pdf'); + + setState(() { + _uploadTask = ref.putFile(widget.file); + }); + + await ref.putFile(widget.file).onComplete; + + final url = await ref.getDownloadURL(); + + _pdfUploader.updatePdf(title, subtitle, url); + print(url); + } catch (e) { + print(e.toString()); + } + } + + @override + Widget build(BuildContext context) { + if (_uploadTask != null) { + return StreamBuilder( + stream: _uploadTask.events, + builder: (context, snapshot) { + var event = snapshot?.data?.snapshot; + double progressPercent = + event != null ? event.bytesTransferred / event.totalByteCount : 0; + + return Column(children: [ + if (_uploadTask.isComplete) Text("Uploaded To Database"), + LinearProgressIndicator(value: progressPercent), + Text('${(progressPercent * 100).toStringAsFixed(2)} %') + ]); + }, + ); + } else { + return FlatButton.icon( + onPressed: () { + _startUpload(widget.title, widget.subtitle); + }, + icon: Icon(Icons.cloud_upload), + label: Text( + 'Save Data To List', + style: TextStyle(fontSize: 17), + ), + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + color: Colors.deepOrange, + ); + } + } +} diff --git a/lib/services/database.dart b/lib/services/database.dart index 42cecef..0d3bcd8 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -43,6 +43,8 @@ class DatabaseService { Firestore.instance.collection('Accompaniments'); final CollectionReference today_Menu_Data = Firestore.instance.collection('Today_Menu_Data'); + final CollectionReference notice_pdfData = + Firestore.instance.collection('noticeBoard'); final CollectionReference userInfo = Firestore.instance.collection('userInfo'); @@ -77,6 +79,12 @@ class DatabaseService { .setData({'category_menu': food, 'itemprice': price, 'imagepath': url}); } + Future updatePdf(String title, String subtitle, String url) async { + return await notice_pdfData + .document() + .setData({'title': title, 'subtitle': subtitle, 'downloadLink': url}); + } + Future confirmOrderofUser(String id, String name, String number, String address, List item, List qty, int total, bool isConfirmed) async { return await confirmedOrders.document(number).setData({ diff --git a/pubspec.lock b/pubspec.lock index 35b84e2..30c7081 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -99,6 +99,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.0" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "5.2.1" + file_picker: + dependency: "direct main" + description: + name: file_picker + url: "https://pub.dartlang.org" + source: hosted + version: "1.13.3" + file_picker_platform_interface: + dependency: transitive + description: + name: file_picker_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.1" firebase: dependency: transitive description: @@ -174,6 +195,13 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_downloader: + dependency: "direct main" + description: + name: flutter_downloader + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.0" flutter_full_pdf_viewer: dependency: "direct main" description: @@ -310,6 +338,34 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.7.0" + path_provider: + dependency: "direct main" + description: + name: path_provider + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.14" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+2" + path_provider_macos: + dependency: transitive + description: + name: path_provider_macos + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.4+3" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" pedantic: dependency: transitive description: @@ -317,6 +373,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.9.0" + permission_handler: + dependency: "direct main" + description: + name: permission_handler + url: "https://pub.dartlang.org" + source: hosted + version: "5.0.1+1" + permission_handler_platform_interface: + dependency: transitive + description: + name: permission_handler_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + platform: + dependency: transitive + description: + name: platform + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.1" plugin_platform_interface: dependency: transitive description: @@ -324,6 +401,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.2" + process: + dependency: transitive + description: + name: process + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.13" provider: dependency: "direct dev" description: @@ -420,6 +504,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.8" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.0" sdks: dart: ">=2.9.0-14.0.dev <3.0.0" flutter: ">=1.16.3 <2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index aa633ac..0934431 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -38,6 +38,12 @@ dependencies: image_picker: ^0.6.7+7 firebase_storage: ^3.0.7 focused_menu: ^1.0.1 + file_picker: ^1.13.3 + permission_handler: ^5.0.1+1 + flutter_downloader: ^1.5.0 + path_provider: ^1.6.14 + + From 3d615696eb39222db7c4f81a340d06695def464f Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Sat, 12 Sep 2020 20:55:08 +0530 Subject: [PATCH 11/29] added delete option for today's menu and added previous order page --- lib/CustomWidget/food_card.dart | 149 ++++++++++----- lib/CustomWidget/foot_category.dart | 18 +- lib/main.dart | 2 + lib/models/user.dart | 13 ++ lib/pages/Cart.dart | 1 + lib/pages/Home.dart | 4 +- lib/pages/admin_order_confirm.dart | 275 ++-------------------------- lib/pages/confirmOrder.dart | 2 +- lib/pages/previousOrder.dart | 192 +++++++++++++++++++ lib/services/database.dart | 7 +- 10 files changed, 349 insertions(+), 314 deletions(-) create mode 100644 lib/pages/previousOrder.dart diff --git a/lib/CustomWidget/food_card.dart b/lib/CustomWidget/food_card.dart index 80637cd..a267ac8 100644 --- a/lib/CustomWidget/food_card.dart +++ b/lib/CustomWidget/food_card.dart @@ -1,5 +1,9 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; +import 'package:focused_menu/focused_menu.dart'; +import 'package:focused_menu/modals.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; class FoodCard extends StatelessWidget { @@ -11,10 +15,20 @@ class FoodCard extends StatelessWidget { StoreData storeData = StoreData(); + void deleteMenu() { + var menu = Firestore.instance + .collection('Today_Menu_Data') + .where('category_menu', isEqualTo: categoryName); + menu.getDocuments().then((QuerySnapshot snapshot) { + snapshot.documents.forEach((element) { + element.reference.delete(); + }); + }); + } + void addToCart(String item, int price) { // String item = post.item; // int price = post.price; - Map qtyDetail = storeData.retrieveQtyDetails(); @@ -35,62 +49,99 @@ class FoodCard extends StatelessWidget { @override Widget build(BuildContext context) { - return Container( - - width: 160, - margin: EdgeInsets.only(right: 10.0), - decoration: BoxDecoration( - image: DecorationImage( - image: NetworkImage(imagePath), - fit: BoxFit.cover, - ), - borderRadius: BorderRadius.circular(6)), - child: Container( - padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5), - child: Row( + return FocusedMenuHolder( + onPressed: () {}, + menuItems: [ + FocusedMenuItem( + title: Text('Delete the item'), + onPressed: () { + deleteMenu(); + }) + ], + child: Container( + width: 160, + margin: EdgeInsets.only(right: 10.0), + decoration: BoxDecoration( + image: DecorationImage( + image: NetworkImage(imagePath), + fit: BoxFit.cover, + ), + borderRadius: BorderRadius.circular(6)), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5), + child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.end, children: [ - Column( + Row( mainAxisAlignment: MainAxisAlignment.end, - crossAxisAlignment: CrossAxisAlignment.start, children: [ - Container( - width: 60, - child: Text( - categoryName, - style: TextStyle( - fontWeight: FontWeight.bold, - fontSize: 16.0, - color: Colors.white), + InkWell( + onTap: () { + deleteMenu(); + }, + child: Container( + decoration: BoxDecoration( + color: Colors.deepOrange, + borderRadius: BorderRadius.circular(5)), + child: Icon( + Icons.delete_outline, + color: Colors.white, + ), ), - ), - Text( - '₹' + '$itemprice', - style: TextStyle(color: Colors.white), ) ], ), - InkWell( - onTap: () { - addToCart(categoryName, itemprice); - }, - child: Container( - height: 25, - width: 45, - decoration: BoxDecoration( - color: Colors.white, - border: Border.all(color: Colors.black, width: 0.1), - borderRadius: BorderRadius.circular(5)), - child: Center( - child: Text( - 'Add', - style: TextStyle(fontWeight: FontWeight.bold), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 60, + child: Text( + categoryName, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16.0, + color: Colors.white), + ), + ), + Text( + '₹' + '$itemprice', + style: TextStyle(color: Colors.white), + ) + ], ), - ), - ), - ) - ]), - )); + InkWell( + onTap: () { + addToCart(categoryName, itemprice); + showFlushbar(context); + }, + child: Container( + height: 25, + width: 45, + decoration: BoxDecoration( + color: Colors.deepOrange, + border: + Border.all(color: Colors.black, width: 0.1), + borderRadius: BorderRadius.circular(5)), + child: Center( + child: Text( + 'Add', + style: TextStyle( + fontWeight: FontWeight.w400, + color: Colors.white), + ), + ), + ), + ) + ]) + ], + ), + )), + ); } } diff --git a/lib/CustomWidget/foot_category.dart b/lib/CustomWidget/foot_category.dart index 7b864f2..c03329e 100644 --- a/lib/CustomWidget/foot_category.dart +++ b/lib/CustomWidget/foot_category.dart @@ -1,5 +1,8 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:focused_menu/focused_menu.dart'; +import 'package:focused_menu/modals.dart'; import 'package:rcapp/models/user.dart'; import 'package:rcapp/pages/storeData.dart'; import 'food_card.dart'; @@ -20,6 +23,7 @@ class FoodCategory extends StatefulWidget { class _FoodCategoryState extends State { // final List _categories = categories; + @override Widget build(BuildContext context) { @@ -45,10 +49,16 @@ class _FoodCategoryState extends State { scrollDirection: Axis.horizontal, itemCount: _menuList.length, itemBuilder: (BuildContext context, int index) { - return FoodCard( - categoryName: _menuList[index].category_menu, - imagePath: _menuList[index].imagepath, - itemprice: _menuList[index].price, + return FocusedMenuHolder( + onPressed: () {}, + menuItems: [ + FocusedMenuItem(title: Text('delete'), onPressed: (){}) + ], + child: FoodCard( + categoryName: _menuList[index].category_menu, + imagePath: _menuList[index].imagepath, + itemprice: _menuList[index].price, + ), ); }, ), diff --git a/lib/main.dart b/lib/main.dart index 3b51ab8..68d1a76 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -26,6 +26,7 @@ import 'package:rcapp/pages/admin_order_confirm.dart'; import 'package:rcapp/pages/booking_calendar.dart'; import 'package:rcapp/pages/confirmOrder.dart'; import 'package:rcapp/pages/orderdetails.dart'; +import 'package:rcapp/pages/previousOrder.dart'; import 'package:rcapp/pages/uploadImage.dart'; import 'package:rcapp/pages/uploadPdf.dart'; import 'package:rcapp/pages/welcome.dart'; @@ -61,6 +62,7 @@ class MyApp extends StatelessWidget { "/add_event": (context) => AddEventPage(), "/confirmOrder": (context) => ConfirmOrder(), "/address": (context) => AddressForm(), + "/previousOrder": (context) => PreviousOrder(), //routes for different categories of food "/allmenu": (context) => AllMenu(), diff --git a/lib/models/user.dart b/lib/models/user.dart index 0be0696..ceb5898 100644 --- a/lib/models/user.dart +++ b/lib/models/user.dart @@ -165,4 +165,17 @@ class Orders { Orders( {this.item, this.qty, this.name, this.number, this.address, this.total, this.isConfirmed}); +} + +class PreviousOrders { + List item; + List qty; + String name; + String number; + String address; + int total; + bool isConfirmed; + + PreviousOrders( + {this.item, this.qty, this.name, this.number, this.address, this.total, this.isConfirmed}); } \ No newline at end of file diff --git a/lib/pages/Cart.dart b/lib/pages/Cart.dart index abac0da..883a3fc 100644 --- a/lib/pages/Cart.dart +++ b/lib/pages/Cart.dart @@ -46,6 +46,7 @@ class _CartState extends State { Map foodDetail = storeDataforCart.retrieveFoodDetails(); Map qtyDetail = storeDataforCart.retrieveQtyDetails(); + total = 0; totalquantity = 0; diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index c3b3a97..cfc6291 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -461,7 +461,9 @@ class _LoadingDataState extends State { Container( padding: EdgeInsets.fromLTRB(15, 0, 0, 10), child: InkWell( - onTap: () {}, + onTap: () { + Navigator.pushNamed(context, '/previousOrder'); + }, child: Text( 'Previous Orders', style: TextStyle( diff --git a/lib/pages/admin_order_confirm.dart b/lib/pages/admin_order_confirm.dart index 50ec54e..40f7517 100644 --- a/lib/pages/admin_order_confirm.dart +++ b/lib/pages/admin_order_confirm.dart @@ -33,238 +33,6 @@ class _AdminOrderState extends State { } } -// class OrderList extends StatefulWidget { -// @override -// _OrderListState createState() => _OrderListState(); -// } - -// class _OrderListState extends State { -// Future _orderdata; - -// Future getOrders() async { -// var firestore = Firestore.instance; -// QuerySnapshot qn = -// await firestore.collection("confirmedOrders").getDocuments(); -// return qn.documents; -// } - -// @override -// void initState() { -// // TODO: implement initState -// super.initState(); -// _orderdata = getOrders(); -// } - -// changeConfirmation(bool isConfirmed, String number) async { -// try { -// // .getDocuments(); - -// if (isConfirmed) { -// await Firestore.instance -// .collection("confirmedOrders") -// .document(number) -// .delete(); -// } else { -// await Firestore.instance -// .collection("confirmedOrders") -// .document(number) -// .updateData({"isConfirmed": !isConfirmed}); -// } -// Navigator.pushReplacementNamed(context, '/adminorder'); -// } catch (e) { -// print(e.toString()); -// } -// } - -// @override -// Widget build(BuildContext context) { -// int orderNo = 111; -// return FutureBuilder( -// future: _orderdata, -// builder: (_, snapshot) { -// if (snapshot.connectionState == ConnectionState.waiting) { -// return Container( -// height: 600, -// child: Center( -// child: Column( -// mainAxisAlignment: MainAxisAlignment.center, -// children: [ -// Center( -// child: SpinKitCubeGrid( -// color: Colors.deepOrange, -// size: 38, -// ), -// ), -// Center( -// child: Text('LOADING', -// style: TextStyle(fontWeight: FontWeight.w500)), -// ) -// ]), -// ), -// ); -// } else if (snapshot.connectionState == ConnectionState.done) { -// return ListView.builder( -// shrinkWrap: true, -// itemCount: snapshot.data.length, -// itemBuilder: (_, index) { -// orderNo += index; -// var itemsName = snapshot.data[index].data["item"]; -// return ListTile( -// contentPadding: EdgeInsets.all(10), -// title: Column( -// children: [ -// SizedBox(height: 20.0), -// Container( -// alignment: Alignment.topLeft, -// height: 420.0, -// width: 370.0, -// margin: new EdgeInsets.only(left: 20.0, right: 20.0), -// decoration: BoxDecoration( -// color: Colors.tealAccent, -// borderRadius: BorderRadius.all(Radius.circular(20.0)), -// ), -// child: Column( -// children: [ -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Text( -// "Order Number : " + "$orderNo", -// style: TextStyle( -// color: Colors.deepOrange, fontSize: 22), -// ), -// Text("Aug 4th 2020"), -// ], -// ), -// Column( -// children: [ -// Row( -// mainAxisAlignment: -// MainAxisAlignment.spaceBetween, -// children: [ -// Padding( -// padding: const EdgeInsets.all(10), -// child: Text( -// "Name : " + -// "${snapshot.data[index].data["name"]}", -// style: TextStyle( -// color: Colors.black, fontSize: 15), -// ), -// ), -// ], -// ), -// Row( -// mainAxisAlignment: -// MainAxisAlignment.spaceBetween, -// children: [ -// Padding( -// padding: const EdgeInsets.all(10), -// child: Text( -// "Personal No. : " + -// "${snapshot.data[index].data["number"]}", -// style: TextStyle( -// color: Colors.black, fontSize: 15), -// ), -// ), -// ], -// ), -// Row( -// mainAxisAlignment: -// MainAxisAlignment.spaceBetween, -// children: [ -// Padding( -// padding: const EdgeInsets.all(10), -// child: Text( -// "Address : " + -// "${snapshot.data[index].data["address"]}", -// style: TextStyle( -// color: Colors.black, fontSize: 15), -// ), -// ), -// ], -// ), -// ], -// ), -// SizedBox(height: 30), -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceAround, -// children: [ -// Padding( -// padding: const EdgeInsets.all(10), -// child: Text( -// "Cost : ₹" + -// "${snapshot.data[index].data["item"]}", -// style: TextStyle( -// color: Colors.black, fontSize: 22), -// ), -// ), -// FlatButton( -// onPressed: () { -// Navigator.pushNamed( -// context, '/orderdetails'); -// }, -// shape: new RoundedRectangleBorder( -// borderRadius: -// new BorderRadius.circular(10.0)), -// child: Text('View'), -// color: Colors.white, -// ), -// FlatButton( -// onPressed: () { -// changeConfirmation( -// snapshot -// .data[index].data["isConfirmed"], -// snapshot.data[index].data["number"]); -// }, -// shape: new RoundedRectangleBorder( -// borderRadius: -// new BorderRadius.circular(10.0)), -// child: Text( -// snapshot.data[index].data["isConfirmed"] -// ? 'Confirm' -// : 'Delete'), -// color: Colors.amber, -// ), -// ], -// ), -// ], -// ), -// ), -// ListView.builder( -// itemCount: itemsName.length, -// itemBuilder: (_, counter) { -// return ListTile(title: Text('${itemsName[counter]}')); -// }, -// ) -// ], -// ), -// ); -// }, -// ); -// } else if (snapshot.connectionState == ConnectionState.none) { -// return Column( -// mainAxisAlignment: MainAxisAlignment.center, -// children: [ -// Center( -// child: Icon( -// Icons.assessment, -// size: 50, -// ), -// ), -// Center( -// child: Text( -// 'No orders left...', -// style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), -// ), -// ) -// ], -// ); -// } -// }); -// // ); -// } -// } - class NewOrderList extends StatefulWidget { @override NewOrderListState createState() => NewOrderListState(); @@ -273,8 +41,6 @@ class NewOrderList extends StatefulWidget { class NewOrderListState extends State { changeConfirmation(bool isConfirmed, String number) async { try { - // .getDocuments(); - if (isConfirmed) { await Firestore.instance .collection("confirmedOrders") @@ -294,13 +60,13 @@ class NewOrderListState extends State { @override Widget build(BuildContext context) { + int orderNo = 110; final _orderList = Provider.of>(context) ?? []; return ListView.builder( shrinkWrap: true, itemCount: _orderList.length, itemBuilder: (_, index) { - // orderNo += index; - // var itemsName = _orderList[index].item; + orderNo += index; return ListTile( contentPadding: EdgeInsets.all(10), title: Column( @@ -321,9 +87,9 @@ class NewOrderListState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - "Order Number : " + "111", + "Order Number : " + "$orderNo", style: - TextStyle(color: Colors.deepOrange, fontSize: 22), + TextStyle(color: Colors.deepOrange, fontSize: 22), ), Text("Aug 4th 2020"), ], @@ -336,8 +102,7 @@ class NewOrderListState extends State { Padding( padding: const EdgeInsets.all(10), child: Text( - "Name : " + - "${_orderList[index].name}", + "Name : " + "${_orderList[index].name}", style: TextStyle( color: Colors.black, fontSize: 15), ), @@ -361,14 +126,13 @@ class NewOrderListState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Flexible( - child: Text( - "Address : " + - "${_orderList[index].address}", - style: TextStyle( - color: Colors.black, fontSize: 15), - ), + Flexible( + child: Text( + "Address : " + "${_orderList[index].address}", + style: TextStyle( + color: Colors.black, fontSize: 15), ), + ), ], ), ], @@ -379,7 +143,11 @@ class NewOrderListState extends State { children: [ Flexible( child: Text( - "Cost : ₹" + "${_orderList[index].total} " + "${_orderList[index].item}" + " : " +"${_orderList[index].qty}", + "Cost : ₹" + + "${_orderList[index].total} " + + "${_orderList[index].item}" + + " : " + + "${_orderList[index].qty}", style: TextStyle(color: Colors.black, fontSize: 22), ), ), @@ -394,8 +162,7 @@ class NewOrderListState extends State { ), FlatButton( onPressed: () { - changeConfirmation( - _orderList[index].isConfirmed, + changeConfirmation(_orderList[index].isConfirmed, _orderList[index].number); }, shape: new RoundedRectangleBorder( @@ -410,16 +177,10 @@ class NewOrderListState extends State { ], ), ), - // ListView.builder( - // itemCount: itemsName.length, - // itemBuilder: (_, counter) { - // return ListTile(title: Text('${itemsName[counter]}')); - // }, - // ) ], ), ); }, ); } -} \ No newline at end of file +} diff --git a/lib/pages/confirmOrder.dart b/lib/pages/confirmOrder.dart index ff65f1f..ce0a72a 100644 --- a/lib/pages/confirmOrder.dart +++ b/lib/pages/confirmOrder.dart @@ -23,7 +23,7 @@ class _ConfirmOrderState extends State { Map foodqtyDetail = storeData.retrieveQtyDetails(); setState(() { - foodDetail.forEach((k, v) => total = total + v); + foodDetail.forEach((k, v) => total = total + v * foodqtyDetail[k]); foodDetail.forEach((k, v) => totalquantity = totalquantity + v); foodDetail.forEach((key, value) => itemList.add(key)); foodqtyDetail.forEach((key, value) => quantityList.add(value)); diff --git a/lib/pages/previousOrder.dart b/lib/pages/previousOrder.dart new file mode 100644 index 0000000..9c0d5c5 --- /dev/null +++ b/lib/pages/previousOrder.dart @@ -0,0 +1,192 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/models/user.dart'; + +class PreviousOrder extends StatefulWidget { + @override + _PreviousOrderState createState() => _PreviousOrderState(); +} + +class _PreviousOrderState extends State { + List orders = []; + List item = []; + List quantity = []; + List total = []; + + void initialData() async { + var uid = (await FirebaseAuth.instance.currentUser()).uid; + print(uid); + var result = await Firestore.instance + .collection('confirmedOrders') + .where('id', isEqualTo: uid) + .getDocuments(); + result.documents.forEach((res) { + setState(() { + orders.add(res.data); + item.add(res.data["item"]); + quantity.add(res.data["quantity"]); + total.add(res.data["total"]); + }); + }); + print(orders[0]); + } + + @override + void initState() { + // TODO: implement initState + super.initState(); + initialData(); + } + + @override + Widget build(BuildContext context) { + int orderNo = 110; + if (orders.length == 0 && item.length == 0 && quantity.length == 0) { + return Container( + child: Text('No data'), + ); + } else { + return Scaffold( + appBar: AppBar( + title: Text('Your Orders'), + backgroundColor: Colors.deepOrange, + ), + body: ListView.builder( + shrinkWrap: true, + itemCount: orders.length, + itemBuilder: (_, index) { + orderNo += index; + return ListTile( + contentPadding: EdgeInsets.all(10), + title: Column( + children: [ + SizedBox(height: 20.0), + Container( + padding: EdgeInsets.all(10), + height: 420.0, + width: 370.0, + decoration: BoxDecoration( + color: Colors.lightBlue[50], + borderRadius: BorderRadius.all(Radius.circular(20.0)), + ), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Order Number : " + "$orderNo", + style: TextStyle( + color: Colors.deepOrange, fontSize: 22), + ), + Flexible(child: Text('${orders[index]["date"]}')), + ], + ), + SizedBox(height: 8), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Name : " + "${orders[index]["name"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + SizedBox(height: 8), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Personal No. : " + + "${orders[index]["number"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + SizedBox(height: 8), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Address : ", + // "${orders[index]["address"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + Container( + width: 240, + child: Text( + "${orders[index]["address"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ) + ]), + ], + ), + ], + ), + SizedBox(height: 30), + Flexible( + child: OrderData( + item: item[index], quantity: quantity[index]), + ), + Text( + "Cost : ₹" + "${orders[index]["total"]} ", + style: TextStyle(color: Colors.black, fontSize: 22), + ), + ], + ), + ), + ], + ), + ); + }, + ), + ); + } + } +} + +class OrderData extends StatefulWidget { + List item; + List quantity; + OrderData({this.item, this.quantity}); + @override + _OrderDataState createState() => _OrderDataState(); +} + +class _OrderDataState extends State { + @override + Widget build(BuildContext context) { + return Container( + height: 140, + child: ListView.builder( + itemCount: widget.item.length, + itemBuilder: (_, index) { + return Container( + child: Text('${widget.item[index]}: ${widget.quantity[index]}'), + ); + }), + ); + } +} diff --git a/lib/services/database.dart b/lib/services/database.dart index 0d3bcd8..fb15aa4 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -87,7 +87,7 @@ class DatabaseService { Future confirmOrderofUser(String id, String name, String number, String address, List item, List qty, int total, bool isConfirmed) async { - return await confirmedOrders.document(number).setData({ + return await confirmedOrders.document().setData({ 'id': id, 'name': name, 'number': number, @@ -95,7 +95,10 @@ class DatabaseService { 'item': item, 'quantity': qty, 'total': total, - 'isConfirmed': isConfirmed + 'isConfirmed': isConfirmed, + 'date': '${DateTime.now().day}' + '/' + + '${DateTime.now().month}' + '/' + + '${DateTime.now().year}' }); } From aac7dfb87524588ae06033cc459c15413a2f9268 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Sun, 13 Sep 2020 13:29:46 +0530 Subject: [PATCH 12/29] added spinkit in previous order page and ui changes --- lib/main.dart | 1 + lib/pages/confirmOrder.dart | 12 -- lib/pages/previousOrder.dart | 352 ++++++++++++++++++++++++++++------- 3 files changed, 283 insertions(+), 82 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 68d1a76..6c08bdd 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -63,6 +63,7 @@ class MyApp extends StatelessWidget { "/confirmOrder": (context) => ConfirmOrder(), "/address": (context) => AddressForm(), "/previousOrder": (context) => PreviousOrder(), + // "/previousOrder": (context) => PreviousOrderDetails(), //routes for different categories of food "/allmenu": (context) => AllMenu(), diff --git a/lib/pages/confirmOrder.dart b/lib/pages/confirmOrder.dart index ce0a72a..114fce0 100644 --- a/lib/pages/confirmOrder.dart +++ b/lib/pages/confirmOrder.dart @@ -77,18 +77,6 @@ class _ConfirmOrderState extends State { Text('CASH ON DELIVERY') ], )), - /* InkWell( - onTap: () { - Navigator.pushNamed(context, '/wrapper'); - }, - child: SizedBox( - child: Row( - children: [ - IconButton(icon: Icon(Icons.radio_button_checked)), - Text('Sign In') - ], - )), - ), */ SizedBox(height: 300), SizedBox( width: double.infinity, diff --git a/lib/pages/previousOrder.dart b/lib/pages/previousOrder.dart index 9c0d5c5..8b8234a 100644 --- a/lib/pages/previousOrder.dart +++ b/lib/pages/previousOrder.dart @@ -1,6 +1,7 @@ import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/models/user.dart'; @@ -30,7 +31,6 @@ class _PreviousOrderState extends State { total.add(res.data["total"]); }); }); - print(orders[0]); } @override @@ -44,8 +44,14 @@ class _PreviousOrderState extends State { Widget build(BuildContext context) { int orderNo = 110; if (orders.length == 0 && item.length == 0 && quantity.length == 0) { - return Container( - child: Text('No data'), + return Scaffold( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitCircle(color: Colors.deepOrange, size: 65), + Text('Loading data') + ])), ); } else { return Scaffold( @@ -53,23 +59,194 @@ class _PreviousOrderState extends State { title: Text('Your Orders'), backgroundColor: Colors.deepOrange, ), - body: ListView.builder( - shrinkWrap: true, - itemCount: orders.length, + body: Container( + height: double.infinity, + decoration: BoxDecoration(color: Colors.grey[200]), + child: ListView.builder( + shrinkWrap: true, + itemCount: orders.length, + itemBuilder: (_, index) { + orderNo += index; + return ListTile( + contentPadding: EdgeInsets.all(10), + title: Column( + children: [ + SizedBox(height: 10.0), + Container( + padding: EdgeInsets.all(10), + height: 140.0, + width: 370.0, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(12.0)), + border: Border.all(color: Colors.grey)), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "#$orderNo", + style: TextStyle( + color: Colors.deepOrange, fontSize: 22), + ), + Flexible(child: Text('${orders[index]["date"]}')), + ], + ), + SizedBox(height: 8), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Name : " + "${orders[index]["name"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + SizedBox(height: 8), + ]), + SizedBox(height: 15), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Cost : ₹" + "${orders[index]["total"]} ", + style: TextStyle( + color: Colors.black, fontSize: 22), + ), + InkWell( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + PreviousOrderDetails( + total: orders[index] + ["total"], + orderNo: orderNo, + name: orders[index]["name"], + date: orders[index]["date"], + number: orders[index] + ["number"], + address: orders[index] + ["address"], + item: item[index], + quantity: + quantity[index]))); + }, + child: Container( + child: Text('Know More', + style: TextStyle( + color: Colors.deepOrange, + decoration: + TextDecoration.underline)), + ), + ) + ]), + ], + ), + ), + ], + ), + ); + }, + ), + ), + ); + } + } +} + +class OrderData extends StatefulWidget { + List item; + List quantity; + OrderData({this.item, this.quantity}); + @override + _OrderDataState createState() => _OrderDataState(); +} + +class _OrderDataState extends State { + @override + Widget build(BuildContext context) { + return Container( + padding: EdgeInsets.fromLTRB(10, 10, 20, 0), + height: 290, + child: ListView.builder( + itemCount: widget.item.length, itemBuilder: (_, index) { - orderNo += index; - return ListTile( - contentPadding: EdgeInsets.all(10), - title: Column( + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + child: Row(children: [ + Text('${index + 1}) '), + Text('${widget.item[index]} '), + ])), + Text('${widget.quantity[index]}'), + ], + ); + }), + ); + } +} + +class PreviousOrderDetails extends StatefulWidget { + final int orderNo; + final int total; + final String address; + final String name; + final String number; + final String date; + final List item; + final List quantity; + PreviousOrderDetails( + {this.orderNo, + this.total, + this.address, + this.name, + this.number, + this.date, + this.item, + this.quantity}); + @override + _PreviousOrderDetailsState createState() => _PreviousOrderDetailsState(); +} + +class _PreviousOrderDetailsState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Details'), + ), + body: Container( + padding: EdgeInsets.symmetric(vertical: 40, horizontal: 0), + decoration: BoxDecoration(color: Colors.grey[300]), + child: ListTile( + contentPadding: EdgeInsets.all(10), + title: Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10), + border: Border.all(color: Colors.grey)), + child: Column( children: [ SizedBox(height: 20.0), Container( padding: EdgeInsets.all(10), - height: 420.0, + height: 500.0, width: 370.0, decoration: BoxDecoration( - color: Colors.lightBlue[50], - borderRadius: BorderRadius.all(Radius.circular(20.0)), + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(15.0)), ), child: Column( children: [ @@ -77,11 +254,11 @@ class _PreviousOrderState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - "Order Number : " + "$orderNo", + "#${widget.orderNo}", style: TextStyle( color: Colors.deepOrange, fontSize: 22), ), - Flexible(child: Text('${orders[index]["date"]}')), + Flexible(child: Text('${widget.date}')), ], ), SizedBox(height: 8), @@ -92,25 +269,35 @@ class _PreviousOrderState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - "Name : " + "${orders[index]["name"]}", + "${widget.name}", style: TextStyle( color: Colors.black, - fontSize: 18, - fontWeight: FontWeight.w400), + fontSize: 22, + fontWeight: FontWeight.w500), ), ], ), SizedBox(height: 8), - Row( + Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - "Personal No. : " + - "${orders[index]["number"]}", + "Personal No. :", style: TextStyle( - color: Colors.black, + color: Colors.grey, fontSize: 18, - fontWeight: FontWeight.w400), + fontWeight: FontWeight.w500), + ), + SizedBox(height: 5), + Padding( + padding: EdgeInsets.fromLTRB(10, 0, 0, 0), + child: Text( + "${widget.number}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), ), ], ), @@ -118,26 +305,29 @@ class _PreviousOrderState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Row( + Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - "Address : ", - // "${orders[index]["address"]}", + "Delivered To : ", style: TextStyle( - color: Colors.black, + color: Colors.grey, fontSize: 18, - fontWeight: FontWeight.w400), + fontWeight: FontWeight.w500), ), Container( - width: 240, - child: Text( - "${orders[index]["address"]}", - style: TextStyle( - color: Colors.black, - fontSize: 18, - fontWeight: FontWeight.w400), + width: 300, + child: Padding( + padding: + EdgeInsets.fromLTRB(10, 0, 0, 0), + child: Text( + "${widget.address}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), ), ) ]), @@ -145,48 +335,70 @@ class _PreviousOrderState extends State { ), ], ), - SizedBox(height: 30), + SizedBox(height: 20), + Container( + alignment: Alignment.centerLeft, + child: Text( + 'Menu :', + style: TextStyle( + color: Colors.grey, + fontSize: 18, + fontWeight: FontWeight.w500), + )), + Container( + padding: EdgeInsets.fromLTRB(10, 10, 0, 0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Item Name', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.w400, + decoration: TextDecoration.underline)), + Text('Quantity', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.w400, + decoration: TextDecoration.underline)) + ], + ), + ), Flexible( child: OrderData( - item: item[index], quantity: quantity[index]), - ), - Text( - "Cost : ₹" + "${orders[index]["total"]} ", - style: TextStyle(color: Colors.black, fontSize: 22), + item: widget.item, quantity: widget.quantity), ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Cost : ₹" + "${widget.total} ", + style: TextStyle( + color: Colors.black, fontSize: 22), + ), + InkWell( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + PreviousOrderDetails())); + }, + child: Container( + child: Text('Know More', + style: TextStyle( + color: Colors.deepOrange, + decoration: + TextDecoration.underline)), + ), + ) + ]), ], ), ), ], ), - ); - }, - ), - ); - } - } -} - -class OrderData extends StatefulWidget { - List item; - List quantity; - OrderData({this.item, this.quantity}); - @override - _OrderDataState createState() => _OrderDataState(); -} - -class _OrderDataState extends State { - @override - Widget build(BuildContext context) { - return Container( - height: 140, - child: ListView.builder( - itemCount: widget.item.length, - itemBuilder: (_, index) { - return Container( - child: Text('${widget.item[index]}: ${widget.quantity[index]}'), - ); - }), - ); + ), + ), + )); } } From cdf8d0d276a05cd83f7fafe8aa4d525205c9b569 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Mon, 14 Sep 2020 16:30:49 +0530 Subject: [PATCH 13/29] booking order pages added --- lib/main.dart | 4 + lib/pages/Home.dart | 53 ++-- lib/pages/add_event.dart | 239 +++++++++--------- lib/pages/adminBooking.dart | 185 ++++++++++++++ lib/pages/previousBooking.dart | 430 +++++++++++++++++++++++++++++++++ lib/services/database.dart | 21 +- 6 files changed, 805 insertions(+), 127 deletions(-) create mode 100644 lib/pages/adminBooking.dart create mode 100644 lib/pages/previousBooking.dart diff --git a/lib/main.dart b/lib/main.dart index 6c08bdd..551bc64 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -22,10 +22,12 @@ import 'package:rcapp/pages/Food.dart'; import 'package:rcapp/pages/NavigationBar.dart'; import 'package:rcapp/pages/add_event.dart'; import 'package:rcapp/pages/address.dart'; +import 'package:rcapp/pages/adminBooking.dart'; import 'package:rcapp/pages/admin_order_confirm.dart'; import 'package:rcapp/pages/booking_calendar.dart'; import 'package:rcapp/pages/confirmOrder.dart'; import 'package:rcapp/pages/orderdetails.dart'; +import 'package:rcapp/pages/previousBooking.dart'; import 'package:rcapp/pages/previousOrder.dart'; import 'package:rcapp/pages/uploadImage.dart'; import 'package:rcapp/pages/uploadPdf.dart'; @@ -63,6 +65,8 @@ class MyApp extends StatelessWidget { "/confirmOrder": (context) => ConfirmOrder(), "/address": (context) => AddressForm(), "/previousOrder": (context) => PreviousOrder(), + "/previousBooking": (context) => PreviousBooking(), + "/adminBooking": (context) => AdminBooking(), // "/previousOrder": (context) => PreviousOrderDetails(), //routes for different categories of food diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index cfc6291..a773f8d 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -339,18 +339,41 @@ class _AdminOptionState extends State { @override Widget build(BuildContext context) { if (isAdminglobal || widget.areYouadmin == true) { - return Container( - padding: EdgeInsets.fromLTRB(15, 0, 0, 10), - child: InkWell( - onTap: () { - Navigator.pushNamed(context, '/adminorder'); - }, - child: Text( - 'Admin Orders', - style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), + return Column(children: [ + Container( + padding: EdgeInsets.fromLTRB(10, 0, 0, 10), + child: ListTile( + onTap: () { + Navigator.pushNamed(context, '/adminorder'); + }, + title: Text( + 'Admin Orders', + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), + ), ), ), - ); + Container( + padding: EdgeInsets.fromLTRB(10, 0, 0, 10), + child: ListTile( + onTap: () { + Navigator.pushNamed(context, '/adminBooking'); + }, + title: Text( + 'Admin Booking', + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), + ), + ), + // InkWell( + // onTap: () { + // Navigator.pushNamed(context, '/adminBooking'); + // }, + // child: Text( + // 'Admin Booking', + // style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), + // ), + // ), + ) + ]); } else if (isAdminglobal == null || isAdminglobal == false) { return Container( padding: EdgeInsets.fromLTRB(15, 0, 0, 10), @@ -382,12 +405,6 @@ class _LoadingDataState extends State { .collection("userInfo") .document(userkaabba) .get(); - // setState(() { - // areYouadmin = dat.data["isAdmin"]; - // userName = dat.data["name"]; - // userNumber = dat.data["number"]; - // }); - // .then((value) => value.data["IsAdmin"]); } @override @@ -450,7 +467,9 @@ class _LoadingDataState extends State { Container( padding: EdgeInsets.fromLTRB(15, 0, 0, 10), child: InkWell( - onTap: () {}, + onTap: () { + Navigator.pushNamed(context, '/previousBooking'); + }, child: Text( 'My Bookings', style: TextStyle( diff --git a/lib/pages/add_event.dart b/lib/pages/add_event.dart index de5d6c3..9c89a8d 100644 --- a/lib/pages/add_event.dart +++ b/lib/pages/add_event.dart @@ -1,6 +1,8 @@ +import 'package:firebase_auth/firebase_auth.dart'; import 'package:rcapp/models/event.dart'; import 'package:flutter/material.dart'; import 'package:rcapp/res/event_firestore_service.dart'; +import 'package:rcapp/services/database.dart'; class AddEventPage extends StatefulWidget { final EventModel note; @@ -13,151 +15,172 @@ class AddEventPage extends StatefulWidget { class _AddEventPageState extends State { TextStyle style = TextStyle(fontFamily: 'Montserrat', fontSize: 20.0); - TextEditingController _name; - TextEditingController _personalno; - TextEditingController _Lounge; - DateTime _eventDate; final _formKey = GlobalKey(); - final _key = GlobalKey(); + final DatabaseService _booking = DatabaseService(); + + String _name = ''; + String _personalno = ''; + int slot = 1; + DateTime _eventDate; + int _value1 = 1; + int _value2 = 1; + + var id; bool processing; + List loungeColor = ['Yellow', 'Red', 'Blue']; + + void initialize() async { + var uid = (await FirebaseAuth.instance.currentUser()).uid; + setState(() { + id = uid; + }); + } + + void confirmBooking() async { + _booking.bookDetails(id, _name, _personalno, loungeColor[_value1], slot, _eventDate); + Navigator.pop(context); + } + @override void initState() { super.initState(); - _name = TextEditingController(text: widget.note != null ? widget.note.name : ""); - _personalno = TextEditingController(text: widget.note != null ? widget.note.personalno : ""); - _Lounge = TextEditingController(text: widget.note != null ? widget.note.Lounge : ""); _eventDate = DateTime.now(); - processing = false; + initialize(); } @override Widget build(BuildContext context) { + print(_eventDate.year); return Scaffold( appBar: AppBar( title: Text(widget.note != null ? "Edit Note" : "Booking Details"), elevation: 10.0, backgroundColor: Colors.deepOrange, ), - key: _key, - body: Form( - key: _formKey, - child: Container( - alignment: Alignment.center, + body: Container( + padding: EdgeInsets.symmetric(vertical: 20.0, horizontal: 50.0), + child: Form( + key: _formKey, child: ListView( + shrinkWrap: false, children: [ - Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), - child: TextFormField( - controller: _name, - validator: (value) => - (value.isEmpty) ? "Please Enter Your Name" : null, - style: style, + TextFormField( decoration: InputDecoration( - labelText: "Name", - filled: true, + hintText: 'Name', fillColor: Colors.white, - border: OutlineInputBorder(borderRadius: BorderRadius.circular(10))), - ), - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), - child: TextFormField( - controller: _personalno, - //minLines: 3, - //maxLines: 5, - validator: (value) => - (value.isEmpty) ? "Please Enter Your Personal Number" : null, - style: style, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: + BorderSide(color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: + BorderSide(color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.isEmpty ? 'Enter your Name' : null, + onChanged: (val) { + setState(() => _name = val); + }), + SizedBox(height: 10), + TextFormField( decoration: InputDecoration( - labelText: "Personal No", - border: OutlineInputBorder(borderRadius: BorderRadius.circular(10))), - ), - ), + hintText: 'Personal No.', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: + BorderSide(color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: + BorderSide(color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => + val.isEmpty ? 'Enter your Personal No.' : null, + onChanged: (val) { + setState(() => _personalno = val); + }), const SizedBox(height: 10.0), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), - child: TextFormField( - controller: _Lounge, - validator: (value) => - (value.isEmpty) ? "Please Enter The Lounge you want to book (Yellow/Red/Blue) " : null, - style: style, - decoration: InputDecoration( - labelText: "Lounge to book (Yellow/Red/Blue)", - border: OutlineInputBorder(borderRadius: BorderRadius.circular(10))), - ), - ), + DropdownButton( + value: _value1, + items: [ + DropdownMenuItem( + child: Text("Yellow"), + value: 1, + ), + DropdownMenuItem( + child: Text("Red"), + value: 2, + ), + DropdownMenuItem(child: Text("Blue"), value: 3), + ], + onChanged: (value) { + setState(() { + _value1 = value; + }); + }), + const SizedBox(height: 10.0), + DropdownButton( + value: _value2, + items: [ + DropdownMenuItem( + child: Text("Slot 1"), + value: 1, + ), + DropdownMenuItem( + child: Text("Slot 2"), + value: 2, + ), + ], + onChanged: (value) { + setState(() { + _value2 = value; + slot = value; + }); + }), const SizedBox(height: 10.0), ListTile( title: Text("Date (YYYY-MM-DD)"), - subtitle: Text("${_eventDate.year} - ${_eventDate.month} - ${_eventDate.day}"), - onTap: ()async{ - DateTime picked = await showDatePicker(context: context, initialDate: _eventDate, firstDate: DateTime(_eventDate.year-5), lastDate: DateTime(_eventDate.year+5)); - if(picked != null) { + subtitle: Text( + "${_eventDate.year} - ${_eventDate.month} - ${_eventDate.day}"), + onTap: () async { + DateTime picked = await showDatePicker( + context: context, + initialDate: _eventDate, + firstDate: DateTime(_eventDate.year - 5), + lastDate: DateTime(_eventDate.year + 5)); + if (picked != null) { setState(() { _eventDate = picked; }); } }, ), - SizedBox(height: 10.0), - processing - ? Center(child: CircularProgressIndicator()) - : Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0), - child: Material( - elevation: 5.0, - borderRadius: BorderRadius.circular(30.0), - color: Theme.of(context).primaryColor, - child: MaterialButton( - onPressed: () async { - if (_formKey.currentState.validate()) { - setState(() { - processing = true; - }); - if(widget.note != null) { - await eventDBS.updateData(widget.note.id,{ - "Name": _name.text, - "personal no": _personalno.text, - "Lounge": _Lounge.text, - "event_date": widget.note.eventDate - }); - }else{ - await eventDBS.createItem(EventModel( - name: _name.text, - personalno: _personalno.text, - Lounge: _Lounge.text, - eventDate: _eventDate - )); - } - Navigator.pop(context); - setState(() { - processing = false; - }); - } - }, - child: Text( - "Save", - style: style.copyWith( - color: Colors.white, - fontWeight: FontWeight.bold), - ), + RaisedButton( + color: Colors.deepOrange, + padding: + const EdgeInsets.symmetric(horizontal: 40, vertical: 15), + child: Text( + 'Book Now', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w400, + fontSize: 25), ), - ), - ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + onPressed: () { + if (_formKey.currentState.validate()) { + confirmBooking(); + } + }), ], ), ), ), ); } - - @override - void dispose() { - _name.dispose(); - _personalno.dispose(); - _Lounge.dispose(); - super.dispose(); - } -} \ No newline at end of file +} diff --git a/lib/pages/adminBooking.dart b/lib/pages/adminBooking.dart new file mode 100644 index 0000000..5d1c280 --- /dev/null +++ b/lib/pages/adminBooking.dart @@ -0,0 +1,185 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/models/user.dart'; + +class AdminBooking extends StatefulWidget { + @override + _AdminBookingState createState() => _AdminBookingState(); +} + +class _AdminBookingState extends State { + List bookings = []; + + String name = ''; + String number = ''; + String lounge = ''; + int slot; + int documentlength = 1; + + void initialData() async { + var result = + await Firestore.instance.collection('BookingDetails').getDocuments(); + setState(() { + documentlength = result.documents.length; + }); + result.documents.forEach((res) { + setState(() { + bookings.add(res.data); + name = res.data["name"]; + number = res.data["number"]; + lounge = res.data["lounge"]; + slot = res.data["slot"]; + }); + }); + } + + @override + void initState() { + // TODO: implement initState + super.initState(); + initialData(); + } + + @override + Widget build(BuildContext context) { + int orderNo = 110; + if (bookings.length == 0 && documentlength == 1) { + return Scaffold( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitCircle(color: Colors.deepOrange, size: 65), + Text('Loading data') + ])), + ); + } else if (documentlength == 0) { + return Scaffold( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.all_inclusive), + Text('No data') + ])), + ); + } else { + return Scaffold( + appBar: AppBar( + title: Text('Your Booking'), + backgroundColor: Colors.deepOrange, + ), + body: Container( + height: double.infinity, + decoration: BoxDecoration(color: Colors.grey[200]), + child: ListView.builder( + shrinkWrap: true, + itemCount: bookings.length, + itemBuilder: (_, index) { + orderNo += index; + return ListTile( + contentPadding: EdgeInsets.all(10), + title: Column( + children: [ + SizedBox(height: 10.0), + Container( + padding: EdgeInsets.all(10), + height: 220.0, + width: 370.0, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(12.0)), + border: Border.all(color: Colors.grey)), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "#$orderNo", + style: TextStyle( + color: Colors.deepOrange, fontSize: 22), + ), + Flexible( + child: Text('${bookings[index]["date"]}')), + ], + ), + SizedBox(height: 8), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Name : " + "${bookings[index]["name"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + SizedBox(height: 10), + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Personal No. : " + + "${bookings[index]["number"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + SizedBox(height: 10), + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Lounge : " + + "${bookings[index]["lounge"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + SizedBox(height: 10), + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + 'Slot: ${bookings[index]["slot"]}', + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + ]), + SizedBox(height: 10), + ], + ), + ), + ], + ), + ); + }, + ), + ), + ); + } + } +} diff --git a/lib/pages/previousBooking.dart b/lib/pages/previousBooking.dart new file mode 100644 index 0000000..ed7a948 --- /dev/null +++ b/lib/pages/previousBooking.dart @@ -0,0 +1,430 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:provider/provider.dart'; +import 'package:rcapp/models/user.dart'; + +class PreviousBooking extends StatefulWidget { + @override + _PreviousBookingState createState() => _PreviousBookingState(); +} + +class _PreviousBookingState extends State { + List bookings = []; + + String name = ''; + String number = ''; + String lounge = ''; + int slot; + int documentlength = 1; + + void initialData() async { + var uid = (await FirebaseAuth.instance.currentUser()).uid; + var result = await Firestore.instance + .collection('BookingDetails') + .where('id', isEqualTo: uid) + .getDocuments(); + setState(() { + documentlength = result.documents.length; + }); + result.documents.forEach((res) { + setState(() { + bookings.add(res.data); + name = res.data["name"]; + // item.add(res.data["item"]); + number = res.data["number"]; + // quantity.add(res.data["quantity"]); + lounge = res.data["lounge"]; + // total.add(res.data["total"]); + slot = res.data["slot"]; + }); + }); + } + + @override + void initState() { + // TODO: implement initState + super.initState(); + initialData(); + } + + @override + Widget build(BuildContext context) { + int orderNo = 110; + if (bookings.length == 0 && documentlength == 1) { + return Scaffold( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitCircle(color: Colors.deepOrange, size: 65), + Text('Loading data') + ])), + ); + } else if (documentlength == 0) { + return Scaffold( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.all_inclusive), + Text('No data') + ])), + ); + } else { + return Scaffold( + appBar: AppBar( + title: Text('Your Booking'), + backgroundColor: Colors.deepOrange, + ), + body: Container( + height: double.infinity, + decoration: BoxDecoration(color: Colors.grey[200]), + child: ListView.builder( + shrinkWrap: true, + itemCount: bookings.length, + itemBuilder: (_, index) { + orderNo += index; + return ListTile( + contentPadding: EdgeInsets.all(10), + title: Column( + children: [ + SizedBox(height: 10.0), + Container( + padding: EdgeInsets.all(10), + height: 220.0, + width: 370.0, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(12.0)), + border: Border.all(color: Colors.grey)), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "#$orderNo", + style: TextStyle( + color: Colors.deepOrange, fontSize: 22), + ), + Flexible( + child: Text('${bookings[index]["date"]}')), + ], + ), + SizedBox(height: 8), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Name : " + "${bookings[index]["name"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + SizedBox(height: 10), + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Personal No. : " + + "${bookings[index]["number"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + SizedBox(height: 10), + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Lounge : " + + "${bookings[index]["lounge"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + SizedBox(height: 10), + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + 'Slot: ${bookings[index]["slot"]}', + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + ]), + SizedBox(height: 10), + ], + ), + ), + ], + ), + ); + }, + ), + ), + ); + } + } +} + +// class OrderData extends StatefulWidget { +// List item; +// List quantity; +// OrderData({this.item, this.quantity}); +// @override +// _OrderDataState createState() => _OrderDataState(); +// } + +// class _OrderDataState extends State { +// @override +// Widget build(BuildContext context) { +// return Container( +// padding: EdgeInsets.fromLTRB(10, 10, 20, 0), +// height: 290, +// child: ListView.builder( +// itemCount: widget.item.length, +// itemBuilder: (_, index) { +// return Row( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// Container( +// child: Row(children: [ +// Text('${index + 1}) '), +// Text('${widget.item[index]} '), +// ])), +// Text('${widget.quantity[index]}'), +// ], +// ); +// }), +// ); +// } +// } + +// class PreviousOrderDetails extends StatefulWidget { +// final int orderNo; +// final int total; +// final String address; +// final String name; +// final String number; +// final String date; +// final List item; +// final List quantity; +// PreviousOrderDetails( +// {this.orderNo, +// this.total, +// this.address, +// this.name, +// this.number, +// this.date, +// this.item, +// this.quantity}); +// @override +// _PreviousOrderDetailsState createState() => _PreviousOrderDetailsState(); +// } + +// class _PreviousOrderDetailsState extends State { +// @override +// Widget build(BuildContext context) { +// return Scaffold( +// appBar: AppBar( +// backgroundColor: Colors.deepOrange, +// title: Text('Details'), +// ), +// body: Container( +// padding: EdgeInsets.symmetric(vertical: 40, horizontal: 0), +// decoration: BoxDecoration(color: Colors.grey[300]), +// child: ListTile( +// contentPadding: EdgeInsets.all(10), +// title: Container( +// decoration: BoxDecoration( +// color: Colors.white, +// borderRadius: BorderRadius.circular(10), +// border: Border.all(color: Colors.grey)), +// child: Column( +// children: [ +// SizedBox(height: 20.0), +// Container( +// padding: EdgeInsets.all(10), +// height: 500.0, +// width: 370.0, +// decoration: BoxDecoration( +// color: Colors.white, +// borderRadius: BorderRadius.all(Radius.circular(15.0)), +// ), +// child: Column( +// children: [ +// Row( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// Text( +// "#${widget.orderNo}", +// style: TextStyle( +// color: Colors.deepOrange, fontSize: 22), +// ), +// Flexible(child: Text('${widget.date}')), +// ], +// ), +// SizedBox(height: 8), +// Column( +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// Row( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// Text( +// "${widget.name}", +// style: TextStyle( +// color: Colors.black, +// fontSize: 22, +// fontWeight: FontWeight.w500), +// ), +// ], +// ), +// SizedBox(height: 8), +// Column( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// Text( +// "Personal No. :", +// style: TextStyle( +// color: Colors.grey, +// fontSize: 18, +// fontWeight: FontWeight.w500), +// ), +// SizedBox(height: 5), +// Padding( +// padding: EdgeInsets.fromLTRB(10, 0, 0, 0), +// child: Text( +// "${widget.number}", +// style: TextStyle( +// color: Colors.black, +// fontSize: 18, +// fontWeight: FontWeight.w400), +// ), +// ), +// ], +// ), +// SizedBox(height: 8), +// Row( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// Column( +// crossAxisAlignment: +// CrossAxisAlignment.start, +// children: [ +// Text( +// "Delivered To : ", +// style: TextStyle( +// color: Colors.grey, +// fontSize: 18, +// fontWeight: FontWeight.w500), +// ), +// Container( +// width: 300, +// child: Padding( +// padding: +// EdgeInsets.fromLTRB(10, 0, 0, 0), +// child: Text( +// "${widget.address}", +// style: TextStyle( +// color: Colors.black, +// fontSize: 18, +// fontWeight: FontWeight.w400), +// ), +// ), +// ) +// ]), +// ], +// ), +// ], +// ), +// SizedBox(height: 20), +// Container( +// alignment: Alignment.centerLeft, +// child: Text( +// 'Menu :', +// style: TextStyle( +// color: Colors.grey, +// fontSize: 18, +// fontWeight: FontWeight.w500), +// )), +// Container( +// padding: EdgeInsets.fromLTRB(10, 10, 0, 0), +// child: Row( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// Text('Item Name', +// style: TextStyle( +// fontSize: 20, +// fontWeight: FontWeight.w400, +// decoration: TextDecoration.underline)), +// Text('Quantity', +// style: TextStyle( +// fontSize: 20, +// fontWeight: FontWeight.w400, +// decoration: TextDecoration.underline)) +// ], +// ), +// ), +// Flexible( +// child: OrderData( +// item: widget.item, quantity: widget.quantity), +// ), +// Row( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// Text( +// "Cost : ₹" + "${widget.total} ", +// style: TextStyle( +// color: Colors.black, fontSize: 22), +// ), +// InkWell( +// onTap: () { +// Navigator.push( +// context, +// MaterialPageRoute( +// builder: (context) => +// PreviousOrderDetails())); +// }, +// child: Container( +// child: Text('Know More', +// style: TextStyle( +// color: Colors.deepOrange, +// decoration: +// TextDecoration.underline)), +// ), +// ) +// ]), +// ], +// ), +// ), +// ], +// ), +// ), +// ), +// )); +// } +// } diff --git a/lib/services/database.dart b/lib/services/database.dart index fb15aa4..48ea1d3 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -52,6 +52,9 @@ class DatabaseService { final CollectionReference confirmedOrders = Firestore.instance.collection('confirmedOrders'); + final CollectionReference bookingDetails = + Firestore.instance.collection('BookingDetails'); + Future updateUserInfo(String name, bool isAdmin, String number) async { return await userInfo.document(uid).setData({ 'name': name, @@ -85,6 +88,18 @@ class DatabaseService { .setData({'title': title, 'subtitle': subtitle, 'downloadLink': url}); } + Future bookDetails(String id, String name, String number, String lounge, + int slot, DateTime date) async { + return await bookingDetails.document().setData({ + 'id': id, + 'name': name, + 'number': number, + 'lounge': lounge, + 'slot': slot, + 'date': '${date.day}' + '/' + '${date.month}' + '/' + '${date.year}' + }); + } + Future confirmOrderofUser(String id, String name, String number, String address, List item, List qty, int total, bool isConfirmed) async { return await confirmedOrders.document().setData({ @@ -96,8 +111,10 @@ class DatabaseService { 'quantity': qty, 'total': total, 'isConfirmed': isConfirmed, - 'date': '${DateTime.now().day}' + '/' + - '${DateTime.now().month}' + '/' + + 'date': '${DateTime.now().day}' + + '/' + + '${DateTime.now().month}' + + '/' + '${DateTime.now().year}' }); } From 024f2f875188dbcd9547a73203792d728abf46d5 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Mon, 14 Sep 2020 16:31:52 +0530 Subject: [PATCH 14/29] added booking admin and previous pages --- lib/pages/previousBooking.dart | 242 --------------------------------- 1 file changed, 242 deletions(-) diff --git a/lib/pages/previousBooking.dart b/lib/pages/previousBooking.dart index ed7a948..29d23db 100644 --- a/lib/pages/previousBooking.dart +++ b/lib/pages/previousBooking.dart @@ -32,11 +32,8 @@ class _PreviousBookingState extends State { setState(() { bookings.add(res.data); name = res.data["name"]; - // item.add(res.data["item"]); number = res.data["number"]; - // quantity.add(res.data["quantity"]); lounge = res.data["lounge"]; - // total.add(res.data["total"]); slot = res.data["slot"]; }); }); @@ -189,242 +186,3 @@ class _PreviousBookingState extends State { } } } - -// class OrderData extends StatefulWidget { -// List item; -// List quantity; -// OrderData({this.item, this.quantity}); -// @override -// _OrderDataState createState() => _OrderDataState(); -// } - -// class _OrderDataState extends State { -// @override -// Widget build(BuildContext context) { -// return Container( -// padding: EdgeInsets.fromLTRB(10, 10, 20, 0), -// height: 290, -// child: ListView.builder( -// itemCount: widget.item.length, -// itemBuilder: (_, index) { -// return Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Container( -// child: Row(children: [ -// Text('${index + 1}) '), -// Text('${widget.item[index]} '), -// ])), -// Text('${widget.quantity[index]}'), -// ], -// ); -// }), -// ); -// } -// } - -// class PreviousOrderDetails extends StatefulWidget { -// final int orderNo; -// final int total; -// final String address; -// final String name; -// final String number; -// final String date; -// final List item; -// final List quantity; -// PreviousOrderDetails( -// {this.orderNo, -// this.total, -// this.address, -// this.name, -// this.number, -// this.date, -// this.item, -// this.quantity}); -// @override -// _PreviousOrderDetailsState createState() => _PreviousOrderDetailsState(); -// } - -// class _PreviousOrderDetailsState extends State { -// @override -// Widget build(BuildContext context) { -// return Scaffold( -// appBar: AppBar( -// backgroundColor: Colors.deepOrange, -// title: Text('Details'), -// ), -// body: Container( -// padding: EdgeInsets.symmetric(vertical: 40, horizontal: 0), -// decoration: BoxDecoration(color: Colors.grey[300]), -// child: ListTile( -// contentPadding: EdgeInsets.all(10), -// title: Container( -// decoration: BoxDecoration( -// color: Colors.white, -// borderRadius: BorderRadius.circular(10), -// border: Border.all(color: Colors.grey)), -// child: Column( -// children: [ -// SizedBox(height: 20.0), -// Container( -// padding: EdgeInsets.all(10), -// height: 500.0, -// width: 370.0, -// decoration: BoxDecoration( -// color: Colors.white, -// borderRadius: BorderRadius.all(Radius.circular(15.0)), -// ), -// child: Column( -// children: [ -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Text( -// "#${widget.orderNo}", -// style: TextStyle( -// color: Colors.deepOrange, fontSize: 22), -// ), -// Flexible(child: Text('${widget.date}')), -// ], -// ), -// SizedBox(height: 8), -// Column( -// crossAxisAlignment: CrossAxisAlignment.start, -// children: [ -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Text( -// "${widget.name}", -// style: TextStyle( -// color: Colors.black, -// fontSize: 22, -// fontWeight: FontWeight.w500), -// ), -// ], -// ), -// SizedBox(height: 8), -// Column( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Text( -// "Personal No. :", -// style: TextStyle( -// color: Colors.grey, -// fontSize: 18, -// fontWeight: FontWeight.w500), -// ), -// SizedBox(height: 5), -// Padding( -// padding: EdgeInsets.fromLTRB(10, 0, 0, 0), -// child: Text( -// "${widget.number}", -// style: TextStyle( -// color: Colors.black, -// fontSize: 18, -// fontWeight: FontWeight.w400), -// ), -// ), -// ], -// ), -// SizedBox(height: 8), -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Column( -// crossAxisAlignment: -// CrossAxisAlignment.start, -// children: [ -// Text( -// "Delivered To : ", -// style: TextStyle( -// color: Colors.grey, -// fontSize: 18, -// fontWeight: FontWeight.w500), -// ), -// Container( -// width: 300, -// child: Padding( -// padding: -// EdgeInsets.fromLTRB(10, 0, 0, 0), -// child: Text( -// "${widget.address}", -// style: TextStyle( -// color: Colors.black, -// fontSize: 18, -// fontWeight: FontWeight.w400), -// ), -// ), -// ) -// ]), -// ], -// ), -// ], -// ), -// SizedBox(height: 20), -// Container( -// alignment: Alignment.centerLeft, -// child: Text( -// 'Menu :', -// style: TextStyle( -// color: Colors.grey, -// fontSize: 18, -// fontWeight: FontWeight.w500), -// )), -// Container( -// padding: EdgeInsets.fromLTRB(10, 10, 0, 0), -// child: Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Text('Item Name', -// style: TextStyle( -// fontSize: 20, -// fontWeight: FontWeight.w400, -// decoration: TextDecoration.underline)), -// Text('Quantity', -// style: TextStyle( -// fontSize: 20, -// fontWeight: FontWeight.w400, -// decoration: TextDecoration.underline)) -// ], -// ), -// ), -// Flexible( -// child: OrderData( -// item: widget.item, quantity: widget.quantity), -// ), -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Text( -// "Cost : ₹" + "${widget.total} ", -// style: TextStyle( -// color: Colors.black, fontSize: 22), -// ), -// InkWell( -// onTap: () { -// Navigator.push( -// context, -// MaterialPageRoute( -// builder: (context) => -// PreviousOrderDetails())); -// }, -// child: Container( -// child: Text('Know More', -// style: TextStyle( -// color: Colors.deepOrange, -// decoration: -// TextDecoration.underline)), -// ), -// ) -// ]), -// ], -// ), -// ), -// ], -// ), -// ), -// ), -// )); -// } -// } From bf73c61da9d7aabfcdca1b4da17669558dc43642 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Mon, 14 Sep 2020 16:57:52 +0530 Subject: [PATCH 15/29] loading spinner for login and register created --- lib/pages/Login.dart | 15 +- lib/pages/Register.dart | 283 ++++++++++++++++++---------------- lib/pages/loadingspinner.dart | 13 ++ 3 files changed, 173 insertions(+), 138 deletions(-) create mode 100644 lib/pages/loadingspinner.dart diff --git a/lib/pages/Login.dart b/lib/pages/Login.dart index 37473b6..05b41d2 100644 --- a/lib/pages/Login.dart +++ b/lib/pages/Login.dart @@ -1,5 +1,6 @@ import 'package:carousel_pro/carousel_pro.dart'; import 'package:flutter/material.dart'; +import 'package:rcapp/pages/loadingspinner.dart'; import 'package:rcapp/services/auth.dart'; class Login extends StatefulWidget { @@ -15,11 +16,11 @@ class _LoginState extends State { final AuthService _auth = AuthService(); final _formKey = GlobalKey(); - // test field state String number = ''; String password = ''; String error = ''; + bool loading = false; @override Widget build(BuildContext context) { @@ -41,8 +42,7 @@ class _LoginState extends State { borderRadius: true, indicatorBgPadding: 10.0, )); - - return Scaffold( + return loading ? Loading() : Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, title: Text('Sign in'), @@ -123,12 +123,17 @@ class _LoginState extends State { ), onPressed: () async { if (_formKey.currentState.validate()) { + setState(() { + loading = true; + }); String numemail = number + "@gmail.com"; dynamic result = await _auth .signInWithEmailAndPassword(numemail, password); if (result == null) { - setState(() => error = - 'could not sign in with the credentials'); + setState(() { + error = 'could not sign in with the credentials'; + loading = false; + }); } } }, diff --git a/lib/pages/Register.dart b/lib/pages/Register.dart index 1bc17ac..a57c66a 100644 --- a/lib/pages/Register.dart +++ b/lib/pages/Register.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:rcapp/pages/loadingspinner.dart'; import 'package:rcapp/services/auth.dart'; class Register extends StatefulWidget { @@ -13,6 +14,8 @@ class _RegisterState extends State { final AuthService _auth = AuthService(); final _formKey = GlobalKey(); + bool loading = false; + // test field state String name = ''; String email = ''; @@ -22,138 +25,152 @@ class _RegisterState extends State { @override Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - backgroundColor: Colors.deepOrange, - title: Text('Sign Up'), - elevation: 0.0, - actions: [ - FlatButton.icon( - icon: Icon(Icons.person), - label: Text('Sign In'), - onPressed: () { - widget.toggleView(); - }, - ) - ]), - body: SingleChildScrollView( - child: Container( - padding: EdgeInsets.symmetric(vertical: 20.0, horizontal: 50.0), - child: Form( - key: _formKey, - child: Column(children: [ - Image.asset( - 'assets/login.png', - fit: BoxFit.contain, - ), - SizedBox(height: 15.0), - TextFormField( - decoration: InputDecoration( - hintText: 'Name', - fillColor: Colors.white, - filled: true, - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 1.0), - borderRadius: BorderRadius.circular(10)), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 3.0), - borderRadius: BorderRadius.circular(10))), - validator: (val) => val.isEmpty ? 'Enter your Name' : null, - onChanged: (val) { - setState(() => name = val); - }), - SizedBox(height: 18.0), - TextFormField( - decoration: InputDecoration( - hintText: 'Personal No.', - fillColor: Colors.white, - filled: true, - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 1.0), - borderRadius: BorderRadius.circular(10)), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 3.0), - borderRadius: BorderRadius.circular(10))), - validator: (val) => val.isEmpty ? 'Enter your RSP Personal No.' : null, - onChanged: (val) { - setState(() => number = val); - }), - SizedBox(height: 18.0), - TextFormField( - decoration: InputDecoration( - hintText: 'Email', - fillColor: Colors.white, - filled: true, - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 1.0), - borderRadius: BorderRadius.circular(10)), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 3.0), - borderRadius: BorderRadius.circular(10))), - validator: (val) => val.isEmpty ? 'Enter an email' : null, - onChanged: (val) { - setState(() => email = val); - }), - SizedBox(height: 18.0), - TextFormField( - decoration: InputDecoration( - hintText: 'Password', - fillColor: Colors.white, - filled: true, - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 1.0), - borderRadius: BorderRadius.circular(10)), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 3.0), - borderRadius: BorderRadius.circular(10))), - validator: (val) => val.length < 6 - ? 'Enter password of 6+ characters' - : null, - obscureText: true, - onChanged: (val) { - setState(() => password = val); - }), - SizedBox(height: 18.0), - RaisedButton( - color: Colors.deepOrange, + return loading + ? Loading() + : Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Sign Up'), + elevation: 0.0, + actions: [ + FlatButton.icon( + icon: Icon(Icons.person), + label: Text('Sign In'), + onPressed: () { + widget.toggleView(); + }, + ) + ]), + body: SingleChildScrollView( + child: Container( padding: - const EdgeInsets.symmetric(horizontal: 40, vertical: 15), - child: Text( - 'Register', - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.w400, - fontSize: 25), - ), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10), - ), - onPressed: () async { - if (_formKey.currentState.validate()) { - dynamic result = await _auth.registerWithEmailAndPassword( - name, false, number, email, password); - if (result == null) { - setState(() => error = 'please supply a valid email'); - } - } - }, - ), - SizedBox(height: 20.0), - Text( - error, - style: TextStyle(color: Colors.red, fontSize: 14.0), - ) - ]), - )), - ), - ); + EdgeInsets.symmetric(vertical: 20.0, horizontal: 50.0), + child: Form( + key: _formKey, + child: Column(children: [ + Image.asset( + 'assets/login.png', + fit: BoxFit.contain, + ), + SizedBox(height: 15.0), + TextFormField( + decoration: InputDecoration( + hintText: 'Name', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => + val.isEmpty ? 'Enter your Name' : null, + onChanged: (val) { + setState(() => name = val); + }), + SizedBox(height: 18.0), + TextFormField( + decoration: InputDecoration( + hintText: 'Personal No.', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.isEmpty + ? 'Enter your RSP Personal No.' + : null, + onChanged: (val) { + setState(() => number = val); + }), + SizedBox(height: 18.0), + TextFormField( + decoration: InputDecoration( + hintText: 'Email', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => + val.isEmpty ? 'Enter an email' : null, + onChanged: (val) { + setState(() => email = val); + }), + SizedBox(height: 18.0), + TextFormField( + decoration: InputDecoration( + hintText: 'Password', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.length < 6 + ? 'Enter password of 6+ characters' + : null, + obscureText: true, + onChanged: (val) { + setState(() => password = val); + }), + SizedBox(height: 18.0), + RaisedButton( + color: Colors.deepOrange, + padding: const EdgeInsets.symmetric( + horizontal: 40, vertical: 15), + child: Text( + 'Register', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w400, + fontSize: 25), + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + onPressed: () async { + if (_formKey.currentState.validate()) { + setState(() { + loading = true; + }); + dynamic result = + await _auth.registerWithEmailAndPassword( + name, false, number, email, password); + if (result == null) { + setState(() { + error = 'please supply a valid email'; + loading = false; + }); + } + } + }, + ), + SizedBox(height: 20.0), + Text( + error, + style: TextStyle(color: Colors.red, fontSize: 14.0), + ) + ]), + )), + ), + ); } -} \ No newline at end of file +} diff --git a/lib/pages/loadingspinner.dart b/lib/pages/loadingspinner.dart new file mode 100644 index 0000000..803ee12 --- /dev/null +++ b/lib/pages/loadingspinner.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; + + +class Loading extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Container( + color: Colors.deepOrange[100], + child: Center(child: SpinKitCircle(color: Colors.deepOrange,size: 50),), + ); + } +} \ No newline at end of file From 59ccbb3229dc5297d19edfcb2f2c95691ba3f6c0 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Mon, 14 Sep 2020 19:48:38 +0530 Subject: [PATCH 16/29] le jaldi download kar bsdk --- lib/main.dart | 2 +- lib/models/user.dart | 38 +- lib/pages/admin_order_confirm.dart | 796 ++++++++++++++++++++++++----- lib/services/database.dart | 3 +- 4 files changed, 695 insertions(+), 144 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 551bc64..42d9a91 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -59,7 +59,7 @@ class MyApp extends StatelessWidget { '/bookingcalendar': (context) => Calendar(), '/cart': (context) => Cart(), '/adminorder': (context) => AdminOrder(), - '/orderdetails': (context) => OrderDetails(), + // '/orderdetails': (context) => OrderDetails(), '/wrapper': (context) => Wrapper(), "/add_event": (context) => AddEventPage(), "/confirmOrder": (context) => ConfirmOrder(), diff --git a/lib/models/user.dart b/lib/models/user.dart index ceb5898..8daf7fb 100644 --- a/lib/models/user.dart +++ b/lib/models/user.dart @@ -27,6 +27,7 @@ class Menu { Menu({this.item, this.price, this.searchIndex}); } + class BreakfastMenu { String item = ''; int price = 0; @@ -34,6 +35,7 @@ class BreakfastMenu { BreakfastMenu({this.item, this.price, this.searchIndex}); } + class PaneerMenu { String item = ''; int price = 0; @@ -41,6 +43,7 @@ class PaneerMenu { PaneerMenu({this.item, this.price, this.searchIndex}); } + class MainCourseMenu { String item = ''; int price = 0; @@ -48,6 +51,7 @@ class MainCourseMenu { MainCourseMenu({this.item, this.price, this.searchIndex}); } + class ChineseMenu { String item = ''; int price = 0; @@ -55,6 +59,7 @@ class ChineseMenu { ChineseMenu({this.item, this.price, this.searchIndex}); } + class StarterMenu { String item = ''; int price = 0; @@ -62,6 +67,7 @@ class StarterMenu { StarterMenu({this.item, this.price, this.searchIndex}); } + class BiryaniMenu { String item = ''; int price = 0; @@ -69,6 +75,7 @@ class BiryaniMenu { BiryaniMenu({this.item, this.price, this.searchIndex}); } + class BreadMenu { String item = ''; int price = 0; @@ -76,6 +83,7 @@ class BreadMenu { BreadMenu({this.item, this.price, this.searchIndex}); } + class TandooriMenu { String item = ''; int price = 0; @@ -83,6 +91,7 @@ class TandooriMenu { TandooriMenu({this.item, this.price, this.searchIndex}); } + class FriedRiceAndNoodlesMenu { String item = ''; int price = 0; @@ -90,6 +99,7 @@ class FriedRiceAndNoodlesMenu { FriedRiceAndNoodlesMenu({this.item, this.price, this.searchIndex}); } + class RollMenu { String item = ''; int price = 0; @@ -97,6 +107,7 @@ class RollMenu { RollMenu({this.item, this.price, this.searchIndex}); } + class SandwichMenu { String item = ''; int price = 0; @@ -104,6 +115,7 @@ class SandwichMenu { SandwichMenu({this.item, this.price, this.searchIndex}); } + class PizzaMenu { String item = ''; int price = 0; @@ -111,6 +123,7 @@ class PizzaMenu { PizzaMenu({this.item, this.price, this.searchIndex}); } + class SnacksMenu { String item = ''; int price = 0; @@ -118,6 +131,7 @@ class SnacksMenu { SnacksMenu({this.item, this.price, this.searchIndex}); } + class BurgerMenu { String item = ''; int price = 0; @@ -125,6 +139,7 @@ class BurgerMenu { BurgerMenu({this.item, this.price, this.searchIndex}); } + class PastaMenu { String item = ''; int price = 0; @@ -132,6 +147,7 @@ class PastaMenu { PastaMenu({this.item, this.price, this.searchIndex}); } + class SoupMenu { String item = ''; int price = 0; @@ -139,6 +155,7 @@ class SoupMenu { SoupMenu({this.item, this.price, this.searchIndex}); } + class AccompanimentMenu { String item = ''; int price = 0; @@ -146,6 +163,7 @@ class AccompanimentMenu { AccompanimentMenu({this.item, this.price, this.searchIndex}); } + class Today_Menu { String imagepath = ''; int price = 0; @@ -162,9 +180,17 @@ class Orders { String address; int total; bool isConfirmed; + String date; Orders( - {this.item, this.qty, this.name, this.number, this.address, this.total, this.isConfirmed}); + {this.item, + this.qty, + this.name, + this.number, + this.address, + this.total, + this.isConfirmed, + this.date}); } class PreviousOrders { @@ -177,5 +203,11 @@ class PreviousOrders { bool isConfirmed; PreviousOrders( - {this.item, this.qty, this.name, this.number, this.address, this.total, this.isConfirmed}); -} \ No newline at end of file + {this.item, + this.qty, + this.name, + this.number, + this.address, + this.total, + this.isConfirmed}); +} diff --git a/lib/pages/admin_order_confirm.dart b/lib/pages/admin_order_confirm.dart index 40f7517..b8d1184 100644 --- a/lib/pages/admin_order_confirm.dart +++ b/lib/pages/admin_order_confirm.dart @@ -1,16 +1,196 @@ -import 'package:flutter/material.dart'; +// import 'package:flutter/material.dart'; +// import 'package:cloud_firestore/cloud_firestore.dart'; +// import 'package:flutter_spinkit/flutter_spinkit.dart'; +// import 'package:rcapp/models/user.dart'; +// import 'package:rcapp/services/database.dart'; +// import 'package:provider/provider.dart'; + +// class ConfirmedOrderDetails { +// String name; +// String number; +// int total; +// String address; +// } + +// class AdminOrder extends StatefulWidget { +// @override +// _AdminOrderState createState() => _AdminOrderState(); +// } + +// class _AdminOrderState extends State { +// @override +// Widget build(BuildContext context) { +// return StreamProvider>.value( +// value: DatabaseService().orders, +// child: Scaffold( +// appBar: AppBar( +// title: Text('Orders'), +// backgroundColor: Colors.deepOrange, +// ), +// body: NewOrderList(), +// ), +// ); +// } +// } + +// class NewOrderList extends StatefulWidget { +// @override +// NewOrderListState createState() => NewOrderListState(); +// } + +// class NewOrderListState extends State { +// changeConfirmation(bool isConfirmed, String number) async { +// try { +// if (isConfirmed) { +// await Firestore.instance +// .collection("confirmedOrders") +// .document(number) +// .delete(); +// } else { +// await Firestore.instance +// .collection("confirmedOrders") +// .document(number) +// .updateData({"isConfirmed": !isConfirmed}); +// } +// Navigator.pushReplacementNamed(context, '/adminorder'); +// } catch (e) { +// print(e.toString()); +// } +// } + +// @override +// Widget build(BuildContext context) { +// int orderNo = 110; +// final _orderList = Provider.of>(context) ?? []; +// return ListView.builder( +// shrinkWrap: true, +// itemCount: _orderList.length, +// itemBuilder: (_, index) { +// orderNo += index; +// return ListTile( +// contentPadding: EdgeInsets.all(10), +// title: Column( +// children: [ +// SizedBox(height: 20.0), +// Container( +// alignment: Alignment.topLeft, +// height: 420.0, +// width: 370.0, +// margin: new EdgeInsets.only(left: 20.0, right: 20.0), +// decoration: BoxDecoration( +// color: Colors.tealAccent, +// borderRadius: BorderRadius.all(Radius.circular(20.0)), +// ), +// child: Column( +// children: [ +// Row( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// Text( +// "Order Number : " + "$orderNo", +// style: +// TextStyle(color: Colors.deepOrange, fontSize: 22), +// ), +// Text("Aug 4th 2020"), +// ], +// ), +// Column( +// children: [ +// Row( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// Padding( +// padding: const EdgeInsets.all(10), +// child: Text( +// "Name : " + "${_orderList[index].name}", +// style: TextStyle( +// color: Colors.black, fontSize: 15), +// ), +// ), +// ], +// ), +// Row( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// Padding( +// padding: const EdgeInsets.all(10), +// child: Text( +// "Personal No. : " + +// "${_orderList[index].number}", +// style: TextStyle( +// color: Colors.black, fontSize: 15), +// ), +// ), +// ], +// ), +// Row( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// Flexible( +// child: Text( +// "Address : " + "${_orderList[index].address}", +// style: TextStyle( +// color: Colors.black, fontSize: 15), +// ), +// ), +// ], +// ), +// ], +// ), +// SizedBox(height: 30), +// Row( +// mainAxisAlignment: MainAxisAlignment.spaceAround, +// children: [ +// Flexible( +// child: Text( +// "Cost : ₹" + +// "${_orderList[index].total} " + +// "${_orderList[index].item}" + +// " : " + +// "${_orderList[index].qty}", +// style: TextStyle(color: Colors.black, fontSize: 22), +// ), +// ), +// FlatButton( +// onPressed: () { +// Navigator.pushNamed(context, '/orderdetails'); +// }, +// shape: new RoundedRectangleBorder( +// borderRadius: new BorderRadius.circular(10.0)), +// child: Text('View'), +// color: Colors.white, +// ), +// FlatButton( +// onPressed: () { +// changeConfirmation(_orderList[index].isConfirmed, +// _orderList[index].number); +// }, +// shape: new RoundedRectangleBorder( +// borderRadius: new BorderRadius.circular(10.0)), +// child: Text(_orderList[index].isConfirmed +// ? 'Confirm' +// : 'Delete'), +// color: Colors.amber, +// ), +// ], +// ), +// ], +// ), +// ), +// ], +// ), +// ); +// }, +// ); +// } +// } + import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; -import 'package:rcapp/models/user.dart'; -import 'package:rcapp/services/database.dart'; import 'package:provider/provider.dart'; - -class ConfirmedOrderDetails { - String name; - String number; - int total; - String address; -} +import 'package:rcapp/models/user.dart'; class AdminOrder extends StatefulWidget { @override @@ -18,169 +198,507 @@ class AdminOrder extends StatefulWidget { } class _AdminOrderState extends State { + List orders = []; + List item = []; + List quantity = []; + List total = []; + + void confirmOrder(int index) async { + var docId = '${orders[index]["id"]}' + '${orders[index]["total"]}'; + await Firestore.instance + .collection('confirmedOrders') + .document(docId) + .updateData({"isConfirmed": true}); + setState(() { + orders[index]["isConfirmed"] = true; + }); + } + + void deleteOrder(int index) async { + var docId = '${orders[index]["id"]}' + '${orders[index]["total"]}'; + await Firestore.instance + .collection('confirmedOrders') + .document(docId) + .delete(); + setState(() { + orders.removeAt(index); + }); + } + + void initialData() async { + var result = + await Firestore.instance.collection('confirmedOrders').getDocuments(); + result.documents.forEach((res) { + setState(() { + orders.add(res.data); + item.add(res.data["item"]); + quantity.add(res.data["quantity"]); + total.add(res.data["total"]); + }); + }); + } + + @override + void initState() { + // TODO: implement initState + super.initState(); + initialData(); + } + @override Widget build(BuildContext context) { - return StreamProvider>.value( - value: DatabaseService().orders, - child: Scaffold( + int orderNo = 110; + if (orders.length == 0 && item.length == 0 && quantity.length == 0) { + return Scaffold( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SpinKitCircle(color: Colors.deepOrange, size: 65), + Text('Loading data') + ])), + ); + } else { + return Scaffold( appBar: AppBar( - title: Text('Orders'), + title: Text('Your Orders'), backgroundColor: Colors.deepOrange, ), - body: NewOrderList(), - ), - ); + body: Container( + height: double.infinity, + decoration: BoxDecoration(color: Colors.grey[200]), + child: ListView.builder( + shrinkWrap: true, + itemCount: orders.length, + itemBuilder: (_, index) { + orderNo = 110; + orderNo = orderNo + index; + return ListTile( + contentPadding: EdgeInsets.all(10), + title: Column( + children: [ + SizedBox(height: 10.0), + Container( + padding: EdgeInsets.all(10), + height: 190.0, + width: 370.0, + decoration: BoxDecoration( + color: Colors.blue[50], + borderRadius: BorderRadius.all(Radius.circular(12.0)), + border: Border.all(color: Colors.grey)), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Order No: $orderNo", + style: TextStyle( + color: Colors.deepOrange, fontSize: 22), + ), + Flexible(child: Text('${orders[index]["date"]}')), + ], + ), + SizedBox(height: 8), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Name : " + "${orders[index]["name"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + SizedBox(height: 8), + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Personal No : " + + "${orders[index]["number"]}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + SizedBox(height: 8), + if (orders[index]["isConfirmed"]) ...[ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Status: Confirmed", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + ] else ...[ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Status: Not Confirmed", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ], + ), + ] + ]), + SizedBox(height: 15), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Cost : ₹" + "${orders[index]["total"]} ", + style: TextStyle( + color: Colors.black, fontSize: 22), + ), + Row(children: [ + InkWell( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + AdminOrderDetails( + total: orders[index] + ["total"], + orderNo: orderNo, + name: orders[index] + ["name"], + date: orders[index] + ["date"], + number: orders[index] + ["number"], + address: orders[index] + ["address"], + item: item[index], + quantity: + quantity[index]))); + }, + child: Container( + padding: EdgeInsets.symmetric( + horizontal: 5, vertical: 4), + decoration: BoxDecoration( + color: Colors.white, + border: + Border.all(color: Colors.black), + borderRadius: + BorderRadius.circular(5)), + child: Text('View', + style: TextStyle( + color: Colors.black, + )), + ), + ), + SizedBox(width: 10), + if (!orders[index]["isConfirmed"]) ...[ + InkWell( + onTap: () { + confirmOrder(index); + }, + child: Container( + padding: EdgeInsets.symmetric( + horizontal: 5, vertical: 4), + decoration: BoxDecoration( + color: Colors.deepOrange[400], + border: + Border.all(color: Colors.black), + borderRadius: + BorderRadius.circular(5)), + child: Text('Confirm', + style: TextStyle( + color: Colors.white, + )), + ), + ) + ] else ...[ + InkWell( + onTap: () { + deleteOrder(index); + }, + child: Container( + padding: EdgeInsets.symmetric( + horizontal: 5, vertical: 4), + decoration: BoxDecoration( + color: Colors.red, + border: + Border.all(color: Colors.black), + borderRadius: + BorderRadius.circular(5)), + child: Text('Delete', + style: TextStyle( + color: Colors.white, + )), + ), + ) + ] + ]) + ]), + ], + ), + ), + ], + ), + ); + }, + ), + ), + ); + } } } -class NewOrderList extends StatefulWidget { +class AdminOrderData extends StatefulWidget { + List item; + List quantity; + AdminOrderData({this.item, this.quantity}); @override - NewOrderListState createState() => NewOrderListState(); + _AdminOrderDataState createState() => _AdminOrderDataState(); } -class NewOrderListState extends State { - changeConfirmation(bool isConfirmed, String number) async { - try { - if (isConfirmed) { - await Firestore.instance - .collection("confirmedOrders") - .document(number) - .delete(); - } else { - await Firestore.instance - .collection("confirmedOrders") - .document(number) - .updateData({"isConfirmed": !isConfirmed}); - } - Navigator.pushReplacementNamed(context, '/adminorder'); - } catch (e) { - print(e.toString()); - } +class _AdminOrderDataState extends State { + @override + Widget build(BuildContext context) { + return Container( + padding: EdgeInsets.fromLTRB(10, 10, 20, 0), + height: 390, + child: ListView.builder( + itemCount: widget.item.length, + itemBuilder: (_, index) { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + child: Row(children: [ + Text('${index + 1}) '), + Text('${widget.item[index]} '), + ])), + Text('${widget.quantity[index]}'), + ], + ); + }), + ); } +} +class AdminOrderDetails extends StatefulWidget { + final int orderNo; + final int total; + final String address; + final String name; + final String number; + final String date; + final List item; + final List quantity; + AdminOrderDetails({ + this.orderNo, + this.total, + this.address, + this.name, + this.number, + this.date, + this.item, + this.quantity, + }); + @override + _AdminOrderDetailsState createState() => _AdminOrderDetailsState(); +} + +class _AdminOrderDetailsState extends State { @override Widget build(BuildContext context) { - int orderNo = 110; - final _orderList = Provider.of>(context) ?? []; - return ListView.builder( - shrinkWrap: true, - itemCount: _orderList.length, - itemBuilder: (_, index) { - orderNo += index; - return ListTile( - contentPadding: EdgeInsets.all(10), - title: Column( - children: [ - SizedBox(height: 20.0), - Container( - alignment: Alignment.topLeft, - height: 420.0, - width: 370.0, - margin: new EdgeInsets.only(left: 20.0, right: 20.0), - decoration: BoxDecoration( - color: Colors.tealAccent, - borderRadius: BorderRadius.all(Radius.circular(20.0)), - ), - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - "Order Number : " + "$orderNo", - style: - TextStyle(color: Colors.deepOrange, fontSize: 22), - ), - Text("Aug 4th 2020"), - ], + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Details'), + ), + body: Container( + padding: EdgeInsets.symmetric(vertical: 40, horizontal: 0), + decoration: BoxDecoration(color: Colors.grey[300]), + child: ListTile( + contentPadding: EdgeInsets.all(10), + title: Container( + decoration: BoxDecoration( + color: Colors.blue[50], + borderRadius: BorderRadius.circular(10), + border: Border.all(color: Colors.grey)), + child: Column( + children: [ + SizedBox(height: 20.0), + Container( + padding: EdgeInsets.all(10), + height: 500.0, + width: 370.0, + decoration: BoxDecoration( + color: Colors.blue[50], + borderRadius: BorderRadius.all(Radius.circular(15.0)), ), - Column( + child: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Padding( - padding: const EdgeInsets.all(10), - child: Text( - "Name : " + "${_orderList[index].name}", - style: TextStyle( - color: Colors.black, fontSize: 15), - ), + Text( + "#${widget.orderNo}", + style: TextStyle( + color: Colors.deepOrange, fontSize: 22), ), + Flexible(child: Text('${widget.date}')), ], ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + SizedBox(height: 8), + Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Padding( - padding: const EdgeInsets.all(10), - child: Text( - "Personal No. : " + - "${_orderList[index].number}", - style: TextStyle( - color: Colors.black, fontSize: 15), - ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "${widget.name}", + style: TextStyle( + color: Colors.black, + fontSize: 22, + fontWeight: FontWeight.w500), + ), + ], ), - ], - ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Flexible( - child: Text( - "Address : " + "${_orderList[index].address}", - style: TextStyle( - color: Colors.black, fontSize: 15), - ), + SizedBox(height: 8), + Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Personal No. :", + style: TextStyle( + color: Colors.grey, + fontSize: 18, + fontWeight: FontWeight.w500), + ), + SizedBox(height: 5), + Padding( + padding: EdgeInsets.fromLTRB(10, 0, 0, 0), + child: Text( + "${widget.number}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ), + ], + ), + SizedBox(height: 8), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Delivered To : ", + style: TextStyle( + color: Colors.grey, + fontSize: 18, + fontWeight: FontWeight.w500), + ), + Container( + width: 300, + child: Padding( + padding: + EdgeInsets.fromLTRB(10, 0, 0, 0), + child: Text( + "${widget.address}", + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ), + ) + ]), + ], ), ], ), - ], - ), - SizedBox(height: 30), - Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - Flexible( - child: Text( - "Cost : ₹" + - "${_orderList[index].total} " + - "${_orderList[index].item}" + - " : " + - "${_orderList[index].qty}", - style: TextStyle(color: Colors.black, fontSize: 22), + SizedBox(height: 20), + Container( + alignment: Alignment.centerLeft, + child: Text( + 'Menu :', + style: TextStyle( + color: Colors.grey, + fontSize: 18, + fontWeight: FontWeight.w500), + )), + Container( + padding: EdgeInsets.fromLTRB(10, 10, 0, 0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Item Name', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.w400, + decoration: TextDecoration.underline)), + Text('Quantity', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.w400, + decoration: TextDecoration.underline)) + ], ), ), - FlatButton( - onPressed: () { - Navigator.pushNamed(context, '/orderdetails'); - }, - shape: new RoundedRectangleBorder( - borderRadius: new BorderRadius.circular(10.0)), - child: Text('View'), - color: Colors.white, - ), - FlatButton( - onPressed: () { - changeConfirmation(_orderList[index].isConfirmed, - _orderList[index].number); - }, - shape: new RoundedRectangleBorder( - borderRadius: new BorderRadius.circular(10.0)), - child: Text(_orderList[index].isConfirmed - ? 'Confirm' - : 'Delete'), - color: Colors.amber, + Flexible( + child: AdminOrderData( + item: widget.item, quantity: widget.quantity), ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Cost : ", + style: TextStyle( + color: Colors.black, fontSize: 22), + ), + Text( + "₹${widget.total} ", + style: TextStyle( + color: Colors.black, fontSize: 22), + ), + ]), + SizedBox(height: 20), + // Container( + // width: double.infinity, + // child: FlatButton( + // onPressed: () {}, + // color: Colors.deepOrange, + // child: Text('Confirm'))) ], ), - ], - ), + ), + ], ), - ], + ), ), - ); - }, - ); + )); } } diff --git a/lib/services/database.dart b/lib/services/database.dart index 48ea1d3..ad67cc8 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -102,7 +102,8 @@ class DatabaseService { Future confirmOrderofUser(String id, String name, String number, String address, List item, List qty, int total, bool isConfirmed) async { - return await confirmedOrders.document().setData({ + var docId = '$id' + '$total'; + return await confirmedOrders.document(docId).setData({ 'id': id, 'name': name, 'number': number, From 5e848e1de1708c83e7aa2ede29d0ffe18b9f9993 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Tue, 15 Sep 2020 21:21:25 +0530 Subject: [PATCH 17/29] fixed admin bug and search add functionality --- lib/CustomWidget/food_card.dart | 71 +++++++++- lib/CustomWidget/foot_category.dart | 16 ++- lib/pages/Food.dart | 2 +- lib/pages/Home.dart | 40 ++++-- lib/pages/Search.dart | 49 +++++-- lib/pages/add_event.dart | 198 +++++++++++++++++++++++++++- lib/services/database.dart | 3 +- 7 files changed, 342 insertions(+), 37 deletions(-) diff --git a/lib/CustomWidget/food_card.dart b/lib/CustomWidget/food_card.dart index a267ac8..a9c4414 100644 --- a/lib/CustomWidget/food_card.dart +++ b/lib/CustomWidget/food_card.dart @@ -10,8 +10,9 @@ class FoodCard extends StatelessWidget { final String categoryName; final String imagePath; final int itemprice; + final bool areYouAdmin; - FoodCard({this.categoryName, this.imagePath, this.itemprice}); + FoodCard({this.areYouAdmin, this.categoryName, this.imagePath, this.itemprice}); StoreData storeData = StoreData(); @@ -49,7 +50,7 @@ class FoodCard extends StatelessWidget { @override Widget build(BuildContext context) { - return FocusedMenuHolder( + return areYouAdmin ? FocusedMenuHolder( onPressed: () {}, menuItems: [ FocusedMenuItem( @@ -142,6 +143,70 @@ class FoodCard extends StatelessWidget { ], ), )), - ); + ) : Container( + width: 160, + margin: EdgeInsets.only(right: 10.0), + decoration: BoxDecoration( + image: DecorationImage( + image: NetworkImage(imagePath), + fit: BoxFit.cover, + ), + borderRadius: BorderRadius.circular(6)), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5), + child: Column( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 60, + child: Text( + categoryName, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16.0, + color: Colors.white), + ), + ), + Text( + '₹' + '$itemprice', + style: TextStyle(color: Colors.white), + ) + ], + ), + InkWell( + onTap: () { + addToCart(categoryName, itemprice); + showFlushbar(context); + }, + child: Container( + height: 25, + width: 45, + decoration: BoxDecoration( + color: Colors.deepOrange, + border: + Border.all(color: Colors.black, width: 0.1), + borderRadius: BorderRadius.circular(5)), + child: Center( + child: Text( + 'Add', + style: TextStyle( + fontWeight: FontWeight.w400, + color: Colors.white), + ), + ), + ), + ) + ]) + ], + ), + )); } } diff --git a/lib/CustomWidget/foot_category.dart b/lib/CustomWidget/foot_category.dart index c03329e..a5a63d9 100644 --- a/lib/CustomWidget/foot_category.dart +++ b/lib/CustomWidget/foot_category.dart @@ -15,15 +15,16 @@ import '../data/category_data.dart'; // Model import '../models/category_model.dart'; -class FoodCategory extends StatefulWidget { - @override - _FoodCategoryState createState() => _FoodCategoryState(); -} +// class FoodCategory extends StatefulWidget { +// @override +// _FoodCategoryState createState() => _FoodCategoryState(); +// } -class _FoodCategoryState extends State { +class FoodCategory extends StatelessWidget { // final List _categories = categories; + final bool areYouAdmin; - + FoodCategory(this.areYouAdmin); @override Widget build(BuildContext context) { @@ -52,9 +53,10 @@ class _FoodCategoryState extends State { return FocusedMenuHolder( onPressed: () {}, menuItems: [ - FocusedMenuItem(title: Text('delete'), onPressed: (){}) + FocusedMenuItem(title: Text('delete'), onPressed: () {}) ], child: FoodCard( + areYouAdmin: areYouAdmin, categoryName: _menuList[index].category_menu, imagePath: _menuList[index].imagepath, itemprice: _menuList[index].price, diff --git a/lib/pages/Food.dart b/lib/pages/Food.dart index 2f41ac8..be18a58 100644 --- a/lib/pages/Food.dart +++ b/lib/pages/Food.dart @@ -111,7 +111,7 @@ class _FoodState extends State { ), ), SizedBox(height: 10.0), - FoodCategory(), + FoodCategory(false), SizedBox(height: 20.0), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index a773f8d..a38f798 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -191,7 +191,7 @@ class _HomeState extends State { ], ), SizedBox(height: 7.0), - FoodCategory(), + FoodCategory(areYouadmin), SizedBox(height: 20.0), Text( " Upcoming Events", @@ -340,6 +340,18 @@ class _AdminOptionState extends State { Widget build(BuildContext context) { if (isAdminglobal || widget.areYouadmin == true) { return Column(children: [ + Container( + padding: EdgeInsets.fromLTRB(10, 0, 0, 10), + child: ListTile( + onTap: () { + Navigator.pushNamed(context, '/uploadImage'); + }, + title: Text( + "Upload Today's Menu", + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), + ), + ), + ), Container( padding: EdgeInsets.fromLTRB(10, 0, 0, 10), child: ListTile( @@ -490,19 +502,19 @@ class _LoadingDataState extends State { )), ), SizedBox(height: 10), - Container( - padding: EdgeInsets.fromLTRB(15, 0, 0, 10), - child: InkWell( - onTap: () { - Navigator.pushNamed(context, '/uploadImage'); - }, - child: Text( - "Upload Today's Menu", - style: TextStyle( - fontWeight: FontWeight.bold, fontSize: 25), - ), - ), - ), + // Container( + // padding: EdgeInsets.fromLTRB(15, 0, 0, 10), + // child: InkWell( + // onTap: () { + // Navigator.pushNamed(context, '/uploadImage'); + // }, + // child: Text( + // "Upload Today's Menu", + // style: TextStyle( + // fontWeight: FontWeight.bold, fontSize: 25), + // ), + // ), + // ), SizedBox(height: 10), AdminOption(areYouadmin: snapshot.data["isAdmin"]), SizedBox(height: 10), diff --git a/lib/pages/Search.dart b/lib/pages/Search.dart index b450da9..51f9e86 100644 --- a/lib/pages/Search.dart +++ b/lib/pages/Search.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/searchService.dart'; +import 'package:rcapp/pages/storeData.dart'; class Search extends StatefulWidget { @override @@ -10,6 +12,7 @@ class Search extends StatefulWidget { class _SearchState extends State { var queryResultSet = []; var tempSearchStore = []; + var priceStore = []; initiateSearch(value) { if (value.length == 0) { @@ -17,6 +20,7 @@ class _SearchState extends State { queryResultSet = []; tempSearchStore = []; }); + print(tempSearchStore); } var capitalizedValue = @@ -52,16 +56,14 @@ class _SearchState extends State { decoration: InputDecoration( prefixIcon: IconButton( color: Colors.black, - icon: Icon(Icons.arrow_back), + icon: Icon(Icons.search), iconSize: 20.0, - onPressed: () { - Navigator.pushNamed(context, '/food'); - }, + onPressed: () {}, ), contentPadding: EdgeInsets.only(left: 25.0), hintText: 'Search by item name', border: - OutlineInputBorder(borderRadius: BorderRadius.circular(4.0))), + OutlineInputBorder(borderRadius: BorderRadius.circular(4.0))), ), ), SearchList(tempSearchStore: tempSearchStore), @@ -70,6 +72,9 @@ class _SearchState extends State { } class SearchQuantity extends StatefulWidget { + final item; + final price; + SearchQuantity({this.item, this.price}); @override _SearchQuantityState createState() => _SearchQuantityState(); } @@ -77,14 +82,36 @@ class SearchQuantity extends StatefulWidget { class _SearchQuantityState extends State { int FQty = 0; + StoreData storeData = StoreData(); + + void addToCart(String item, int price) { + // String item = post.item; + // int price = post.price; + + Map qtyDetail = storeData.retrieveQtyDetails(); + + int qty = 1; + + qtyDetail.forEach((key, value) { + if (key == item) { + qty = value; + } + }); + + if (qty > 1) { + storeData.StoreFoodDetails(item, price, qty); + } else { + storeData.StoreFoodDetails(item, price, 1); + } + showFlushbar(context); + } + @override Widget build(BuildContext context) { if (FQty == 0) { return InkWell( onTap: () { - setState(() { - FQty++; - }); + addToCart(widget.item, widget.price); }, child: Container( margin: EdgeInsets.fromLTRB(0, 0, 14, 0), @@ -238,11 +265,13 @@ class _SearchListState extends State { '${widget.tempSearchStore[index]['item']}', style: TextStyle(fontSize: 17, fontWeight: FontWeight.bold), ), - SearchQuantity(), + SearchQuantity( + item: widget.tempSearchStore[index]['item'], + price: widget.tempSearchStore[index]['price']), ], ), ); }), ); } -} \ No newline at end of file +} diff --git a/lib/pages/add_event.dart b/lib/pages/add_event.dart index 9c89a8d..0242149 100644 --- a/lib/pages/add_event.dart +++ b/lib/pages/add_event.dart @@ -22,6 +22,7 @@ class _AddEventPageState extends State { String _personalno = ''; int slot = 1; DateTime _eventDate; + int numberOfPeople = 1; int _value1 = 1; int _value2 = 1; @@ -38,7 +39,22 @@ class _AddEventPageState extends State { } void confirmBooking() async { - _booking.bookDetails(id, _name, _personalno, loungeColor[_value1], slot, _eventDate); + _booking.bookDetails( + id, _name, _personalno, numberOfPeople, loungeColor[_value1], slot, _eventDate); + if (widget.note != null) { + await eventDBS.updateData(widget.note.id, { + "Name": _name, + "personal no": _personalno, + "Lounge": loungeColor[_value1], + "event_date": widget.note.eventDate + }); + } else { + await eventDBS.createItem(EventModel( + name: _name, + personalno: _personalno, + Lounge: loungeColor[_value1], + eventDate: _eventDate)); + } Navigator.pop(context); } @@ -101,6 +117,26 @@ class _AddEventPageState extends State { onChanged: (val) { setState(() => _personalno = val); }), + SizedBox(height: 10), + TextFormField( + decoration: InputDecoration( + hintText: 'Number of People(Max: 5)', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: + BorderSide(color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: + BorderSide(color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => int.tryParse(val) <= 5 + ? 'Number of Peoples should be less than 5' + : null, + onChanged: (val) { + setState(() => numberOfPeople = int.tryParse(val)); + }), const SizedBox(height: 10.0), DropdownButton( value: _value1, @@ -184,3 +220,163 @@ class _AddEventPageState extends State { ); } } + +// class AddEventPage extends StatefulWidget { +// final EventModel note; + +// const AddEventPage({Key key, this.note}) : super(key: key); + +// @override +// _AddEventPageState createState() => _AddEventPageState(); +// } + +// class _AddEventPageState extends State { +// TextStyle style = TextStyle(fontFamily: 'Montserrat', fontSize: 20.0); +// TextEditingController _name; +// TextEditingController _personalno; +// TextEditingController _Lounge; +// DateTime _eventDate; +// final _formKey = GlobalKey(); +// final _key = GlobalKey(); +// bool processing; + +// @override +// void initState() { +// super.initState(); +// _name = TextEditingController(text: widget.note != null ? widget.note.name : ""); +// _personalno = TextEditingController(text: widget.note != null ? widget.note.personalno : ""); +// _Lounge = TextEditingController(text: widget.note != null ? widget.note.Lounge : ""); +// _eventDate = DateTime.now(); +// processing = false; +// } + +// @override +// Widget build(BuildContext context) { +// return Scaffold( +// appBar: AppBar( +// title: Text(widget.note != null ? "Edit Note" : "Booking Details"), +// elevation: 10.0, +// backgroundColor: Colors.deepOrange, +// ), +// key: _key, +// body: Form( +// key: _formKey, +// child: Container( +// alignment: Alignment.center, +// child: ListView( +// children: [ +// Padding( +// padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), +// child: TextFormField( +// controller: _name, +// validator: (value) => +// (value.isEmpty) ? "Please Enter Your Name" : null, +// style: style, +// decoration: InputDecoration( +// labelText: "Name", +// filled: true, +// fillColor: Colors.white, +// border: OutlineInputBorder(borderRadius: BorderRadius.circular(10))), +// ), +// ), +// Padding( +// padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), +// child: TextFormField( +// controller: _personalno, +// //minLines: 3, +// //maxLines: 5, +// validator: (value) => +// (value.isEmpty) ? "Please Enter Your Personal Number" : null, +// style: style, +// decoration: InputDecoration( +// labelText: "Personal No", +// border: OutlineInputBorder(borderRadius: BorderRadius.circular(10))), +// ), +// ), +// const SizedBox(height: 10.0), +// Padding( +// padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), +// child: TextFormField( +// controller: _Lounge, +// validator: (value) => +// (value.isEmpty) ? "Please Enter The Lounge you want to book (Yellow/Red/Blue) " : null, +// style: style, +// decoration: InputDecoration( +// labelText: "Lounge to book (Yellow/Red/Blue)", +// border: OutlineInputBorder(borderRadius: BorderRadius.circular(10))), +// ), +// ), +// const SizedBox(height: 10.0), +// ListTile( +// title: Text("Date (YYYY-MM-DD)"), +// subtitle: Text("${_eventDate.year} - ${_eventDate.month} - ${_eventDate.day}"), +// onTap: ()async{ +// DateTime picked = await showDatePicker(context: context, initialDate: _eventDate, firstDate: DateTime(_eventDate.year-5), lastDate: DateTime(_eventDate.year+5)); +// if(picked != null) { +// setState(() { +// _eventDate = picked; +// }); +// } +// }, +// ), + +// SizedBox(height: 10.0), +// processing +// ? Center(child: CircularProgressIndicator()) +// : Padding( +// padding: const EdgeInsets.symmetric(horizontal: 16.0), +// child: Material( +// elevation: 5.0, +// borderRadius: BorderRadius.circular(30.0), +// color: Theme.of(context).primaryColor, +// child: MaterialButton( +// onPressed: () async { +// if (_formKey.currentState.validate()) { +// setState(() { +// processing = true; +// }); +// if(widget.note != null) { +// await eventDBS.updateData(widget.note.id,{ +// "Name": _name.text, +// "personal no": _personalno.text, +// "Lounge": _Lounge.text, +// "event_date": widget.note.eventDate +// }); +// }else{ +// await eventDBS.createItem(EventModel( +// name: _name.text, +// personalno: _personalno.text, +// Lounge: _Lounge.text, +// eventDate: _eventDate +// )); +// } +// Navigator.pop(context); +// setState(() { +// processing = false; +// }); +// } +// }, +// child: Text( +// "Save", +// style: style.copyWith( +// color: Colors.white, +// fontWeight: FontWeight.bold), +// ), +// ), +// ), +// ), +// ], +// ), +// ), +// ), +// ); +// } + +// @override +// void dispose() { +// _name.dispose(); +// _personalno.dispose(); +// _Lounge.dispose(); +// super.dispose(); +// } +// } diff --git a/lib/services/database.dart b/lib/services/database.dart index ad67cc8..7dccd76 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -88,12 +88,13 @@ class DatabaseService { .setData({'title': title, 'subtitle': subtitle, 'downloadLink': url}); } - Future bookDetails(String id, String name, String number, String lounge, + Future bookDetails(String id, String name, String number, int numberOfPeople, String lounge, int slot, DateTime date) async { return await bookingDetails.document().setData({ 'id': id, 'name': name, 'number': number, + 'numberOfPeople': numberOfPeople, 'lounge': lounge, 'slot': slot, 'date': '${date.day}' + '/' + '${date.month}' + '/' + '${date.year}' From 582d9ea6676e018216a2e59a473f25a7dbb40c8e Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Wed, 16 Sep 2020 14:15:35 +0530 Subject: [PATCH 18/29] fixed food navigation bug along with booking ui changes --- ...ys_menucard.dart => booking_menuCard.dart} | 0 ...ategory.dart => booking_menuCategory.dart} | 4 +- lib/data/todays_menu.dart | 10 +- lib/main.dart | 12 ++ lib/models/todays_menumodel.dart | 4 +- lib/pages/BlueL.dart | 38 ++++++ lib/pages/Booking.dart | 127 +++++++++++------- lib/pages/Coluseum.dart | 38 ++++++ lib/pages/Home.dart | 2 +- lib/pages/Login.dart | 4 +- lib/pages/Milan.dart | 37 +++++ lib/pages/MilapL.dart | 39 ++++++ lib/pages/NavigationBar.dart | 2 +- lib/pages/YellowL.dart | 38 ++++++ 14 files changed, 290 insertions(+), 65 deletions(-) rename lib/CustomWidget/{todays_menucard.dart => booking_menuCard.dart} (100%) rename lib/CustomWidget/{todays_menucategory.dart => booking_menuCategory.dart} (85%) create mode 100644 lib/pages/BlueL.dart create mode 100644 lib/pages/Coluseum.dart create mode 100644 lib/pages/Milan.dart create mode 100644 lib/pages/MilapL.dart create mode 100644 lib/pages/YellowL.dart diff --git a/lib/CustomWidget/todays_menucard.dart b/lib/CustomWidget/booking_menuCard.dart similarity index 100% rename from lib/CustomWidget/todays_menucard.dart rename to lib/CustomWidget/booking_menuCard.dart diff --git a/lib/CustomWidget/todays_menucategory.dart b/lib/CustomWidget/booking_menuCategory.dart similarity index 85% rename from lib/CustomWidget/todays_menucategory.dart rename to lib/CustomWidget/booking_menuCategory.dart index 796a531..431adbc 100644 --- a/lib/CustomWidget/todays_menucategory.dart +++ b/lib/CustomWidget/booking_menuCategory.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:rcapp/CustomWidget/todays_menucard.dart'; +import 'package:rcapp/CustomWidget/booking_menuCard.dart'; import 'package:rcapp/data/todays_menu.dart'; import 'package:rcapp/models/todays_menumodel.dart'; class TodaysMenuCategory extends StatelessWidget { - final List _categories = todaymenucategories; + final List _categories = todaymenucategories; @override Widget build(BuildContext context) { diff --git a/lib/data/todays_menu.dart b/lib/data/todays_menu.dart index bd343e9..7b68253 100644 --- a/lib/data/todays_menu.dart +++ b/lib/data/todays_menu.dart @@ -1,12 +1,12 @@ import 'package:rcapp/models/todays_menumodel.dart'; final todaymenucategories = [ - TodaysMenu( + BookingMenu( itemprice: 120, imagePath: "assets/1.jpg", categoryName: "Chicked wings"), - TodaysMenu(itemprice: 100, imagePath: "assets/2.jpg", categoryName: "Pizza"), - TodaysMenu( + BookingMenu(itemprice: 100, imagePath: "assets/2.jpg", categoryName: "Pizza"), + BookingMenu( itemprice: 150, imagePath: "assets/3.jpg", categoryName: "Coffe Cup"), - TodaysMenu(itemprice: 90, imagePath: "assets/4.jpg", categoryName: "Beer"), - TodaysMenu( + BookingMenu(itemprice: 90, imagePath: "assets/4.jpg", categoryName: "Beer"), + BookingMenu( itemprice: 110, imagePath: "assets/5.jpg", categoryName: "Cheese Burger"), ]; diff --git a/lib/main.dart b/lib/main.dart index 42d9a91..245aab7 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_downloader/flutter_downloader.dart'; +import 'package:rcapp/pages/BlueL.dart'; import 'package:rcapp/pages/Cart.dart'; import 'package:rcapp/pages/CategoryMenuList/Accompaniment_Menu.dart'; import 'package:rcapp/pages/CategoryMenuList/All_Menu.dart'; @@ -18,8 +19,12 @@ import 'package:rcapp/pages/CategoryMenuList/Snacks_Menu.dart'; import 'package:rcapp/pages/CategoryMenuList/Soup_Menu.dart'; import 'package:rcapp/pages/CategoryMenuList/Starter_Menu.dart'; import 'package:rcapp/pages/CategoryMenuList/Tandoori_Menu.dart'; +import 'package:rcapp/pages/Coluseum.dart'; import 'package:rcapp/pages/Food.dart'; +import 'package:rcapp/pages/Milan.dart'; +import 'package:rcapp/pages/MilapL.dart'; import 'package:rcapp/pages/NavigationBar.dart'; +import 'package:rcapp/pages/YellowL.dart'; import 'package:rcapp/pages/add_event.dart'; import 'package:rcapp/pages/address.dart'; import 'package:rcapp/pages/adminBooking.dart'; @@ -89,6 +94,13 @@ class MyApp extends StatelessWidget { "/tandoorimenu": (context) => Tandoori_MenuList(), "/accompanimentmenu": (context) => Accompaniment_Menu(), + // lounge routes + "/bluelounge": (context) => BlueLounge(), + "/yellowlounge": (context) => YellowLounge(), + "/milanlounge" : (context) => MilanLounge(), + "/milaplounge" : (context) => MilapLounge(), + "/coluseum" : (context) => Coluseum(), + //Routes for admin "/uploadImage": (context) => UploadImage(), "/uploadPdf": (context) => UploadPdf() diff --git a/lib/models/todays_menumodel.dart b/lib/models/todays_menumodel.dart index 9843bdd..7bac148 100644 --- a/lib/models/todays_menumodel.dart +++ b/lib/models/todays_menumodel.dart @@ -1,7 +1,7 @@ -class TodaysMenu { +class BookingMenu { final String categoryName; final String imagePath; final int itemprice; - TodaysMenu({this.categoryName, this.imagePath, this.itemprice}); + BookingMenu({this.categoryName, this.imagePath, this.itemprice}); } diff --git a/lib/pages/BlueL.dart b/lib/pages/BlueL.dart new file mode 100644 index 0000000..265a3b9 --- /dev/null +++ b/lib/pages/BlueL.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; + + +class BlueLounge extends StatefulWidget { + @override + _BlueLoungeState createState() => _BlueLoungeState(); +} + +class _BlueLoungeState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + elevation: 10.0, + backgroundColor: Colors.deepOrange, + title: Text('Blue Lounge'), + ), + body: new ListView( + children: [ + InkWell( + child: Container( + height: 200.0, + width: double.infinity, + padding: EdgeInsets.symmetric(horizontal: 50, vertical: 30), + margin: EdgeInsets.symmetric(horizontal: 10, vertical: 20), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/12.jpg"), + fit: BoxFit.fill)), + ), + ), + ], + ), + ); + } +} diff --git a/lib/pages/Booking.dart b/lib/pages/Booking.dart index 61917a3..6c80f60 100644 --- a/lib/pages/Booking.dart +++ b/lib/pages/Booking.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:carousel_pro/carousel_pro.dart'; +import 'package:rcapp/pages/NavigationBar.dart'; class Booking extends StatefulWidget { @override @@ -10,73 +11,94 @@ class _BookingState extends State { @override Widget build(BuildContext context) { Widget image_carousel1 = new Container( - height: 200.0, + margin: EdgeInsets.all(5), + height: 180.0, child: new Carousel( boxFit: BoxFit.cover, images: [ - Card( - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/12.jpg'), - fit: BoxFit.fitWidth, - alignment: Alignment.topCenter, + GestureDetector( + onTap: () { + Navigator.pushNamed(context, "/bluelounge"); + }, + child: Card( + child: Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/12.jpg'), + fit: BoxFit.fitWidth, + alignment: Alignment.topCenter, + ), ), - ), - child: Text("The Blue Lounge", - style: TextStyle( - color: Colors.white, - fontSize: 25, - fontWeight: FontWeight.bold, + child: Text( + "The Blue Lounge", + style: TextStyle( + color: Colors.white, + fontSize: 25, + fontWeight: FontWeight.bold, + ), ), ), ), ), - Card( - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/13.jpg'), - fit: BoxFit.fitWidth, - alignment: Alignment.topCenter, + GestureDetector( + onTap: () { + Navigator.pushNamed(context, "/yellowlounge"); + }, + child: Card( + child: Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/13.jpg'), + fit: BoxFit.fitWidth, + alignment: Alignment.topCenter, + ), ), - ), - child: Text("The Yellow Lounge", - style: TextStyle( - color: Colors.white, - fontSize: 25, - fontWeight: FontWeight.bold, + child: Text( + "The Yellow Lounge", + style: TextStyle( + color: Colors.white, + fontSize: 25, + fontWeight: FontWeight.bold, + ), ), ), ), ), - Card( - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/17.jpg'), - fit: BoxFit.fitWidth, - alignment: Alignment.topCenter, + GestureDetector( + onTap: () { + Navigator.pushNamed(context, "/milaplounge"); + }, + child: Card( + child: Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/17.jpg'), + fit: BoxFit.fitWidth, + alignment: Alignment.topCenter, + ), ), - ), - child: Text("Milap Reception Hall", - style: TextStyle( - color: Colors.white, - fontSize: 25, - fontWeight: FontWeight.bold, + child: Text( + "Milap Reception Hall", + style: TextStyle( + color: Colors.white, + fontSize: 25, + fontWeight: FontWeight.bold, + ), ), ), ), ), ], - autoplay: true, - animationCurve: Curves.fastOutSlowIn, - animationDuration: Duration(milliseconds: 1000), + autoplay: false, + dotBgColor: Colors.transparent, + borderRadius: true, + dotSize: 0, ), ); Widget image_carousel2 = new Container( - height: 200.0, + margin: EdgeInsets.all(5), + height: 180.0, child: new Carousel( boxFit: BoxFit.cover, images: [ @@ -89,7 +111,8 @@ class _BookingState extends State { alignment: Alignment.topCenter, ), ), - child: Text("Main Banquet", + child: Text( + "Main Banquet", style: TextStyle( color: Colors.white, fontSize: 25, @@ -107,7 +130,8 @@ class _BookingState extends State { alignment: Alignment.topCenter, ), ), - child: Text("Wedding Reception Hall", + child: Text( + "Wedding Reception Hall", style: TextStyle( color: Colors.white, fontSize: 25, @@ -116,15 +140,14 @@ class _BookingState extends State { ), ), ), - ], - autoplay: true, - animationCurve: Curves.fastOutSlowIn, - animationDuration: Duration(milliseconds: 1000), + autoplay: false, + dotSize: 0, + borderRadius: true, + dotBgColor: Colors.transparent, ), ); - return Scaffold( appBar: AppBar( automaticallyImplyLeading: false, @@ -173,4 +196,4 @@ class _BookingState extends State { ), ); } -} \ No newline at end of file +} diff --git a/lib/pages/Coluseum.dart b/lib/pages/Coluseum.dart new file mode 100644 index 0000000..a8667b1 --- /dev/null +++ b/lib/pages/Coluseum.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; + + +class Coluseum extends StatefulWidget { + @override + _ColuseumState createState() => _ColuseumState(); +} + +class _ColuseumState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + elevation: 10.0, + backgroundColor: Colors.deepOrange, + title: Text('Blue Lounge'), + ), + body: new ListView( + children: [ + InkWell( + child: Container( + height: 200.0, + width: double.infinity, + padding: EdgeInsets.symmetric(horizontal: 50, vertical: 30), + margin: EdgeInsets.symmetric(horizontal: 10, vertical: 20), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/14.jpg"), + fit: BoxFit.fill)), + ), + ), + ], + ), + ); + } +} diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index a38f798..479842e 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -7,7 +7,7 @@ import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:rcapp/CustomWidget/foot_category.dart'; -import 'package:rcapp/CustomWidget/todays_menucategory.dart'; +import 'package:rcapp/CustomWidget/booking_menuCategory.dart'; import 'package:rcapp/models/user.dart'; import 'package:rcapp/services/auth.dart'; import 'package:provider/provider.dart'; diff --git a/lib/pages/Login.dart b/lib/pages/Login.dart index 05b41d2..b232ef3 100644 --- a/lib/pages/Login.dart +++ b/lib/pages/Login.dart @@ -68,7 +68,7 @@ class _LoginState extends State { SizedBox(height: 18.0), TextFormField( decoration: InputDecoration( - hintText: 'Mobile NO.', + hintText: 'Personal Number', fillColor: Colors.white, filled: true, enabledBorder: OutlineInputBorder( @@ -80,7 +80,7 @@ class _LoginState extends State { color: Colors.deepOrange, width: 3.0), borderRadius: BorderRadius.circular(10))), validator: (val) => val.isEmpty - ? 'Enter Your Registered Mobile No.' + ? 'Enter Your RSP Personal Number' : null, onChanged: (val) { setState(() => number = val); diff --git a/lib/pages/Milan.dart b/lib/pages/Milan.dart new file mode 100644 index 0000000..96e3782 --- /dev/null +++ b/lib/pages/Milan.dart @@ -0,0 +1,37 @@ +import 'package:flutter/material.dart'; + + +class MilanLounge extends StatefulWidget { + @override + _MilanLoungeState createState() => _MilanLoungeState(); +} + +class _MilanLoungeState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + elevation: 10.0, + backgroundColor: Colors.deepOrange, + title: Text('Blue Lounge'), + ), + body: new ListView( + children: [ + InkWell( + child: Container( + height: 200.0, + width: double.infinity, + padding: EdgeInsets.symmetric(horizontal: 50, vertical: 30), + margin: EdgeInsets.symmetric(horizontal: 10, vertical: 20), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/14.jpg"), + fit: BoxFit.fill)), + ), + ), + ], + ), + ); } +} diff --git a/lib/pages/MilapL.dart b/lib/pages/MilapL.dart new file mode 100644 index 0000000..8f19272 --- /dev/null +++ b/lib/pages/MilapL.dart @@ -0,0 +1,39 @@ +import 'package:flutter/material.dart'; + + + +class MilapLounge extends StatefulWidget { + @override + _MilapLoungeState createState() => _MilapLoungeState(); +} + +class _MilapLoungeState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + elevation: 10.0, + backgroundColor: Colors.deepOrange, + title: Text('Milap Lounge'), + ), + body: new ListView( + children: [ + InkWell( + child: Container( + height: 200.0, + width: double.infinity, + padding: EdgeInsets.symmetric(horizontal: 50, vertical: 30), + margin: EdgeInsets.symmetric(horizontal: 10, vertical: 20), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/17.jpg"), + fit: BoxFit.fill)), + ), + ), + ], + ), + ); + } +} diff --git a/lib/pages/NavigationBar.dart b/lib/pages/NavigationBar.dart index 7e4b31a..a283f00 100644 --- a/lib/pages/NavigationBar.dart +++ b/lib/pages/NavigationBar.dart @@ -41,7 +41,7 @@ class _NavigationBarState extends State { icon: Icon(Icons.fastfood), title: Text('Food'), backgroundColor: Colors.deepOrange, - activeIcon: Icon(Icons.home, color: Colors.deepOrange), + activeIcon: Icon(Icons.fastfood, color: Colors.deepOrange), ), BottomNavigationBarItem( icon: Icon(Icons.book), diff --git a/lib/pages/YellowL.dart b/lib/pages/YellowL.dart new file mode 100644 index 0000000..08d0dc8 --- /dev/null +++ b/lib/pages/YellowL.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; + + +class YellowLounge extends StatefulWidget { + @override + _YellowLoungeState createState() => _YellowLoungeState(); +} + +class _YellowLoungeState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + elevation: 10.0, + backgroundColor: Colors.deepOrange, + title: Text('Yellow Lounge'), + ), + body: new ListView( + children: [ + InkWell( + child: Container( + height: 200.0, + width: double.infinity, + padding: EdgeInsets.symmetric(horizontal: 50, vertical: 30), + margin: EdgeInsets.symmetric(horizontal: 10, vertical: 20), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/13.jpg"), + fit: BoxFit.fill)), + ), + ), + ], + ), + ); + } +} From 9c29e8f9af690ca96365e031cd0a6faa28b52cef Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Wed, 16 Sep 2020 14:53:34 +0530 Subject: [PATCH 19/29] ui change --- ...ing_menuCard.dart => todays_menucard.dart} | 0 ...Category.dart => todays_menucategory.dart} | 4 +- lib/data/todays_menu.dart | 10 ++--- lib/models/todays_menumodel.dart | 4 +- lib/pages/Home.dart | 1 - lib/pages/booking_calendar.dart | 1 + lib/pages/confirmOrder.dart | 41 +++++++++---------- 7 files changed, 30 insertions(+), 31 deletions(-) rename lib/CustomWidget/{booking_menuCard.dart => todays_menucard.dart} (100%) rename lib/CustomWidget/{booking_menuCategory.dart => todays_menucategory.dart} (85%) diff --git a/lib/CustomWidget/booking_menuCard.dart b/lib/CustomWidget/todays_menucard.dart similarity index 100% rename from lib/CustomWidget/booking_menuCard.dart rename to lib/CustomWidget/todays_menucard.dart diff --git a/lib/CustomWidget/booking_menuCategory.dart b/lib/CustomWidget/todays_menucategory.dart similarity index 85% rename from lib/CustomWidget/booking_menuCategory.dart rename to lib/CustomWidget/todays_menucategory.dart index 431adbc..796a531 100644 --- a/lib/CustomWidget/booking_menuCategory.dart +++ b/lib/CustomWidget/todays_menucategory.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:rcapp/CustomWidget/booking_menuCard.dart'; +import 'package:rcapp/CustomWidget/todays_menucard.dart'; import 'package:rcapp/data/todays_menu.dart'; import 'package:rcapp/models/todays_menumodel.dart'; class TodaysMenuCategory extends StatelessWidget { - final List _categories = todaymenucategories; + final List _categories = todaymenucategories; @override Widget build(BuildContext context) { diff --git a/lib/data/todays_menu.dart b/lib/data/todays_menu.dart index 7b68253..bd343e9 100644 --- a/lib/data/todays_menu.dart +++ b/lib/data/todays_menu.dart @@ -1,12 +1,12 @@ import 'package:rcapp/models/todays_menumodel.dart'; final todaymenucategories = [ - BookingMenu( + TodaysMenu( itemprice: 120, imagePath: "assets/1.jpg", categoryName: "Chicked wings"), - BookingMenu(itemprice: 100, imagePath: "assets/2.jpg", categoryName: "Pizza"), - BookingMenu( + TodaysMenu(itemprice: 100, imagePath: "assets/2.jpg", categoryName: "Pizza"), + TodaysMenu( itemprice: 150, imagePath: "assets/3.jpg", categoryName: "Coffe Cup"), - BookingMenu(itemprice: 90, imagePath: "assets/4.jpg", categoryName: "Beer"), - BookingMenu( + TodaysMenu(itemprice: 90, imagePath: "assets/4.jpg", categoryName: "Beer"), + TodaysMenu( itemprice: 110, imagePath: "assets/5.jpg", categoryName: "Cheese Burger"), ]; diff --git a/lib/models/todays_menumodel.dart b/lib/models/todays_menumodel.dart index 7bac148..9843bdd 100644 --- a/lib/models/todays_menumodel.dart +++ b/lib/models/todays_menumodel.dart @@ -1,7 +1,7 @@ -class BookingMenu { +class TodaysMenu { final String categoryName; final String imagePath; final int itemprice; - BookingMenu({this.categoryName, this.imagePath, this.itemprice}); + TodaysMenu({this.categoryName, this.imagePath, this.itemprice}); } diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index 479842e..817a109 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -7,7 +7,6 @@ import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:rcapp/CustomWidget/foot_category.dart'; -import 'package:rcapp/CustomWidget/booking_menuCategory.dart'; import 'package:rcapp/models/user.dart'; import 'package:rcapp/services/auth.dart'; import 'package:provider/provider.dart'; diff --git a/lib/pages/booking_calendar.dart b/lib/pages/booking_calendar.dart index 5056977..875f2aa 100644 --- a/lib/pages/booking_calendar.dart +++ b/lib/pages/booking_calendar.dart @@ -65,6 +65,7 @@ class _CalendarState extends State { canEventMarkersOverflow: true, todayColor: Colors.orange, selectedColor: Theme.of(context).primaryColor, + todayStyle: TextStyle( fontWeight: FontWeight.bold, fontSize: 18.0, diff --git a/lib/pages/confirmOrder.dart b/lib/pages/confirmOrder.dart index 114fce0..9b98f88 100644 --- a/lib/pages/confirmOrder.dart +++ b/lib/pages/confirmOrder.dart @@ -48,8 +48,8 @@ class _ConfirmOrderState extends State { var number = _dat.data["number"]; var address = _dat.data["address"]; - DatabaseService().confirmOrderofUser( - user.uid, userName, number, address, itemList, quantityList, total, false); + DatabaseService().confirmOrderofUser(user.uid, userName, number, address, + itemList, quantityList, total, false); storeData.resetStore(); updateTotal(); @@ -66,33 +66,32 @@ class _ConfirmOrderState extends State { title: Text('Payment'), ), body: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ SizedBox( child: Row( - children: [ - IconButton( - icon: Icon(Icons.radio_button_checked), - color: Colors.green, - ), - Text('CASH ON DELIVERY') - ], - )), - SizedBox(height: 300), + children: [ + IconButton( + icon: Icon(Icons.radio_button_checked), + color: Colors.green, + ), + Text('CASH ON DELIVERY') + ], + )), + // SizedBox(height: 300), SizedBox( - width: double.infinity, - height: 40, - child:ButtonTheme( + width: double.infinity, + height: 60, + child: ButtonTheme( child: RaisedButton( - color: Colors.deepOrange, + color: Colors.deepOrange, onPressed: () { confirmOrder(); }, - child: Text('CONFIRM ORDER', style: TextStyle( - color: Colors.white, - ))), - ) - ), + child: Text('CONFIRM ORDER', + style: TextStyle(color: Colors.white, fontSize: 18))), + )), ], )); } -} \ No newline at end of file +} From ac26b2d4f8bb4087e2262bfc1e8a09ab7bbcc6e0 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Thu, 17 Sep 2020 11:27:21 +0530 Subject: [PATCH 20/29] added confirm and delete functionality in adminbooking page --- lib/main.dart | 9 +- lib/models/event.dart | 12 +- lib/pages/Home.dart | 15 ++- lib/pages/add_event.dart | 38 +++--- lib/pages/adminBooking.dart | 177 +++++++++++++++++++++++++-- lib/pages/admin_order_confirm.dart | 18 +-- lib/pages/previousBooking.dart | 2 + lib/pages/view_event.dart | 12 +- lib/res/event_firestore_service.dart | 4 +- lib/services/database.dart | 15 ++- 10 files changed, 251 insertions(+), 51 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 245aab7..fe31c55 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,4 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; import 'package:flutter_downloader/flutter_downloader.dart'; import 'package:rcapp/pages/BlueL.dart'; @@ -43,7 +44,7 @@ import 'package:provider/provider.dart'; import 'package:rcapp/models/user.dart'; void main() async { - WidgetsFlutterBinding.ensureInitialized(); + WidgetsFlutterBinding.ensureInitialized(); await FlutterDownloader.initialize( debug: true // optional: set false to disable printing logs to console ); @@ -97,9 +98,9 @@ class MyApp extends StatelessWidget { // lounge routes "/bluelounge": (context) => BlueLounge(), "/yellowlounge": (context) => YellowLounge(), - "/milanlounge" : (context) => MilanLounge(), - "/milaplounge" : (context) => MilapLounge(), - "/coluseum" : (context) => Coluseum(), + "/milanlounge": (context) => MilanLounge(), + "/milaplounge": (context) => MilapLounge(), + "/coluseum": (context) => Coluseum(), //Routes for admin "/uploadImage": (context) => UploadImage(), diff --git a/lib/models/event.dart b/lib/models/event.dart index 2e0dede..f728e03 100644 --- a/lib/models/event.dart +++ b/lib/models/event.dart @@ -4,10 +4,12 @@ class EventModel extends DatabaseItem { final String id; final String name; final String personalno; + final int slot; + final int numberOfPeople; final String Lounge; final DateTime eventDate; - EventModel({this.id, this.name, this.personalno, this.Lounge, this.eventDate}) + EventModel({this.id, this.name, this.personalno, this.Lounge, this.eventDate, this.slot, this.numberOfPeople}) : super(id); factory EventModel.fromMap(Map data) { @@ -16,15 +18,18 @@ class EventModel extends DatabaseItem { personalno: data['personal no'], Lounge: data['Lounge'], eventDate: data['event_date'], + slot: data['slot'], + numberOfPeople: data['numberOfPeople'] ); } factory EventModel.fromDS(String id, Map data) { return EventModel( - id: id, name: data['name'], personalno: data['personal no'], Lounge: data['Lounge'], + slot: data['slot'], + numberOfPeople: data['numberOfPeople'], eventDate: data['event_date'].toDate(), ); } @@ -35,7 +40,8 @@ class EventModel extends DatabaseItem { "personal no": personalno, "Lounge": Lounge, "event_date": eventDate, - "id": id, + "slot": slot, + "numberOfPeople": numberOfPeople }; } } \ No newline at end of file diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index 817a109..537ff49 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -1,5 +1,6 @@ import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; +import 'package:firebase_storage/firebase_storage.dart'; import 'package:flutter/material.dart'; import 'package:carousel_pro/carousel_pro.dart'; import 'package:flutter_downloader/flutter_downloader.dart'; @@ -43,6 +44,17 @@ class _HomeState extends State { } } + void exp() async { + var date = 1600288449003; + var result = await Firestore.instance + .collection('events') + .where('slot', isEqualTo: 1) + .getDocuments(); + result.documents.forEach((element) { + print(DateTime.fromMillisecondsSinceEpoch(date)); + }); + } + @override void initState() { // TODO: implement initState @@ -175,7 +187,8 @@ class _HomeState extends State { if (areYouadmin) ...[ FlatButton( onPressed: () { - Navigator.pushNamed(context, '/uploadImage'); + // Navigator.pushNamed(context, '/uploadImage'); + exp(); }, shape: new RoundedRectangleBorder( borderRadius: new BorderRadius.circular(10.0)), diff --git a/lib/pages/add_event.dart b/lib/pages/add_event.dart index 0242149..20780aa 100644 --- a/lib/pages/add_event.dart +++ b/lib/pages/add_event.dart @@ -39,22 +39,26 @@ class _AddEventPageState extends State { } void confirmBooking() async { - _booking.bookDetails( - id, _name, _personalno, numberOfPeople, loungeColor[_value1], slot, _eventDate); - if (widget.note != null) { - await eventDBS.updateData(widget.note.id, { - "Name": _name, - "personal no": _personalno, - "Lounge": loungeColor[_value1], - "event_date": widget.note.eventDate - }); - } else { - await eventDBS.createItem(EventModel( - name: _name, - personalno: _personalno, - Lounge: loungeColor[_value1], - eventDate: _eventDate)); - } + _booking.bookDetails(id, _name, _personalno, numberOfPeople, + loungeColor[_value1-1], slot, _eventDate); + // if (widget.note != null) { + // await eventDBS.updateData(widget.note.id, { + // "name": _name, + // "personal no": _personalno, + // "Lounge": loungeColor[_value1-1], + // "event_date": widget.note.eventDate, + // "slot": slot, + // "numberOfPeople": numberOfPeople + // }); + // } else { + // await eventDBS.createItem(EventModel( + // name: _name, + // personalno: _personalno, + // Lounge: loungeColor[_value1-1], + // eventDate: _eventDate, + // slot: slot, + // numberOfPeople: numberOfPeople)); + // } Navigator.pop(context); } @@ -131,7 +135,7 @@ class _AddEventPageState extends State { borderSide: BorderSide(color: Colors.deepOrange, width: 3.0), borderRadius: BorderRadius.circular(10))), - validator: (val) => int.tryParse(val) <= 5 + validator: (val) => int.tryParse(val) > 5 ? 'Number of Peoples should be less than 5' : null, onChanged: (val) { diff --git a/lib/pages/adminBooking.dart b/lib/pages/adminBooking.dart index 5d1c280..a0b05ef 100644 --- a/lib/pages/adminBooking.dart +++ b/lib/pages/adminBooking.dart @@ -3,9 +3,16 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:provider/provider.dart'; +import 'package:rcapp/models/event.dart'; import 'package:rcapp/models/user.dart'; +import 'package:rcapp/services/database.dart'; +import 'package:rcapp/res/event_firestore_service.dart'; class AdminBooking extends StatefulWidget { + final EventModel note; + + const AdminBooking({Key key, this.note}) : super(key: key); + @override _AdminBookingState createState() => _AdminBookingState(); } @@ -18,24 +25,62 @@ class _AdminBookingState extends State { String lounge = ''; int slot; int documentlength = 1; + String status = ''; void initialData() async { - var result = - await Firestore.instance.collection('BookingDetails').getDocuments(); + var result = await Firestore.instance + .collection('BookingDetails') + .orderBy('_date', descending: true) + .getDocuments(); setState(() { documentlength = result.documents.length; }); result.documents.forEach((res) { setState(() { bookings.add(res.data); - name = res.data["name"]; - number = res.data["number"]; - lounge = res.data["lounge"]; - slot = res.data["slot"]; }); }); } + void rejectBookinHistory(int _eventDate, int index) async { + await Firestore.instance + .collection('BookingDetails') + .document('$_eventDate') + .delete(); + setState(() { + bookings.removeAt(index); + }); + } + + void confirmBooking(String _name, String _personalno, String loungeColor, + int _slot, int numberOfPeople, int _eventDate, int index) async { + await Firestore.instance + .collection('BookingDetails') + .document('$_eventDate') + .updateData({'isConfirmed': true}); + setState(() { + bookings[index]["isConfirmed"] = true; + }); + if (widget.note != null) { + await eventDBS.updateData(widget.note.id, { + "name": _name, + "personal no": _personalno, + "Lounge": loungeColor, + "event_date": widget.note.eventDate, + "slot": _slot, + "numberOfPeople": numberOfPeople + }); + } else { + await eventDBS.createItem(EventModel( + name: _name, + personalno: _personalno, + Lounge: loungeColor, + eventDate: DateTime.fromMillisecondsSinceEpoch(_eventDate), + slot: _slot, + numberOfPeople: numberOfPeople)); + } + } + @override void initState() { // TODO: implement initState @@ -62,7 +107,7 @@ class _AdminBookingState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Icon(Icons.all_inclusive), + Icon(Icons.all_inclusive), Text('No data') ])), ); @@ -79,6 +124,7 @@ class _AdminBookingState extends State { shrinkWrap: true, itemCount: bookings.length, itemBuilder: (_, index) { + orderNo = 110; orderNo += index; return ListTile( contentPadding: EdgeInsets.all(10), @@ -166,9 +212,126 @@ class _AdminBookingState extends State { fontSize: 18, fontWeight: FontWeight.w400), ), + Text( + bookings[index]["isConfirmed"] + ? 'Status: Confirmed' + : 'Status: Not Confirmed', + style: TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w400)), + SizedBox(width: 30) ], ), + SizedBox(height: 10), ]), + if (!bookings[index]["isConfirmed"]) ...[ + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Row(children: [ + Container( + height: 30, + width: 100, + child: FlatButton( + onPressed: () { + rejectBookinHistory( + bookings[index]["_date"], index); + }, + color: Colors.red[700], + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Icon( + Icons.close, + size: 17, + color: Colors.white, + ), + Text( + 'Reject', + style: TextStyle( + color: Colors.white), + ), + ]), + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular(8.0)), + ), + ), + SizedBox(width: 5), + Container( + height: 30, + width: 100, + child: FlatButton( + onPressed: () { + confirmBooking( + bookings[index]["name"], + bookings[index]["number"], + bookings[index]["lounge"], + bookings[index]["slot"], + bookings[index]["numberOfPeople"], + bookings[index]["_date"], + index); + }, + color: Colors.deepOrange, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Icon( + Icons.check, + size: 17, + color: Colors.white, + ), + Text( + 'Confirm', + style: TextStyle( + color: Colors.white), + ), + ]), + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular(8.0)), + ), + ) + ]), + ]), + ] else ...[ + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Container( + height: 30, + width: 100, + child: FlatButton( + onPressed: () { + rejectBookinHistory( + bookings[index]["_date"], index); + }, + color: Colors.red[700], + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Icon( + Icons.delete, + size: 17, + color: Colors.white, + ), + Text( + 'Delete', + style: TextStyle( + color: Colors.white), + ), + ]), + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular(8.0)), + ), + ) + ]) + ], SizedBox(height: 10), ], ), diff --git a/lib/pages/admin_order_confirm.dart b/lib/pages/admin_order_confirm.dart index b8d1184..748eee1 100644 --- a/lib/pages/admin_order_confirm.dart +++ b/lib/pages/admin_order_confirm.dart @@ -203,22 +203,21 @@ class _AdminOrderState extends State { List quantity = []; List total = []; - void confirmOrder(int index) async { - var docId = '${orders[index]["id"]}' + '${orders[index]["total"]}'; + void confirmOrder(int index, int date) async { + // var docId = '${orders[index]["id"]}' + '${orders[index]["total"]}'; await Firestore.instance .collection('confirmedOrders') - .document(docId) + .document('$date') .updateData({"isConfirmed": true}); setState(() { orders[index]["isConfirmed"] = true; }); } - void deleteOrder(int index) async { - var docId = '${orders[index]["id"]}' + '${orders[index]["total"]}'; + void deleteOrder(int index, int date) async { await Firestore.instance .collection('confirmedOrders') - .document(docId) + .document('$date') .delete(); setState(() { orders.removeAt(index); @@ -227,7 +226,7 @@ class _AdminOrderState extends State { void initialData() async { var result = - await Firestore.instance.collection('confirmedOrders').getDocuments(); + await Firestore.instance.collection('confirmedOrders').orderBy('_date', descending: true).getDocuments(); result.documents.forEach((res) { setState(() { orders.add(res.data); @@ -413,7 +412,8 @@ class _AdminOrderState extends State { if (!orders[index]["isConfirmed"]) ...[ InkWell( onTap: () { - confirmOrder(index); + confirmOrder( + index, orders[index]["_date"]); }, child: Container( padding: EdgeInsets.symmetric( @@ -433,7 +433,7 @@ class _AdminOrderState extends State { ] else ...[ InkWell( onTap: () { - deleteOrder(index); + deleteOrder(index, orders[index]["_date"]); }, child: Container( padding: EdgeInsets.symmetric( diff --git a/lib/pages/previousBooking.dart b/lib/pages/previousBooking.dart index 29d23db..3760c2e 100644 --- a/lib/pages/previousBooking.dart +++ b/lib/pages/previousBooking.dart @@ -82,6 +82,7 @@ class _PreviousBookingState extends State { shrinkWrap: true, itemCount: bookings.length, itemBuilder: (_, index) { + orderNo = 110; orderNo += index; return ListTile( contentPadding: EdgeInsets.all(10), @@ -169,6 +170,7 @@ class _PreviousBookingState extends State { fontSize: 18, fontWeight: FontWeight.w400), ), + ], ), ]), diff --git a/lib/pages/view_event.dart b/lib/pages/view_event.dart index 6df9c5f..0df4e1c 100644 --- a/lib/pages/view_event.dart +++ b/lib/pages/view_event.dart @@ -7,7 +7,7 @@ class EventDetailsPage extends StatelessWidget { const EventDetailsPage({Key key, this.event}) : super(key: key); @override - Widget build(BuildContext context){ + Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('My booking'), @@ -18,15 +18,19 @@ class EventDetailsPage extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text("Room : " + event.Lounge, style: Theme.of(context).textTheme.display1,), + Text( + "Room : " + event.Lounge, + style: Theme.of(context).textTheme.display1, + ), SizedBox(height: 20.0), Text("Booked by : " + event.name), SizedBox(height: 20.0), Text("Personal Number : " + event.personalno), - + SizedBox(height: 20.0), + Text("Slot : " + "${event.slot}"), ], ), ), ); } -} \ No newline at end of file +} diff --git a/lib/res/event_firestore_service.dart b/lib/res/event_firestore_service.dart index 7cffe5d..8e5399a 100644 --- a/lib/res/event_firestore_service.dart +++ b/lib/res/event_firestore_service.dart @@ -1,4 +1,6 @@ import 'package:firebase_helpers/firebase_helpers.dart'; import '../models/event.dart'; -DatabaseService eventDBS = DatabaseService("events",fromDS: (id,data) => EventModel.fromDS(id, data), toMap:(event) => event.toMap()); +DatabaseService eventDBS = DatabaseService("events", + fromDS: (id, data) => EventModel.fromDS(id, data), + toMap: (event) => event.toMap()); diff --git a/lib/services/database.dart b/lib/services/database.dart index 7dccd76..1bda3e9 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -88,11 +88,14 @@ class DatabaseService { .setData({'title': title, 'subtitle': subtitle, 'downloadLink': url}); } - Future bookDetails(String id, String name, String number, int numberOfPeople, String lounge, - int slot, DateTime date) async { - return await bookingDetails.document().setData({ + Future bookDetails(String id, String name, String number, int numberOfPeople, + String lounge, int slot, DateTime date) async { + var _date = DateTime.now().toUtc().millisecondsSinceEpoch; + return await bookingDetails.document('$_date').setData({ + '_date': _date, 'id': id, 'name': name, + 'isConfirmed': false, 'number': number, 'numberOfPeople': numberOfPeople, 'lounge': lounge, @@ -103,8 +106,9 @@ class DatabaseService { Future confirmOrderofUser(String id, String name, String number, String address, List item, List qty, int total, bool isConfirmed) async { - var docId = '$id' + '$total'; - return await confirmedOrders.document(docId).setData({ + // var docId = '$id' + '$total'; + var _date = DateTime.now().toUtc().millisecondsSinceEpoch; + return await confirmedOrders.document('$_date').setData({ 'id': id, 'name': name, 'number': number, @@ -113,6 +117,7 @@ class DatabaseService { 'quantity': qty, 'total': total, 'isConfirmed': isConfirmed, + '_date': _date, 'date': '${DateTime.now().day}' + '/' + '${DateTime.now().month}' + From 7fa0478ca0d202054a97a8289b488d3f917bb500 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Thu, 17 Sep 2020 12:27:21 +0530 Subject: [PATCH 21/29] booking date bug fixed --- lib/pages/Home.dart | 20 +++++++++++++++----- lib/pages/adminBooking.dart | 16 ++++++++++++---- lib/services/database.dart | 3 ++- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index 537ff49..5fc04d7 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -45,14 +45,24 @@ class _HomeState extends State { } void exp() async { - var date = 1600288449003; + // var date = 1600288449003; + // var result = await Firestore.instance + // .collection('events') + // .where('slot', isEqualTo: 1) + // .getDocuments(); + // result.documents.forEach((element) { + // print(DateTime.fromMillisecondsSinceEpoch(date)); + // }); + DateTime currentPhoneDate = DateTime.now(); + Timestamp myTimeStamp = Timestamp.fromDate(currentPhoneDate); + DateTime myDateTime = myTimeStamp.toDate(); + print("$currentPhoneDate"); + print("$myDateTime"); var result = await Firestore.instance .collection('events') - .where('slot', isEqualTo: 1) + .where("slot", isEqualTo: 1) .getDocuments(); - result.documents.forEach((element) { - print(DateTime.fromMillisecondsSinceEpoch(date)); - }); + print(result.documents[0]["event_date"].toDate()); } @override diff --git a/lib/pages/adminBooking.dart b/lib/pages/adminBooking.dart index a0b05ef..d3a4602 100644 --- a/lib/pages/adminBooking.dart +++ b/lib/pages/adminBooking.dart @@ -52,8 +52,15 @@ class _AdminBookingState extends State { }); } - void confirmBooking(String _name, String _personalno, String loungeColor, - int _slot, int numberOfPeople, int _eventDate, int index) async { + void confirmBooking( + String _name, + String _personalno, + String loungeColor, + int _slot, + int numberOfPeople, + int _eventDate, + Timestamp _bookingDate, + int index) async { await Firestore.instance .collection('BookingDetails') .document('$_eventDate') @@ -66,7 +73,7 @@ class _AdminBookingState extends State { "name": _name, "personal no": _personalno, "Lounge": loungeColor, - "event_date": widget.note.eventDate, + "event_date": _bookingDate.toDate(), "slot": _slot, "numberOfPeople": numberOfPeople }); @@ -75,7 +82,7 @@ class _AdminBookingState extends State { name: _name, personalno: _personalno, Lounge: loungeColor, - eventDate: DateTime.fromMillisecondsSinceEpoch(_eventDate), + eventDate: _bookingDate.toDate(), slot: _slot, numberOfPeople: numberOfPeople)); } @@ -272,6 +279,7 @@ class _AdminBookingState extends State { bookings[index]["slot"], bookings[index]["numberOfPeople"], bookings[index]["_date"], + bookings[index]["bookingDate"], index); }, color: Colors.deepOrange, diff --git a/lib/services/database.dart b/lib/services/database.dart index 1bda3e9..66f3a15 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -100,7 +100,8 @@ class DatabaseService { 'numberOfPeople': numberOfPeople, 'lounge': lounge, 'slot': slot, - 'date': '${date.day}' + '/' + '${date.month}' + '/' + '${date.year}' + 'date': '${date.day}' + '/' + '${date.month}' + '/' + '${date.year}', + 'bookingDate': date }); } From 1a51660e9d774e560d1adfa31c0e4ba0795b903b Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Thu, 17 Sep 2020 14:33:52 +0530 Subject: [PATCH 22/29] added flushbar for alerting user about non-availability of room --- lib/pages/CategoryMenuList/flushbar.dart | 52 ++-- lib/pages/add_event.dart | 370 +++++++++++++---------- 2 files changed, 238 insertions(+), 184 deletions(-) diff --git a/lib/pages/CategoryMenuList/flushbar.dart b/lib/pages/CategoryMenuList/flushbar.dart index c6f0a49..a11c3d8 100644 --- a/lib/pages/CategoryMenuList/flushbar.dart +++ b/lib/pages/CategoryMenuList/flushbar.dart @@ -1,20 +1,38 @@ import 'package:flushbar/flushbar.dart'; import 'package:flutter/material.dart'; + void showFlushbar(context) { - Flushbar( - margin: EdgeInsets.all(10), - padding: EdgeInsets.all(10), - borderRadius: 8, - backgroundGradient: LinearGradient( - colors: [Colors.deepOrange, Colors.deepOrange], - stops: [0.6, 1]), - boxShadows: [ - BoxShadow(color: Colors.black45, offset: Offset(3, 3), blurRadius: 3), - ], - duration: Duration(seconds: 5), - dismissDirection: FlushbarDismissDirection.HORIZONTAL, - forwardAnimationCurve: Curves.fastLinearToSlowEaseIn, - title: "Item added to the cart", - message: "Tap on the top cart icon to view your item in the cart") - ..show(context); - } \ No newline at end of file + Flushbar( + margin: EdgeInsets.all(10), + padding: EdgeInsets.all(10), + borderRadius: 8, + backgroundGradient: LinearGradient( + colors: [Colors.deepOrange, Colors.deepOrange], stops: [0.6, 1]), + boxShadows: [ + BoxShadow(color: Colors.black45, offset: Offset(3, 3), blurRadius: 3), + ], + duration: Duration(seconds: 5), + dismissDirection: FlushbarDismissDirection.HORIZONTAL, + forwardAnimationCurve: Curves.fastLinearToSlowEaseIn, + title: "Item added to the cart", + message: "Tap on the top cart icon to view your item in the cart") + ..show(context); +} + +void showFlushbarBooking(context) { + Flushbar( + margin: EdgeInsets.all(10), + padding: EdgeInsets.all(10), + borderRadius: 8, + backgroundGradient: LinearGradient( + colors: [Colors.deepOrange, Colors.deepOrange], stops: [0.6, 1]), + boxShadows: [ + BoxShadow(color: Colors.black45, offset: Offset(3, 3), blurRadius: 3), + ], + duration: Duration(seconds: 5), + dismissDirection: FlushbarDismissDirection.HORIZONTAL, + forwardAnimationCurve: Curves.fastLinearToSlowEaseIn, + title: "Room already booked for selected date", + message: "Please select another date or different slot") + ..show(context); +} diff --git a/lib/pages/add_event.dart b/lib/pages/add_event.dart index 20780aa..8c9b165 100644 --- a/lib/pages/add_event.dart +++ b/lib/pages/add_event.dart @@ -1,6 +1,9 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/models/event.dart'; import 'package:flutter/material.dart'; +import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/res/event_firestore_service.dart'; import 'package:rcapp/services/database.dart'; @@ -25,6 +28,7 @@ class _AddEventPageState extends State { int numberOfPeople = 1; int _value1 = 1; int _value2 = 1; + bool exits = false; var id; bool processing; @@ -33,33 +37,41 @@ class _AddEventPageState extends State { void initialize() async { var uid = (await FirebaseAuth.instance.currentUser()).uid; + var data = + await Firestore.instance.collection('userInfo').document(uid).get(); setState(() { id = uid; + _name = data.data["name"]; + _personalno = data.data["number"]; }); } void confirmBooking() async { - _booking.bookDetails(id, _name, _personalno, numberOfPeople, - loungeColor[_value1-1], slot, _eventDate); - // if (widget.note != null) { - // await eventDBS.updateData(widget.note.id, { - // "name": _name, - // "personal no": _personalno, - // "Lounge": loungeColor[_value1-1], - // "event_date": widget.note.eventDate, - // "slot": slot, - // "numberOfPeople": numberOfPeople - // }); - // } else { - // await eventDBS.createItem(EventModel( - // name: _name, - // personalno: _personalno, - // Lounge: loungeColor[_value1-1], - // eventDate: _eventDate, - // slot: slot, - // numberOfPeople: numberOfPeople)); - // } - Navigator.pop(context); + String _eventDatestring = '${_eventDate.day}' + + '/' + + '${_eventDate.month}' + + '/' + + '${_eventDate.year}'; + print(_eventDatestring); + var result = await Firestore.instance + .collection('BookingDetails') + .where('date', isEqualTo: _eventDatestring) + .getDocuments(); + result.documents.forEach((element) { + if (loungeColor[_value1 - 1] == element.data["lounge"] && + slot == element.data["slot"]) { + setState(() { + exits = true; + }); + } + }); + if (!exits) { + _booking.bookDetails(id, _name, _personalno, numberOfPeople, + loungeColor[_value1 - 1], slot, _eventDate); + Navigator.pop(context); + } else { + showFlushbarBooking(context); + } } @override @@ -71,157 +83,181 @@ class _AddEventPageState extends State { @override Widget build(BuildContext context) { - print(_eventDate.year); - return Scaffold( - appBar: AppBar( - title: Text(widget.note != null ? "Edit Note" : "Booking Details"), - elevation: 10.0, - backgroundColor: Colors.deepOrange, - ), - body: Container( - padding: EdgeInsets.symmetric(vertical: 20.0, horizontal: 50.0), - child: Form( - key: _formKey, - child: ListView( - shrinkWrap: false, + if (_name == '' && _personalno == '') { + return Scaffold( + appBar: AppBar( + title: Text(widget.note != null ? "Edit Note" : "Booking Details"), + elevation: 10.0, + backgroundColor: Colors.deepOrange, + ), + body: Column( + mainAxisAlignment: MainAxisAlignment.center, children: [ - TextFormField( - decoration: InputDecoration( - hintText: 'Name', - fillColor: Colors.white, - filled: true, - enabledBorder: OutlineInputBorder( - borderSide: - BorderSide(color: Colors.deepOrange, width: 1.0), - borderRadius: BorderRadius.circular(10)), - focusedBorder: OutlineInputBorder( - borderSide: - BorderSide(color: Colors.deepOrange, width: 3.0), - borderRadius: BorderRadius.circular(10))), - validator: (val) => val.isEmpty ? 'Enter your Name' : null, - onChanged: (val) { - setState(() => _name = val); - }), - SizedBox(height: 10), - TextFormField( - decoration: InputDecoration( - hintText: 'Personal No.', - fillColor: Colors.white, - filled: true, - enabledBorder: OutlineInputBorder( - borderSide: - BorderSide(color: Colors.deepOrange, width: 1.0), - borderRadius: BorderRadius.circular(10)), - focusedBorder: OutlineInputBorder( - borderSide: - BorderSide(color: Colors.deepOrange, width: 3.0), - borderRadius: BorderRadius.circular(10))), - validator: (val) => - val.isEmpty ? 'Enter your Personal No.' : null, - onChanged: (val) { - setState(() => _personalno = val); - }), - SizedBox(height: 10), - TextFormField( - decoration: InputDecoration( - hintText: 'Number of People(Max: 5)', - fillColor: Colors.white, - filled: true, - enabledBorder: OutlineInputBorder( - borderSide: - BorderSide(color: Colors.deepOrange, width: 1.0), - borderRadius: BorderRadius.circular(10)), - focusedBorder: OutlineInputBorder( - borderSide: - BorderSide(color: Colors.deepOrange, width: 3.0), - borderRadius: BorderRadius.circular(10))), - validator: (val) => int.tryParse(val) > 5 - ? 'Number of Peoples should be less than 5' - : null, - onChanged: (val) { - setState(() => numberOfPeople = int.tryParse(val)); - }), - const SizedBox(height: 10.0), - DropdownButton( - value: _value1, - items: [ - DropdownMenuItem( - child: Text("Yellow"), - value: 1, - ), - DropdownMenuItem( - child: Text("Red"), - value: 2, - ), - DropdownMenuItem(child: Text("Blue"), value: 3), - ], - onChanged: (value) { - setState(() { - _value1 = value; - }); - }), - const SizedBox(height: 10.0), - DropdownButton( - value: _value2, - items: [ - DropdownMenuItem( - child: Text("Slot 1"), - value: 1, + Center( + child: SpinKitCircle(color: Colors.deepOrange), + ) + ]), + ); + } else { + return Scaffold( + appBar: AppBar( + title: Text(widget.note != null ? "Edit Note" : "Booking Details"), + elevation: 10.0, + backgroundColor: Colors.deepOrange, + ), + body: Container( + padding: EdgeInsets.symmetric(vertical: 20.0, horizontal: 50.0), + child: Form( + key: _formKey, + child: ListView( + shrinkWrap: false, + children: [ + TextFormField( + initialValue: '$_name', + decoration: InputDecoration( + hintText: 'Name', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.isEmpty ? 'Enter your Name' : null, + onChanged: (val) { + setState(() => _name = val); + }), + SizedBox(height: 10), + TextFormField( + initialValue: _personalno, + decoration: InputDecoration( + hintText: 'Personal No.', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => + val.isEmpty ? 'Enter your Personal No.' : null, + onChanged: (val) { + setState(() => _personalno = val); + }), + SizedBox(height: 10), + TextFormField( + decoration: InputDecoration( + hintText: 'Number of People(Max: 5)', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => int.tryParse(val) > 5 + ? 'Number of Peoples should be less than 5' + : null, + onChanged: (val) { + setState(() => numberOfPeople = int.tryParse(val)); + }), + const SizedBox(height: 10.0), + Container( + padding: EdgeInsets.all(10), + child: DropdownButton( + value: _value1, + items: [ + DropdownMenuItem( + child: Text("Yellow"), + value: 1, + ), + DropdownMenuItem( + child: Text("Red"), + value: 2, + ), + DropdownMenuItem(child: Text("Blue"), value: 3), + ], + onChanged: (value) { + setState(() { + _value1 = value; + }); + }), + ), + const SizedBox(height: 10.0), + Container( + padding: EdgeInsets.all(10), + child: DropdownButton( + value: _value2, + items: [ + DropdownMenuItem( + child: Text("Slot 1"), + value: 1, + ), + DropdownMenuItem( + child: Text("Slot 2"), + value: 2, + ), + ], + onChanged: (value) { + setState(() { + _value2 = value; + slot = value; + }); + }), + ), + const SizedBox(height: 10.0), + ListTile( + title: Text("Date (YYYY-MM-DD)"), + subtitle: Text( + "${_eventDate.year} - ${_eventDate.month} - ${_eventDate.day}"), + onTap: () async { + DateTime picked = await showDatePicker( + context: context, + initialDate: _eventDate, + firstDate: DateTime(_eventDate.year - 5), + lastDate: DateTime(_eventDate.year + 5)); + if (picked != null) { + setState(() { + _eventDate = picked; + }); + } + }, + ), + SizedBox(height: 10.0), + RaisedButton( + color: Colors.deepOrange, + padding: const EdgeInsets.symmetric( + horizontal: 40, vertical: 15), + child: Text( + 'Book Now', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w400, + fontSize: 25), ), - DropdownMenuItem( - child: Text("Slot 2"), - value: 2, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), ), - ], - onChanged: (value) { - setState(() { - _value2 = value; - slot = value; - }); - }), - const SizedBox(height: 10.0), - ListTile( - title: Text("Date (YYYY-MM-DD)"), - subtitle: Text( - "${_eventDate.year} - ${_eventDate.month} - ${_eventDate.day}"), - onTap: () async { - DateTime picked = await showDatePicker( - context: context, - initialDate: _eventDate, - firstDate: DateTime(_eventDate.year - 5), - lastDate: DateTime(_eventDate.year + 5)); - if (picked != null) { - setState(() { - _eventDate = picked; - }); - } - }, - ), - SizedBox(height: 10.0), - RaisedButton( - color: Colors.deepOrange, - padding: - const EdgeInsets.symmetric(horizontal: 40, vertical: 15), - child: Text( - 'Book Now', - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.w400, - fontSize: 25), - ), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10), - ), - onPressed: () { - if (_formKey.currentState.validate()) { - confirmBooking(); - } - }), - ], + onPressed: () { + if (_formKey.currentState.validate()) { + confirmBooking(); + } + }), + ], + ), ), ), - ), - ); + ); + } } } From 58455d847259819b2a952ea167bed41fe879a889 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Thu, 17 Sep 2020 19:33:50 +0530 Subject: [PATCH 23/29] download link added --- lib/pages/BlueL.dart | 47 ++++++++++++-------- lib/pages/Booking.dart | 48 +++++++++++++++++++++ lib/pages/Coluseum.dart | 19 +++++++-- lib/pages/Home.dart | 76 +++++++++++++++++++-------------- lib/pages/Milan.dart | 17 +++++++- lib/pages/MilapL.dart | 15 ++++++- lib/pages/YellowL.dart | 15 ++++++- lib/pages/booking_calendar.dart | 2 +- 8 files changed, 182 insertions(+), 57 deletions(-) diff --git a/lib/pages/BlueL.dart b/lib/pages/BlueL.dart index 265a3b9..2ac375b 100644 --- a/lib/pages/BlueL.dart +++ b/lib/pages/BlueL.dart @@ -15,24 +15,37 @@ class _BlueLoungeState extends State { backgroundColor: Colors.deepOrange, title: Text('Blue Lounge'), ), - body: new ListView( - children: [ - InkWell( - child: Container( - height: 200.0, - width: double.infinity, - padding: EdgeInsets.symmetric(horizontal: 50, vertical: 30), - margin: EdgeInsets.symmetric(horizontal: 10, vertical: 20), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.blue, - image: DecorationImage( - image: new AssetImage("assets/12.jpg"), - fit: BoxFit.fill)), - ), + body: new Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + InkWell( + child: Container( + height: 200.0, + width: double.infinity, + padding: EdgeInsets.symmetric(horizontal: 50, vertical: 30), + margin: EdgeInsets.symmetric(horizontal: 10, vertical: 20), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/12.jpg"), + fit: BoxFit.fill)), ), - ], - ), + ), + SizedBox( + width: double.infinity, + height: 60, + child: ButtonTheme( + child: RaisedButton( + color: Colors.deepOrange, + onPressed: () { + Navigator.pushNamed(context, "/bookingcalendar"); + }, + child: Text('Book', + style: TextStyle(color: Colors.white, fontSize: 18))), + )), + ], + ), ); } } diff --git a/lib/pages/Booking.dart b/lib/pages/Booking.dart index 6c80f60..4d9daba 100644 --- a/lib/pages/Booking.dart +++ b/lib/pages/Booking.dart @@ -88,6 +88,54 @@ class _BookingState extends State { ), ), ), + GestureDetector( + onTap: () { + Navigator.pushNamed(context, "/milanlounge"); + }, + child: Card( + child: Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/18.jpg'), + fit: BoxFit.fitWidth, + alignment: Alignment.topCenter, + ), + ), + child: Text( + "Milan Reception Hall", + style: TextStyle( + color: Colors.white, + fontSize: 25, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ), + GestureDetector( + onTap: () { + Navigator.pushNamed(context, "/coluseum"); + }, + child: Card( + child: Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/15.jpg'), + fit: BoxFit.fitWidth, + alignment: Alignment.topCenter, + ), + ), + child: Text( + "Coluseum", + style: TextStyle( + color: Colors.white, + fontSize: 25, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ), ], autoplay: false, dotBgColor: Colors.transparent, diff --git a/lib/pages/Coluseum.dart b/lib/pages/Coluseum.dart index a8667b1..d580af9 100644 --- a/lib/pages/Coluseum.dart +++ b/lib/pages/Coluseum.dart @@ -13,9 +13,10 @@ class _ColuseumState extends State { appBar: AppBar( elevation: 10.0, backgroundColor: Colors.deepOrange, - title: Text('Blue Lounge'), + title: Text('Coluseum'), ), - body: new ListView( + body: new Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ InkWell( child: Container( @@ -27,10 +28,22 @@ class _ColuseumState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/14.jpg"), + image: new AssetImage("assets/15.jpg"), fit: BoxFit.fill)), ), ), + SizedBox( + width: double.infinity, + height: 60, + child: ButtonTheme( + child: RaisedButton( + color: Colors.deepOrange, + onPressed: () { + Navigator.pushNamed(context, "/bookingcalendar"); + }, + child: Text('Book', + style: TextStyle(color: Colors.white, fontSize: 18))), + )), ], ), ); diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index 5fc04d7..712dbfb 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -135,7 +135,22 @@ class _HomeState extends State { children: [ SizedBox(height: 4), InkWell( - onTap: () {}, + onTap: () async { + final status = await Permission.storage.request(); + + if (status.isGranted) { + final externalDir = await getExternalStorageDirectory(); + + final taskId = await FlutterDownloader.enqueue( + url: + 'https://firebasestorage.googleapis.com/v0/b/rcapp-de25c.appspot.com/o/final.pdf?alt=media&token=64819cfa-3ffd-4875-889e-c50b3dbf935d', + savedDir: externalDir.path, + fileName: 'Rourkela_Club_Menu', + showNotification: true, + openFileFromNotification: true, + ); + } + }, child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ @@ -154,37 +169,38 @@ class _HomeState extends State { ), imageCarousel, SizedBox(height: 20.0), - Row(children: [ - Text( - " Notice Board", - style: TextStyle( - color: Colors.grey, - fontSize: 22, - fontWeight: FontWeight.bold, - ), - ), - SizedBox(width: 130), - if (areYouadmin) ...[ - FlatButton( - onPressed: () { - Navigator.pushNamed(context, '/uploadPdf'); - }, - shape: new RoundedRectangleBorder( - borderRadius: new BorderRadius.circular(10.0)), - child: Text( - 'Add To List', - style: TextStyle(color: Colors.black), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + " Notice Board", + style: TextStyle( + color: Colors.grey, + fontSize: 22, + fontWeight: FontWeight.bold, + ), ), - color: Colors.orange, - ) - ] - ]), + if (areYouadmin) ...[ + FlatButton( + onPressed: () { + Navigator.pushNamed(context, '/uploadPdf'); + }, + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + child: Text( + 'Add To List', + style: TextStyle(color: Colors.black), + ), + color: Colors.orange, + ) + ] + ]), SizedBox(height: 20.0), HomeListPage(), SizedBox(height: 10.0), Row( - children: [ - Row(children: [ + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ Text( " Today's Menu", style: TextStyle( @@ -193,12 +209,10 @@ class _HomeState extends State { fontWeight: FontWeight.bold, ), ), - SizedBox(width: 130), if (areYouadmin) ...[ FlatButton( onPressed: () { - // Navigator.pushNamed(context, '/uploadImage'); - exp(); + Navigator.pushNamed(context, '/uploadImage'); }, shape: new RoundedRectangleBorder( borderRadius: new BorderRadius.circular(10.0)), @@ -210,8 +224,6 @@ class _HomeState extends State { ) ] ]), - ], - ), SizedBox(height: 7.0), FoodCategory(areYouadmin), SizedBox(height: 20.0), diff --git a/lib/pages/Milan.dart b/lib/pages/Milan.dart index 96e3782..f61e28b 100644 --- a/lib/pages/Milan.dart +++ b/lib/pages/Milan.dart @@ -15,7 +15,8 @@ class _MilanLoungeState extends State { backgroundColor: Colors.deepOrange, title: Text('Blue Lounge'), ), - body: new ListView( + body: new Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ InkWell( child: Container( @@ -27,10 +28,22 @@ class _MilanLoungeState extends State { borderRadius: BorderRadius.circular(10), color: Colors.blue, image: DecorationImage( - image: new AssetImage("assets/14.jpg"), + image: new AssetImage("assets/18.jpg"), fit: BoxFit.fill)), ), ), + SizedBox( + width: double.infinity, + height: 60, + child: ButtonTheme( + child: RaisedButton( + color: Colors.deepOrange, + onPressed: () { + Navigator.pushNamed(context, "/bookingcalendar"); + }, + child: Text('Book', + style: TextStyle(color: Colors.white, fontSize: 18))), + )), ], ), ); } diff --git a/lib/pages/MilapL.dart b/lib/pages/MilapL.dart index 8f19272..bedc86d 100644 --- a/lib/pages/MilapL.dart +++ b/lib/pages/MilapL.dart @@ -16,7 +16,8 @@ class _MilapLoungeState extends State { backgroundColor: Colors.deepOrange, title: Text('Milap Lounge'), ), - body: new ListView( + body: new Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ InkWell( child: Container( @@ -32,6 +33,18 @@ class _MilapLoungeState extends State { fit: BoxFit.fill)), ), ), + SizedBox( + width: double.infinity, + height: 60, + child: ButtonTheme( + child: RaisedButton( + color: Colors.deepOrange, + onPressed: () { + Navigator.pushNamed(context, "/bookingcalendar"); + }, + child: Text('Book', + style: TextStyle(color: Colors.white, fontSize: 18))), + )), ], ), ); diff --git a/lib/pages/YellowL.dart b/lib/pages/YellowL.dart index 08d0dc8..7bc0e8c 100644 --- a/lib/pages/YellowL.dart +++ b/lib/pages/YellowL.dart @@ -15,7 +15,8 @@ class _YellowLoungeState extends State { backgroundColor: Colors.deepOrange, title: Text('Yellow Lounge'), ), - body: new ListView( + body: new Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ InkWell( child: Container( @@ -31,6 +32,18 @@ class _YellowLoungeState extends State { fit: BoxFit.fill)), ), ), + SizedBox( + width: double.infinity, + height: 60, + child: ButtonTheme( + child: RaisedButton( + color: Colors.deepOrange, + onPressed: () { + Navigator.pushNamed(context, "/bookingcalendar"); + }, + child: Text('Book', + style: TextStyle(color: Colors.white, fontSize: 18))), + )), ], ), ); diff --git a/lib/pages/booking_calendar.dart b/lib/pages/booking_calendar.dart index 875f2aa..4de789a 100644 --- a/lib/pages/booking_calendar.dart +++ b/lib/pages/booking_calendar.dart @@ -60,7 +60,7 @@ class _CalendarState extends State { children: [ TableCalendar( events: _events, - initialCalendarFormat: CalendarFormat.week, + initialCalendarFormat: CalendarFormat.month, calendarStyle: CalendarStyle( canEventMarkersOverflow: true, todayColor: Colors.orange, From bd64287964d45ab132262d153f7b1e44ca378efa Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Thu, 17 Sep 2020 21:49:32 +0530 Subject: [PATCH 24/29] text overflow fixed, ab chain se gaand marwalo --- lib/pages/Home.dart | 16 +++++++++++----- lib/pages/add_event.dart | 5 +++++ pubspec.lock | 7 +++++++ pubspec.yaml | 2 ++ 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index 712dbfb..5d16ac8 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -316,6 +316,7 @@ class _HomeListPageState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( + width: 140, child: Text( '${snapshot.data[index].data["title"]}', style: TextStyle( @@ -323,12 +324,17 @@ class _HomeListPageState extends State { fontWeight: FontWeight.w600), ), ), - Container( - child: Text( - '${snapshot.data[index].data["subtitle"]}', - style: TextStyle(fontSize: 12), + Row(children: [ + SizedBox( + width: 280, + child: Text( + '${snapshot.data[index].data["subtitle"]}', + style: TextStyle(fontSize: 12), + overflow: TextOverflow.ellipsis, + textAlign: TextAlign.left, + ), ), - ) + ]) ]), IconButton( onPressed: () async { diff --git a/lib/pages/add_event.dart b/lib/pages/add_event.dart index 8c9b165..f4e6bbd 100644 --- a/lib/pages/add_event.dart +++ b/lib/pages/add_event.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; @@ -71,6 +73,9 @@ class _AddEventPageState extends State { Navigator.pop(context); } else { showFlushbarBooking(context); + setState(() { + exits = false; + }); } } diff --git a/pubspec.lock b/pubspec.lock index 30c7081..ecdb811 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,13 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + animated_text_kit: + dependency: "direct main" + description: + name: animated_text_kit + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" async: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0934431..d2d28b0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -42,6 +42,8 @@ dependencies: permission_handler: ^5.0.1+1 flutter_downloader: ^1.5.0 path_provider: ^1.6.14 + animated_text_kit: ^2.2.0 + From 1d497edbecc3cd2cf9117a28aafcd4e18b61fe8f Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Fri, 18 Sep 2020 01:39:47 +0530 Subject: [PATCH 25/29] gand maar raha hai ui wala mai bol raha hu --- lib/main.dart | 1 - lib/pages/Cart.dart | 22 +- .../CategoryMenuList/Accompaniment_Menu.dart | 36 +-- lib/pages/CategoryMenuList/All_Menu.dart | 22 +- .../CategoryMenuList/Biryani_MenuList.dart | 19 +- lib/pages/CategoryMenuList/Bread_Menu.dart | 26 +- .../CategoryMenuList/Breakfast_Menu.dart | 23 +- lib/pages/CategoryMenuList/Burger_Menu.dart | 19 +- lib/pages/CategoryMenuList/Chinese_Menu.dart | 23 +- .../FriedRiceAndNoodles_Menu.dart | 19 +- .../CategoryMenuList/MainCourse_Menu.dart | 29 +-- lib/pages/CategoryMenuList/Pasta_Menu.dart | 42 ++- lib/pages/CategoryMenuList/Pizza_Menu.dart | 26 +- lib/pages/CategoryMenuList/Roll_Menu.dart | 20 +- lib/pages/CategoryMenuList/Sandwich_Menu.dart | 27 +- lib/pages/CategoryMenuList/Snacks_Menu.dart | 24 +- lib/pages/CategoryMenuList/Soup_Menu.dart | 19 +- lib/pages/CategoryMenuList/Starter_Menu.dart | 27 +- lib/pages/CategoryMenuList/Tandoori_Menu.dart | 26 +- lib/pages/Food.dart | 191 ++++++-------- lib/pages/Home.dart | 79 ++++-- lib/pages/Login.dart | 239 ++++++++++-------- lib/pages/Search.dart | 22 +- lib/pages/confirmOrder.dart | 162 +++++++----- lib/pages/welcome.dart | 2 +- lib/services/database.dart | 16 +- 26 files changed, 532 insertions(+), 629 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index fe31c55..e8cf295 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -68,7 +68,6 @@ class MyApp extends StatelessWidget { // '/orderdetails': (context) => OrderDetails(), '/wrapper': (context) => Wrapper(), "/add_event": (context) => AddEventPage(), - "/confirmOrder": (context) => ConfirmOrder(), "/address": (context) => AddressForm(), "/previousOrder": (context) => PreviousOrder(), "/previousBooking": (context) => PreviousBooking(), diff --git a/lib/pages/Cart.dart b/lib/pages/Cart.dart index 883a3fc..2e061ad 100644 --- a/lib/pages/Cart.dart +++ b/lib/pages/Cart.dart @@ -5,6 +5,8 @@ import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:rcapp/pages/Food.dart'; import 'package:rcapp/pages/order_cart.dart'; import 'package:rcapp/pages/storeData.dart'; +import 'package:rcapp/services/database.dart'; +import './confirmOrder.dart'; class Cart extends StatefulWidget { @override @@ -46,7 +48,6 @@ class _CartState extends State { Map foodDetail = storeDataforCart.retrieveFoodDetails(); Map qtyDetail = storeDataforCart.retrieveQtyDetails(); - total = 0; totalquantity = 0; @@ -132,9 +133,15 @@ class _CartState extends State { ]) ], ), - Text('$address') + Container( + margin: EdgeInsets.symmetric(horizontal: 20, vertical: 0), + child: Text( + '$address', + style: TextStyle(fontSize: 16), + )) ], ), + SizedBox(height: 20), OrderCard(total: total), Expanded( child: ListView.builder( @@ -392,7 +399,9 @@ class _ProceedAccessState extends State { child: FlatButton( color: Colors.deepOrange, onPressed: () { - Navigator.pushNamed(context, '/confirmOrder'); + updateTotal(); + confirmOrder(); + Navigator.pushReplacementNamed(context, '/navigationbar'); }, child: Text( 'Proceed to Pay', @@ -427,12 +436,7 @@ class BottomItemView extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - '${qty} ' + - ' item ' + - '|' + - ' ' + - '₹ ' + - '${total}', + '${qty} ' + ' item ' + '|' + ' ' + '₹ ' + '${total}', style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), ), diff --git a/lib/pages/CategoryMenuList/Accompaniment_Menu.dart b/lib/pages/CategoryMenuList/Accompaniment_Menu.dart index 88fb567..76b6c19 100644 --- a/lib/pages/CategoryMenuList/Accompaniment_Menu.dart +++ b/lib/pages/CategoryMenuList/Accompaniment_Menu.dart @@ -27,7 +27,7 @@ class _Accompaniment_MenuState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Accompaniments'), + title: Text('Accompaniments'), actions: [ IconButton( icon: Icon( @@ -36,7 +36,6 @@ class _Accompaniment_MenuState extends State { ), onPressed: () { Navigator.pushNamed(context, '/cart'); - // Navigator.popAndPushNamed(context, '/cart'); }, ) ], @@ -161,18 +160,19 @@ class _AccompanimentMenuListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + // IconButton( + // onPressed: () { + // setState(() { + // checked = !checked; + // }); + // addToCart(_menuList[index]); + // }, + // icon: Icon( + // Icons.radio_button_unchecked, + // color: Colors.green, + // ), + // ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -186,8 +186,9 @@ class _AccompanimentMenuListPageState extends State { width: 42, margin: EdgeInsets.only(top: 6), alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), + decoration: BoxDecoration( + color: Colors.deepOrange, + borderRadius: BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -208,7 +209,7 @@ class _AccompanimentMenuListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( @@ -234,5 +235,4 @@ class _AccompanimentMenuListPageState extends State { ); } } - } diff --git a/lib/pages/CategoryMenuList/All_Menu.dart b/lib/pages/CategoryMenuList/All_Menu.dart index be8f103..95f1392 100644 --- a/lib/pages/CategoryMenuList/All_Menu.dart +++ b/lib/pages/CategoryMenuList/All_Menu.dart @@ -26,7 +26,7 @@ class _AllMenuState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: All Menu'), + title: Text('All Menu'), actions: [ IconButton( icon: Icon( @@ -159,18 +159,7 @@ class _AllMenuListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -184,8 +173,9 @@ class _AllMenuListPageState extends State { width: 42, margin: EdgeInsets.only(top: 6), alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), + decoration: BoxDecoration( + color: Colors.deepOrange, + borderRadius: BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -206,7 +196,7 @@ class _AllMenuListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Biryani_MenuList.dart b/lib/pages/CategoryMenuList/Biryani_MenuList.dart index 0820cec..f8d13a8 100644 --- a/lib/pages/CategoryMenuList/Biryani_MenuList.dart +++ b/lib/pages/CategoryMenuList/Biryani_MenuList.dart @@ -26,7 +26,7 @@ class _Biryani_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Rice and Biryani'), + title: Text('Rice and Biryani'), actions: [ IconButton( icon: Icon( @@ -159,18 +159,7 @@ class _BiryaniMenuListListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -189,7 +178,7 @@ class _BiryaniMenuListListPageState extends State { margin: EdgeInsets.only(top: 6), alignment: Alignment.center, decoration: - BoxDecoration(color: Colors.deepOrange), + BoxDecoration(color: Colors.deepOrange, borderRadius: BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -211,7 +200,7 @@ class _BiryaniMenuListListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Bread_Menu.dart b/lib/pages/CategoryMenuList/Bread_Menu.dart index b8ab838..bed5043 100644 --- a/lib/pages/CategoryMenuList/Bread_Menu.dart +++ b/lib/pages/CategoryMenuList/Bread_Menu.dart @@ -26,7 +26,7 @@ class _Bread_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Breads'), + title: Text('Breads'), actions: [ IconButton( icon: Icon( @@ -54,7 +54,8 @@ class _Bread_MenuListState extends State { class BiryaniMenuListListPage extends StatefulWidget { @override - _BiryaniMenuListListPageState createState() => _BiryaniMenuListListPageState(); + _BiryaniMenuListListPageState createState() => + _BiryaniMenuListListPageState(); } class _BiryaniMenuListListPageState extends State { @@ -159,18 +160,7 @@ class _BiryaniMenuListListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -188,8 +178,10 @@ class _BiryaniMenuListListPageState extends State { width: 43, margin: EdgeInsets.only(top: 6), alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), + decoration: BoxDecoration( + color: Colors.deepOrange, + borderRadius: + BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -211,7 +203,7 @@ class _BiryaniMenuListListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Breakfast_Menu.dart b/lib/pages/CategoryMenuList/Breakfast_Menu.dart index 63d0e1e..380c409 100644 --- a/lib/pages/CategoryMenuList/Breakfast_Menu.dart +++ b/lib/pages/CategoryMenuList/Breakfast_Menu.dart @@ -26,7 +26,7 @@ class _Breakfast_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Breakfast'), + title: Text('Breakfast'), actions: [ IconButton( icon: Icon( @@ -159,18 +159,7 @@ class _BreadMenuListListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -188,8 +177,10 @@ class _BreadMenuListListPageState extends State { width: 43, margin: EdgeInsets.only(top: 6), alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), + decoration: BoxDecoration( + color: Colors.deepOrange, + borderRadius: + BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -211,7 +202,7 @@ class _BreadMenuListListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Burger_Menu.dart b/lib/pages/CategoryMenuList/Burger_Menu.dart index 8c84120..600646c 100644 --- a/lib/pages/CategoryMenuList/Burger_Menu.dart +++ b/lib/pages/CategoryMenuList/Burger_Menu.dart @@ -26,7 +26,7 @@ class _Burger_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Burgers'), + title: Text('Burgers'), actions: [ IconButton( icon: Icon( @@ -159,18 +159,7 @@ class _BurgerMenuListListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -189,7 +178,7 @@ class _BurgerMenuListListPageState extends State { margin: EdgeInsets.only(top: 6), alignment: Alignment.center, decoration: - BoxDecoration(color: Colors.deepOrange), + BoxDecoration(color: Colors.deepOrange, borderRadius: BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -211,7 +200,7 @@ class _BurgerMenuListListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Chinese_Menu.dart b/lib/pages/CategoryMenuList/Chinese_Menu.dart index de7b639..b096949 100644 --- a/lib/pages/CategoryMenuList/Chinese_Menu.dart +++ b/lib/pages/CategoryMenuList/Chinese_Menu.dart @@ -26,7 +26,7 @@ class _ChineseMenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Chinese'), + title: Text('Chinese'), actions: [ IconButton( icon: Icon( @@ -35,7 +35,6 @@ class _ChineseMenuListState extends State { ), onPressed: () { Navigator.pushNamed(context, '/cart'); - // Navigator.popAndPushNamed(context, '/cart'); }, ) ], @@ -159,18 +158,7 @@ class _ChineseMenuListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -184,8 +172,9 @@ class _ChineseMenuListPageState extends State { width: 43, margin: EdgeInsets.only(top: 6), alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), + decoration: BoxDecoration( + color: Colors.deepOrange, + borderRadius: BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -206,7 +195,7 @@ class _ChineseMenuListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart b/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart index ae0f704..fce8e45 100644 --- a/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart +++ b/lib/pages/CategoryMenuList/FriedRiceAndNoodles_Menu.dart @@ -26,7 +26,7 @@ class _FriedRiceAndNoodles_MenuListState extends State[ IconButton( icon: Icon( @@ -159,18 +159,7 @@ class _FriedRiceAndNoodlesMenuListListPageState extends State[ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -189,7 +178,7 @@ class _FriedRiceAndNoodlesMenuListListPageState extends State[ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/MainCourse_Menu.dart b/lib/pages/CategoryMenuList/MainCourse_Menu.dart index 0212810..7f19ff1 100644 --- a/lib/pages/CategoryMenuList/MainCourse_Menu.dart +++ b/lib/pages/CategoryMenuList/MainCourse_Menu.dart @@ -26,7 +26,7 @@ class _MainCourse_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Main Course'), + title: Text('Main Course'), actions: [ IconButton( icon: Icon( @@ -54,10 +54,12 @@ class _MainCourse_MenuListState extends State { class MainCourseMenuListListPage extends StatefulWidget { @override - _MainCourseMenuListListPageState createState() => _MainCourseMenuListListPageState(); + _MainCourseMenuListListPageState createState() => + _MainCourseMenuListListPageState(); } -class _MainCourseMenuListListPageState extends State { +class _MainCourseMenuListListPageState + extends State { StoreData storeData = StoreData(); int total = 0; bool checked = false; @@ -159,18 +161,7 @@ class _MainCourseMenuListListPageState extends State children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -188,8 +179,10 @@ class _MainCourseMenuListListPageState extends State width: 43, margin: EdgeInsets.only(top: 6), alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), + decoration: BoxDecoration( + color: Colors.deepOrange, + borderRadius: + BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -211,7 +204,7 @@ class _MainCourseMenuListListPageState extends State children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Pasta_Menu.dart b/lib/pages/CategoryMenuList/Pasta_Menu.dart index 74c6384..0c6b91e 100644 --- a/lib/pages/CategoryMenuList/Pasta_Menu.dart +++ b/lib/pages/CategoryMenuList/Pasta_Menu.dart @@ -26,7 +26,7 @@ class _Pasta_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Pasta'), + title: Text('Pasta'), actions: [ IconButton( icon: Icon( @@ -35,7 +35,6 @@ class _Pasta_MenuListState extends State { ), onPressed: () { Navigator.pushNamed(context, '/cart'); - // Navigator.popAndPushNamed(context, '/cart'); }, ) ], @@ -43,7 +42,7 @@ class _Pasta_MenuListState extends State { body: Column( children: [ Expanded( - child: PaneerMenuListListPage(), + child: PastaMenuListListPage(), ) ], ), @@ -52,12 +51,12 @@ class _Pasta_MenuListState extends State { } } -class PaneerMenuListListPage extends StatefulWidget { +class PastaMenuListListPage extends StatefulWidget { @override - _PaneerMenuListListPageState createState() => _PaneerMenuListListPageState(); + _PastaMenuListListPageState createState() => _PastaMenuListListPageState(); } -class _PaneerMenuListListPageState extends State { +class _PastaMenuListListPageState extends State { StoreData storeData = StoreData(); int total = 0; bool checked = false; @@ -101,7 +100,7 @@ class _PaneerMenuListListPageState extends State { }); } - void addToCart(PaneerMenu post) { + void addToCart(PastaMenu post) { String item = post.item; int price = post.price; @@ -125,7 +124,7 @@ class _PaneerMenuListListPageState extends State { @override Widget build(BuildContext context) { - final _menuList = Provider.of>(context) ?? []; + final _menuList = Provider.of>(context) ?? []; if (_menuList.length == 0) { return Container( height: 200, @@ -159,18 +158,7 @@ class _PaneerMenuListListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -188,13 +176,15 @@ class _PaneerMenuListListPageState extends State { width: 43, margin: EdgeInsets.only(top: 6), alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), + decoration: BoxDecoration( + color: Colors.deepOrange, + borderRadius: + BorderRadius.circular(10)), child: IconButton( onPressed: () { - showFlushbar(context); - addToCart(_menuList[index]); - setState(() { + showFlushbar(context); + addToCart(_menuList[index]); + setState(() { checked = !checked; }); }, @@ -211,7 +201,7 @@ class _PaneerMenuListListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Pizza_Menu.dart b/lib/pages/CategoryMenuList/Pizza_Menu.dart index 45fe3df..5fa6888 100644 --- a/lib/pages/CategoryMenuList/Pizza_Menu.dart +++ b/lib/pages/CategoryMenuList/Pizza_Menu.dart @@ -26,7 +26,7 @@ class _Pizza_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Pizza'), + title: Text('Pizza'), actions: [ IconButton( icon: Icon( @@ -35,7 +35,6 @@ class _Pizza_MenuListState extends State { ), onPressed: () { Navigator.pushNamed(context, '/cart'); - // Navigator.popAndPushNamed(context, '/cart'); }, ) ], @@ -159,18 +158,7 @@ class _PizzaMenuListListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -189,14 +177,14 @@ class _PizzaMenuListListPageState extends State { margin: EdgeInsets.only(top: 6), alignment: Alignment.center, decoration: - BoxDecoration(color: Colors.deepOrange), + BoxDecoration(color: Colors.deepOrange, borderRadius: BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); addToCart(_menuList[index]); - setState(() { - checked = !checked; - }); + setState(() { + checked = !checked; + }); }, icon: Icon( Icons.add, @@ -211,7 +199,7 @@ class _PizzaMenuListListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Roll_Menu.dart b/lib/pages/CategoryMenuList/Roll_Menu.dart index e5074f0..f362b36 100644 --- a/lib/pages/CategoryMenuList/Roll_Menu.dart +++ b/lib/pages/CategoryMenuList/Roll_Menu.dart @@ -26,7 +26,7 @@ class _Roll_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Roll'), + title: Text('Roll'), actions: [ IconButton( icon: Icon( @@ -35,7 +35,6 @@ class _Roll_MenuListState extends State { ), onPressed: () { Navigator.pushNamed(context, '/cart'); - // Navigator.popAndPushNamed(context, '/cart'); }, ) ], @@ -159,18 +158,7 @@ class _RollMenuListListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -189,7 +177,7 @@ class _RollMenuListListPageState extends State { margin: EdgeInsets.only(top: 6), alignment: Alignment.center, decoration: - BoxDecoration(color: Colors.deepOrange), + BoxDecoration(color: Colors.deepOrange, borderRadius: BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -211,7 +199,7 @@ class _RollMenuListListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Sandwich_Menu.dart b/lib/pages/CategoryMenuList/Sandwich_Menu.dart index e8a269e..6f1e61f 100644 --- a/lib/pages/CategoryMenuList/Sandwich_Menu.dart +++ b/lib/pages/CategoryMenuList/Sandwich_Menu.dart @@ -26,7 +26,7 @@ class _Sandwich_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Sandwich'), + title: Text('Sandwich'), actions: [ IconButton( icon: Icon( @@ -35,7 +35,6 @@ class _Sandwich_MenuListState extends State { ), onPressed: () { Navigator.pushNamed(context, '/cart'); - // Navigator.popAndPushNamed(context, '/cart'); }, ) ], @@ -54,7 +53,8 @@ class _Sandwich_MenuListState extends State { class SandwichMenuListListPage extends StatefulWidget { @override - _SandwichMenuListListPageState createState() => _SandwichMenuListListPageState(); + _SandwichMenuListListPageState createState() => + _SandwichMenuListListPageState(); } class _SandwichMenuListListPageState extends State { @@ -159,18 +159,7 @@ class _SandwichMenuListListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -188,8 +177,10 @@ class _SandwichMenuListListPageState extends State { width: 43, margin: EdgeInsets.only(top: 6), alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), + decoration: BoxDecoration( + color: Colors.deepOrange, + borderRadius: + BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -211,7 +202,7 @@ class _SandwichMenuListListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Snacks_Menu.dart b/lib/pages/CategoryMenuList/Snacks_Menu.dart index 6038654..657aa55 100644 --- a/lib/pages/CategoryMenuList/Snacks_Menu.dart +++ b/lib/pages/CategoryMenuList/Snacks_Menu.dart @@ -26,7 +26,7 @@ class _Snacks_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Snacks'), + title: Text('Snacks'), actions: [ IconButton( icon: Icon( @@ -35,7 +35,6 @@ class _Snacks_MenuListState extends State { ), onPressed: () { Navigator.pushNamed(context, '/cart'); - // Navigator.popAndPushNamed(context, '/cart'); }, ) ], @@ -159,18 +158,7 @@ class _SnacksMenuListListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -188,8 +176,10 @@ class _SnacksMenuListListPageState extends State { width: 43, margin: EdgeInsets.only(top: 6), alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), + decoration: BoxDecoration( + color: Colors.deepOrange, + borderRadius: + BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -211,7 +201,7 @@ class _SnacksMenuListListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Soup_Menu.dart b/lib/pages/CategoryMenuList/Soup_Menu.dart index 710fb17..526b3b2 100644 --- a/lib/pages/CategoryMenuList/Soup_Menu.dart +++ b/lib/pages/CategoryMenuList/Soup_Menu.dart @@ -26,7 +26,7 @@ class _Soup_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Soup'), + title: Text('Soup'), actions: [ IconButton( icon: Icon( @@ -159,18 +159,7 @@ class _SoupMenuListListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -189,7 +178,7 @@ class _SoupMenuListListPageState extends State { margin: EdgeInsets.only(top: 6), alignment: Alignment.center, decoration: - BoxDecoration(color: Colors.deepOrange), + BoxDecoration(color: Colors.deepOrange, borderRadius: BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -211,7 +200,7 @@ class _SoupMenuListListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Starter_Menu.dart b/lib/pages/CategoryMenuList/Starter_Menu.dart index 5c549c6..5a60bd5 100644 --- a/lib/pages/CategoryMenuList/Starter_Menu.dart +++ b/lib/pages/CategoryMenuList/Starter_Menu.dart @@ -26,7 +26,7 @@ class _StarterMenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Starters'), + title: Text('Starters'), actions: [ IconButton( icon: Icon( @@ -35,7 +35,6 @@ class _StarterMenuListState extends State { ), onPressed: () { Navigator.pushNamed(context, '/cart'); - // Navigator.popAndPushNamed(context, '/cart'); }, ) ], @@ -54,7 +53,8 @@ class _StarterMenuListState extends State { class StarterMenuListListPage extends StatefulWidget { @override - _StarterMenuListListPageState createState() => _StarterMenuListListPageState(); + _StarterMenuListListPageState createState() => + _StarterMenuListListPageState(); } class _StarterMenuListListPageState extends State { @@ -159,18 +159,7 @@ class _StarterMenuListListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -185,8 +174,10 @@ class _StarterMenuListListPageState extends State { width: 43, margin: EdgeInsets.only(top: 6), alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), + decoration: BoxDecoration( + color: Colors.deepOrange, + borderRadius: + BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -208,7 +199,7 @@ class _StarterMenuListListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/CategoryMenuList/Tandoori_Menu.dart b/lib/pages/CategoryMenuList/Tandoori_Menu.dart index 378d04e..9e652a3 100644 --- a/lib/pages/CategoryMenuList/Tandoori_Menu.dart +++ b/lib/pages/CategoryMenuList/Tandoori_Menu.dart @@ -26,7 +26,7 @@ class _Tandoori_MenuListState extends State { child: Scaffold( appBar: AppBar( backgroundColor: Colors.deepOrange, - title: Text('Category: Tandoor'), + title: Text('Tandoor'), actions: [ IconButton( icon: Icon( @@ -35,7 +35,6 @@ class _Tandoori_MenuListState extends State { ), onPressed: () { Navigator.pushNamed(context, '/cart'); - // Navigator.popAndPushNamed(context, '/cart'); }, ) ], @@ -54,7 +53,8 @@ class _Tandoori_MenuListState extends State { class TandooriMenuListListPage extends StatefulWidget { @override - _TandooriMenuListListPageState createState() => _TandooriMenuListListPageState(); + _TandooriMenuListListPageState createState() => + _TandooriMenuListListPageState(); } class _TandooriMenuListListPageState extends State { @@ -159,18 +159,7 @@ class _TandooriMenuListListPageState extends State { children: [ Row( children: [ - IconButton( - onPressed: () { - setState(() { - checked = !checked; - }); - addToCart(_menuList[index]); - }, - icon: Icon( - Icons.radio_button_unchecked, - color: Colors.green, - ), - ), + SizedBox(width: 15), Text( '${_menuList[index].item}', style: TextStyle( @@ -184,8 +173,9 @@ class _TandooriMenuListListPageState extends State { width: 43, margin: EdgeInsets.only(top: 6), alignment: Alignment.center, - decoration: - BoxDecoration(color: Colors.deepOrange), + decoration: BoxDecoration( + color: Colors.deepOrange, + borderRadius: BorderRadius.circular(10)), child: IconButton( onPressed: () { showFlushbar(context); @@ -206,7 +196,7 @@ class _TandooriMenuListListPageState extends State { children: [ Container( margin: new EdgeInsets.symmetric( - vertical: 3, horizontal: 50.0), + vertical: 3, horizontal: 16.0), child: Text( '₹' + '${_menuList[index].price}', style: TextStyle( diff --git a/lib/pages/Food.dart b/lib/pages/Food.dart index be18a58..2cf6b01 100644 --- a/lib/pages/Food.dart +++ b/lib/pages/Food.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:rcapp/CustomWidget/foot_category.dart'; import 'package:rcapp/models/user.dart'; @@ -9,7 +8,6 @@ import 'package:rcapp/pages/storeData.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; - // var cartList = []; // class Orders { @@ -74,105 +72,85 @@ class _FoodState extends State { return StreamProvider>.value( value: DatabaseService().today_Menu, child: Scaffold( - appBar: AppBar( - automaticallyImplyLeading: false, - elevation: 10.0, - backgroundColor: Colors.deepOrange, - title: Text("Menu"), - actions: [ - IconButton( - icon: Icon( - Icons.shopping_cart, - color: Colors.white, - ), - onPressed: () { - Navigator.pushNamed(context, '/cart'); - }, - ) - ], - ), - body: Column(children: [ - Expanded( - child: new ListView( - padding: EdgeInsets.all(10), - children: [ - SizedBox(height: 10.0), - Search(), - SizedBox(height: 10.0), - Container( - padding: EdgeInsets.fromLTRB(10, 0, 0, 0), - child: Text( - "Today's Menu", - style: TextStyle( - color: Colors.grey, - fontSize: 25, - fontWeight: FontWeight.bold, + appBar: AppBar( + automaticallyImplyLeading: false, + elevation: 10.0, + backgroundColor: Colors.deepOrange, + title: Text("Menu"), + actions: [ + IconButton( + icon: Icon( + Icons.shopping_cart, + color: Colors.white, + ), + onPressed: () { + Navigator.pushNamed(context, '/cart'); + }, + ) + ], + ), + body: Column(children: [ + Expanded( + child: new ListView( + padding: EdgeInsets.all(10), + children: [ + SizedBox(height: 10.0), + Search(), + SizedBox(height: 10.0), + Container( + padding: EdgeInsets.fromLTRB(10, 0, 0, 0), + child: Text( + "Today's Menu", + style: TextStyle( + color: Colors.grey, + fontSize: 25, + fontWeight: FontWeight.bold, + ), ), ), - ), - SizedBox(height: 10.0), - FoodCategory(false), - SizedBox(height: 20.0), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Container( - padding: EdgeInsets.fromLTRB(10, 0, 0, 0), - child: Text( - "Categories: ", - style: TextStyle( - color: Colors.grey, - fontSize: 25, - fontWeight: FontWeight.bold, + SizedBox(height: 10.0), + Container( + margin: EdgeInsets.symmetric(horizontal: 10, vertical: 0), + child: FoodCategory(false)), + SizedBox(height: 20.0), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + padding: EdgeInsets.fromLTRB(10, 0, 0, 0), + child: Text( + "Categories: ", + style: TextStyle( + color: Colors.grey, + fontSize: 25, + fontWeight: FontWeight.bold, + ), ), ), - ), - FlatButton( - onPressed: () { - Navigator.pushNamed(context, '/allmenu'); - }, - shape: new RoundedRectangleBorder( - borderRadius: new BorderRadius.circular(10.0)), - child: Text('Full Menu'), - color: Colors.orange, - ), - ], - ), - ListPage(), - ], + FlatButton( + onPressed: () { + Navigator.pushNamed(context, '/allmenu'); + }, + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + child: Text('Menu', + style: TextStyle( + color: Colors.deepOrange, + fontSize: 20, + fontWeight: FontWeight.bold)), + color: Colors.white, + ), + ], + ), + ListPage(), + ], + ), ), - ), - SizedBox(height: 10.0), - BottomItemView(total: total, qty: qty) - // Container( - // width: double.maxFinite, - // height: 54, - // decoration: BoxDecoration(color: Colors.deepOrange), - // child: Padding( - // padding: EdgeInsets.symmetric(vertical: 0, horizontal: 20), - // child: Row( - // mainAxisAlignment: MainAxisAlignment.spaceBetween, - // children: [ - // Text( - // '$qty ' + ' item ' + '|' + ' ' + '₹ ' + '$total', - // style: TextStyle( - // color: Colors.white, fontWeight: FontWeight.bold), - // ), - // InkWell( - // onTap: (() => Navigator.pushNamed(context, '/cart')), - // child: Text( - // 'VIEW CART', - // style: TextStyle( - // color: Colors.white, fontWeight: FontWeight.bold), - // ), - // ) - // ], - // ), - // ), - // ) - ]), - ), - ); + SizedBox(height: 10.0), + BottomItemView(total: total, qty: qty) + ]), + ), + ); } } @@ -200,18 +178,14 @@ class _QuantityState extends State { child: Container( margin: EdgeInsets.fromLTRB(0, 0, 14, 0), decoration: BoxDecoration( - color: Colors.white, + color: Colors.deepOrange, borderRadius: BorderRadius.circular(4), border: Border.all(color: Colors.grey, width: 0.1), - boxShadow: [ - BoxShadow( - color: Colors.grey, blurRadius: 2.0, offset: Offset(2.1, 2.2)) - ], ), height: 25, width: 62, - child: Center( - child: Text('Add', style: TextStyle(color: Colors.deepOrange))), + child: + Center(child: Text('Add', style: TextStyle(color: Colors.white))), ), ); } else { @@ -222,19 +196,14 @@ class _QuantityState extends State { child: Container( margin: EdgeInsets.fromLTRB(0, 0, 14, 0), decoration: BoxDecoration( - color: Colors.white, + color: Colors.deepOrange, borderRadius: BorderRadius.circular(4), border: Border.all(color: Colors.grey, width: 0.1), - boxShadow: [ - BoxShadow( - color: Colors.grey, blurRadius: 2.0, offset: Offset(2.1, 2.2)) - ], ), height: 25, width: 66, child: Center( - child: - Text('Remove', style: TextStyle(color: Colors.deepOrange))), + child: Text('Remove', style: TextStyle(color: Colors.white))), ), ); } @@ -265,7 +234,7 @@ class _ListPageState extends State { @override Widget build(BuildContext context) { return Container( - margin: const EdgeInsets.all(10.0), + margin: const EdgeInsets.symmetric(vertical: 0, horizontal: 10), height: 400.0, width: double.infinity, child: new Column( diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index 5d16ac8..a1b4cf7 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -109,7 +109,7 @@ class _HomeState extends State { backgroundColor: Colors.deepOrange, leading: Builder(builder: (BuildContext context) { return IconButton( - icon: const Icon(Icons.account_circle), + icon: const Icon(Icons.menu), onPressed: () { Scaffold.of(context).openDrawer(); }, @@ -158,12 +158,16 @@ class _HomeState extends State { 'Rourkela Club Menu', style: TextStyle( color: Colors.deepOrange, - fontSize: 10, + fontSize: 14, decoration: TextDecoration.underline), ), IconButton( + padding: EdgeInsets.all(0), + alignment: Alignment.centerLeft, onPressed: () {}, icon: Icon(Icons.insert_drive_file), + color: Colors.deepOrange, + iconSize: 14, ) ]), ), @@ -181,23 +185,29 @@ class _HomeState extends State { ), ), if (areYouadmin) ...[ - FlatButton( - onPressed: () { - Navigator.pushNamed(context, '/uploadPdf'); - }, - shape: new RoundedRectangleBorder( - borderRadius: new BorderRadius.circular(10.0)), - child: Text( - 'Add To List', - style: TextStyle(color: Colors.black), + Row(children: [ + Container( + height: 28, + child: FlatButton( + onPressed: () { + Navigator.pushNamed(context, '/uploadPdf'); + }, + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + child: Text( + 'Add To List', + style: TextStyle(color: Colors.white), + ), + color: Colors.deepOrange, + ), ), - color: Colors.orange, - ) + SizedBox(width: 10) + ]) ] ]), - SizedBox(height: 20.0), - HomeListPage(), SizedBox(height: 10.0), + HomeListPage(), + SizedBox(height: 20.0), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -210,22 +220,32 @@ class _HomeState extends State { ), ), if (areYouadmin) ...[ - FlatButton( - onPressed: () { - Navigator.pushNamed(context, '/uploadImage'); - }, - shape: new RoundedRectangleBorder( - borderRadius: new BorderRadius.circular(10.0)), - child: Text( - 'Add To List', - style: TextStyle(color: Colors.black), + Row(children: [ + Container( + height: 28, + child: FlatButton( + onPressed: () { + Navigator.pushNamed(context, '/uploadImage'); + }, + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + child: Text( + 'Add To List', + style: TextStyle(color: Colors.white), + ), + color: Colors.deepOrange, + ), ), - color: Colors.orange, - ) + SizedBox( + width: 10, + ) + ]) ] ]), SizedBox(height: 7.0), - FoodCategory(areYouadmin), + Container( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 0), + child: FoodCategory(areYouadmin)), SizedBox(height: 20.0), Text( " Upcoming Events", @@ -237,8 +257,11 @@ class _HomeState extends State { ), SizedBox(height: 10.0), Container( + margin: EdgeInsets.symmetric(horizontal: 10, vertical: 0), height: 150, - decoration: BoxDecoration(color: Colors.blue[50]), + decoration: BoxDecoration( + color: Colors.blue[50], + borderRadius: BorderRadius.circular(10)), child: Center(child: Text('No Events')), ), SizedBox(height: 50) diff --git a/lib/pages/Login.dart b/lib/pages/Login.dart index b232ef3..c4e4ee3 100644 --- a/lib/pages/Login.dart +++ b/lib/pages/Login.dart @@ -42,110 +42,139 @@ class _LoginState extends State { borderRadius: true, indicatorBgPadding: 10.0, )); - return loading ? Loading() : Scaffold( - appBar: AppBar( - backgroundColor: Colors.deepOrange, - title: Text('Sign in'), - elevation: 0.0, - actions: [ - FlatButton.icon( - icon: Icon(Icons.person), - label: Text('Register'), - onPressed: () { - widget.toggleView(); - }, - ) - ]), - body: SingleChildScrollView( - child: Container( - padding: EdgeInsets.symmetric(vertical: 20.0, horizontal: 50.0), - child: Form( - key: _formKey, - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - SizedBox(height: 250.0, width: 370.0, child: logincarousel), - SizedBox(height: 18.0), - TextFormField( - decoration: InputDecoration( - hintText: 'Personal Number', - fillColor: Colors.white, - filled: true, - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 1.0), - borderRadius: BorderRadius.circular(10)), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 3.0), - borderRadius: BorderRadius.circular(10))), - validator: (val) => val.isEmpty - ? 'Enter Your RSP Personal Number' - : null, - onChanged: (val) { - setState(() => number = val); - }), - SizedBox(height: 20.0), - TextFormField( - decoration: InputDecoration( - hintText: 'Password', - fillColor: Colors.white, - filled: true, - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 1.0), - borderRadius: BorderRadius.circular(10)), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 3.0), - borderRadius: BorderRadius.circular(10))), - validator: (val) => val.length < 6 - ? 'Enter password of 6+ characters' - : null, - obscureText: true, - onChanged: (val) { - setState(() => password = val); - }), - SizedBox(height: 20.0), - RaisedButton( - color: Colors.deepOrange, - padding: const EdgeInsets.symmetric( - horizontal: 40, vertical: 15), - child: Text( - 'Login', - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.w400, - fontSize: 25), - ), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10), - ), - onPressed: () async { - if (_formKey.currentState.validate()) { - setState(() { - loading = true; - }); - String numemail = number + "@gmail.com"; - dynamic result = await _auth - .signInWithEmailAndPassword(numemail, password); - if (result == null) { - setState(() { - error = 'could not sign in with the credentials'; - loading = false; - }); - } - } - }, - ), - SizedBox(height: 20.0), - Text( - error, - style: TextStyle(color: Colors.red, fontSize: 14.0), - ) - ]), - )), - ), - ); + return loading + ? Loading() + : Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Sign in'), + elevation: 0.0, + // actions: [ + // FlatButton.icon( + // icon: Icon(Icons.person), + // label: Text('Register'), + // onPressed: () { + // widget.toggleView(); + // }, + // ) + // ] + ), + body: SingleChildScrollView( + child: Container( + padding: + EdgeInsets.symmetric(vertical: 20.0, horizontal: 50.0), + child: Form( + key: _formKey, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + SizedBox( + height: 250.0, + width: 370.0, + child: logincarousel), + SizedBox(height: 18.0), + TextFormField( + decoration: InputDecoration( + hintText: 'Personal Number', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.isEmpty + ? 'Enter Your RSP Personal Number' + : null, + onChanged: (val) { + setState(() => number = val); + }), + SizedBox(height: 20.0), + TextFormField( + decoration: InputDecoration( + hintText: 'Password', + fillColor: Colors.white, + filled: true, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 1.0), + borderRadius: BorderRadius.circular(10)), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.deepOrange, width: 3.0), + borderRadius: BorderRadius.circular(10))), + validator: (val) => val.length < 6 + ? 'Enter password of 6+ characters' + : null, + obscureText: true, + onChanged: (val) { + setState(() => password = val); + }), + SizedBox(height: 20.0), + RaisedButton( + color: Colors.deepOrange, + padding: const EdgeInsets.symmetric( + horizontal: 40, vertical: 15), + child: Text( + 'Login', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w400, + fontSize: 25), + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + onPressed: () async { + if (_formKey.currentState.validate()) { + setState(() { + loading = true; + }); + String numemail = number + "@gmail.com"; + dynamic result = + await _auth.signInWithEmailAndPassword( + numemail, password); + if (result == null) { + setState(() { + error = + 'could not sign in with the credentials'; + loading = false; + }); + } + } + }, + ), + SizedBox(height: 10.0), + Text( + error, + style: TextStyle(color: Colors.red, fontSize: 14.0), + ), + SizedBox(height: 15.0), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Or, If you are a new user, ', + style: TextStyle( + color: Colors.deepOrange, fontSize: 15), + ), + InkWell( + onTap: () { + widget.toggleView(); + }, + child: Text('Register', + style: TextStyle( + color: Colors.blue, + decoration: TextDecoration.underline, + fontSize: 15)), + ) + ]) + ]), + )), + ), + ); } } diff --git a/lib/pages/Search.dart b/lib/pages/Search.dart index 51f9e86..5c3b5b1 100644 --- a/lib/pages/Search.dart +++ b/lib/pages/Search.dart @@ -116,18 +116,14 @@ class _SearchQuantityState extends State { child: Container( margin: EdgeInsets.fromLTRB(0, 0, 14, 0), decoration: BoxDecoration( - color: Colors.white, + color: Colors.deepOrange, borderRadius: BorderRadius.circular(4), border: Border.all(color: Colors.grey, width: 0.1), - boxShadow: [ - BoxShadow( - color: Colors.grey, blurRadius: 2.0, offset: Offset(2.1, 2.2)) - ], ), height: 25, width: 62, - child: Center( - child: Text('Add', style: TextStyle(color: Colors.deepOrange))), + child: + Center(child: Text('Add', style: TextStyle(color: Colors.white))), ), ); } else { @@ -139,12 +135,12 @@ class _SearchQuantityState extends State { color: Colors.deepOrange, borderRadius: BorderRadius.circular(4), border: Border.all(color: Colors.grey, width: 0.1), - boxShadow: [ - BoxShadow( - color: Colors.grey, - blurRadius: 2.0, - offset: Offset(2.1, 2.2)) - ], + // boxShadow: [ + // BoxShadow( + // color: Colors.grey, + // blurRadius: 2.0, + // offset: Offset(2.1, 2.2)) + // ], ), height: 25, width: 30, diff --git a/lib/pages/confirmOrder.dart b/lib/pages/confirmOrder.dart index 9b98f88..4a60aad 100644 --- a/lib/pages/confirmOrder.dart +++ b/lib/pages/confirmOrder.dart @@ -1,18 +1,11 @@ import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; -import 'package:flutter/material.dart'; -import 'package:rcapp/pages/Cart.dart'; -import 'package:rcapp/pages/order_cart.dart'; +import 'package:flutter/cupertino.dart'; import 'package:rcapp/pages/storeData.dart'; import 'package:rcapp/services/database.dart'; +import 'package:flutter/material.dart'; -class ConfirmOrder extends StatefulWidget { - @override - _ConfirmOrderState createState() => _ConfirmOrderState(); -} - -class _ConfirmOrderState extends State { - StoreData storeData = StoreData(); +StoreData storeData = StoreData(); int total = 0; int totalquantity = 1; List itemList = List(); @@ -22,19 +15,11 @@ class _ConfirmOrderState extends State { Map foodDetail = storeData.retrieveFoodDetails(); Map foodqtyDetail = storeData.retrieveQtyDetails(); - setState(() { + foodDetail.forEach((k, v) => total = total + v * foodqtyDetail[k]); foodDetail.forEach((k, v) => totalquantity = totalquantity + v); foodDetail.forEach((key, value) => itemList.add(key)); foodqtyDetail.forEach((key, value) => quantityList.add(value)); - }); - } - - @override - void initState() { - // TODO: implement initState - super.initState(); - updateTotal(); } void confirmOrder() async { @@ -53,45 +38,104 @@ class _ConfirmOrderState extends State { storeData.resetStore(); updateTotal(); - Navigator.pushReplacementNamed(context, '/navigationbar'); + // Navigator.pushReplacementNamed(context, '/navigationbar'); } - @override - Widget build(BuildContext context) { - Map _foodNamePrice = storeData.retrieveFoodDetails(); - return Scaffold( - appBar: AppBar( - elevation: 10.0, - backgroundColor: Colors.deepOrange, - title: Text('Payment'), - ), - body: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - SizedBox( - child: Row( - children: [ - IconButton( - icon: Icon(Icons.radio_button_checked), - color: Colors.green, - ), - Text('CASH ON DELIVERY') - ], - )), - // SizedBox(height: 300), - SizedBox( - width: double.infinity, - height: 60, - child: ButtonTheme( - child: RaisedButton( - color: Colors.deepOrange, - onPressed: () { - confirmOrder(); - }, - child: Text('CONFIRM ORDER', - style: TextStyle(color: Colors.white, fontSize: 18))), - )), - ], - )); - } -} + +// import 'package:cloud_firestore/cloud_firestore.dart'; +// import 'package:firebase_auth/firebase_auth.dart'; +// import 'package:flutter/material.dart'; +// import 'package:rcapp/pages/Cart.dart'; +// import 'package:rcapp/pages/order_cart.dart'; +// import 'package:rcapp/pages/storeData.dart'; +// import 'package:rcapp/services/database.dart'; + +// class ConfirmOrder extends StatefulWidget { +// @override +// _ConfirmOrderState createState() => _ConfirmOrderState(); +// } + +// class _ConfirmOrderState extends State { +// StoreData storeData = StoreData(); +// int total = 0; +// int totalquantity = 1; +// List itemList = List(); +// List quantityList = List(); + +// void updateTotal() { +// Map foodDetail = storeData.retrieveFoodDetails(); +// Map foodqtyDetail = storeData.retrieveQtyDetails(); + +// setState(() { +// foodDetail.forEach((k, v) => total = total + v * foodqtyDetail[k]); +// foodDetail.forEach((k, v) => totalquantity = totalquantity + v); +// foodDetail.forEach((key, value) => itemList.add(key)); +// foodqtyDetail.forEach((key, value) => quantityList.add(value)); +// }); +// } + +// @override +// void initState() { +// // TODO: implement initState +// super.initState(); +// updateTotal(); +// } + +// void confirmOrder() async { +// var user = await FirebaseAuth.instance.currentUser(); +// var _dat = await Firestore.instance +// .collection('userInfo') +// .document(user.uid) +// .get(); + +// var userName = _dat.data["name"]; +// var number = _dat.data["number"]; +// var address = _dat.data["address"]; + +// DatabaseService().confirmOrderofUser(user.uid, userName, number, address, +// itemList, quantityList, total, false); + +// storeData.resetStore(); +// updateTotal(); +// Navigator.pushReplacementNamed(context, '/navigationbar'); +// } + +// @override +// Widget build(BuildContext context) { +// Map _foodNamePrice = storeData.retrieveFoodDetails(); +// return Scaffold( +// appBar: AppBar( +// elevation: 10.0, +// backgroundColor: Colors.deepOrange, +// title: Text('Payment'), +// ), +// body: Column( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// SizedBox( +// child: Row( +// children: [ +// IconButton( +// icon: Icon(Icons.radio_button_checked), +// color: Colors.green, +// ), +// Text('CASH ON DELIVERY') +// ], +// )), +// // SizedBox(height: 300), +// SizedBox( +// width: double.infinity, +// height: 60, +// child: ButtonTheme( +// child: RaisedButton( +// color: Colors.deepOrange, +// onPressed: () { +// confirmOrder(); +// }, +// child: Text('CONFIRM ORDER', +// style: TextStyle(color: Colors.white, fontSize: 18))), +// )), +// ], +// )); +// } +// } diff --git a/lib/pages/welcome.dart b/lib/pages/welcome.dart index 048aea7..1229bf5 100644 --- a/lib/pages/welcome.dart +++ b/lib/pages/welcome.dart @@ -21,7 +21,7 @@ class _welcomeState extends State { 'ROURKELA CLUB', style: TextStyle( color: Colors.white, - fontSize: 45.0, + fontSize: 40.0, ), ), ), diff --git a/lib/services/database.dart b/lib/services/database.dart index 66f3a15..3468913 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -180,14 +180,14 @@ class DatabaseService { }).toList(); } - List _paneermenuListFromSnapshot(QuerySnapshot snapshot) { - return snapshot.documents.map((doc) { - return PaneerMenu( - item: doc.data["item"] ?? '', - price: doc.data["price"] ?? 0, - searchIndex: doc.data["search_index"] ?? ''); - }).toList(); - } + // List _paneermenuListFromSnapshot(QuerySnapshot snapshot) { + // return snapshot.documents.map((doc) { + // return PaneerMenu( + // item: doc.data["item"] ?? '', + // price: doc.data["price"] ?? 0, + // searchIndex: doc.data["search_index"] ?? ''); + // }).toList(); + // } List _breadmenuListFromSnapshot(QuerySnapshot snapshot) { return snapshot.documents.map((doc) { From 9de3988ea84661dd7ae29d5b23047d5d6fa2f054 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Fri, 18 Sep 2020 01:45:55 +0530 Subject: [PATCH 26/29] orders wala reh gaya tha --- lib/pages/admin_order_confirm.dart | 210 ++--------------------------- 1 file changed, 10 insertions(+), 200 deletions(-) diff --git a/lib/pages/admin_order_confirm.dart b/lib/pages/admin_order_confirm.dart index 748eee1..8f8805b 100644 --- a/lib/pages/admin_order_confirm.dart +++ b/lib/pages/admin_order_confirm.dart @@ -1,190 +1,3 @@ -// import 'package:flutter/material.dart'; -// import 'package:cloud_firestore/cloud_firestore.dart'; -// import 'package:flutter_spinkit/flutter_spinkit.dart'; -// import 'package:rcapp/models/user.dart'; -// import 'package:rcapp/services/database.dart'; -// import 'package:provider/provider.dart'; - -// class ConfirmedOrderDetails { -// String name; -// String number; -// int total; -// String address; -// } - -// class AdminOrder extends StatefulWidget { -// @override -// _AdminOrderState createState() => _AdminOrderState(); -// } - -// class _AdminOrderState extends State { -// @override -// Widget build(BuildContext context) { -// return StreamProvider>.value( -// value: DatabaseService().orders, -// child: Scaffold( -// appBar: AppBar( -// title: Text('Orders'), -// backgroundColor: Colors.deepOrange, -// ), -// body: NewOrderList(), -// ), -// ); -// } -// } - -// class NewOrderList extends StatefulWidget { -// @override -// NewOrderListState createState() => NewOrderListState(); -// } - -// class NewOrderListState extends State { -// changeConfirmation(bool isConfirmed, String number) async { -// try { -// if (isConfirmed) { -// await Firestore.instance -// .collection("confirmedOrders") -// .document(number) -// .delete(); -// } else { -// await Firestore.instance -// .collection("confirmedOrders") -// .document(number) -// .updateData({"isConfirmed": !isConfirmed}); -// } -// Navigator.pushReplacementNamed(context, '/adminorder'); -// } catch (e) { -// print(e.toString()); -// } -// } - -// @override -// Widget build(BuildContext context) { -// int orderNo = 110; -// final _orderList = Provider.of>(context) ?? []; -// return ListView.builder( -// shrinkWrap: true, -// itemCount: _orderList.length, -// itemBuilder: (_, index) { -// orderNo += index; -// return ListTile( -// contentPadding: EdgeInsets.all(10), -// title: Column( -// children: [ -// SizedBox(height: 20.0), -// Container( -// alignment: Alignment.topLeft, -// height: 420.0, -// width: 370.0, -// margin: new EdgeInsets.only(left: 20.0, right: 20.0), -// decoration: BoxDecoration( -// color: Colors.tealAccent, -// borderRadius: BorderRadius.all(Radius.circular(20.0)), -// ), -// child: Column( -// children: [ -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Text( -// "Order Number : " + "$orderNo", -// style: -// TextStyle(color: Colors.deepOrange, fontSize: 22), -// ), -// Text("Aug 4th 2020"), -// ], -// ), -// Column( -// children: [ -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Padding( -// padding: const EdgeInsets.all(10), -// child: Text( -// "Name : " + "${_orderList[index].name}", -// style: TextStyle( -// color: Colors.black, fontSize: 15), -// ), -// ), -// ], -// ), -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Padding( -// padding: const EdgeInsets.all(10), -// child: Text( -// "Personal No. : " + -// "${_orderList[index].number}", -// style: TextStyle( -// color: Colors.black, fontSize: 15), -// ), -// ), -// ], -// ), -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// Flexible( -// child: Text( -// "Address : " + "${_orderList[index].address}", -// style: TextStyle( -// color: Colors.black, fontSize: 15), -// ), -// ), -// ], -// ), -// ], -// ), -// SizedBox(height: 30), -// Row( -// mainAxisAlignment: MainAxisAlignment.spaceAround, -// children: [ -// Flexible( -// child: Text( -// "Cost : ₹" + -// "${_orderList[index].total} " + -// "${_orderList[index].item}" + -// " : " + -// "${_orderList[index].qty}", -// style: TextStyle(color: Colors.black, fontSize: 22), -// ), -// ), -// FlatButton( -// onPressed: () { -// Navigator.pushNamed(context, '/orderdetails'); -// }, -// shape: new RoundedRectangleBorder( -// borderRadius: new BorderRadius.circular(10.0)), -// child: Text('View'), -// color: Colors.white, -// ), -// FlatButton( -// onPressed: () { -// changeConfirmation(_orderList[index].isConfirmed, -// _orderList[index].number); -// }, -// shape: new RoundedRectangleBorder( -// borderRadius: new BorderRadius.circular(10.0)), -// child: Text(_orderList[index].isConfirmed -// ? 'Confirm' -// : 'Delete'), -// color: Colors.amber, -// ), -// ], -// ), -// ], -// ), -// ), -// ], -// ), -// ); -// }, -// ); -// } -// } - import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; @@ -225,8 +38,10 @@ class _AdminOrderState extends State { } void initialData() async { - var result = - await Firestore.instance.collection('confirmedOrders').orderBy('_date', descending: true).getDocuments(); + var result = await Firestore.instance + .collection('confirmedOrders') + .orderBy('_date', descending: true) + .getDocuments(); result.documents.forEach((res) { setState(() { orders.add(res.data); @@ -282,7 +97,7 @@ class _AdminOrderState extends State { height: 190.0, width: 370.0, decoration: BoxDecoration( - color: Colors.blue[50], + color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(12.0)), border: Border.all(color: Colors.grey)), child: Column( @@ -397,14 +212,14 @@ class _AdminOrderState extends State { padding: EdgeInsets.symmetric( horizontal: 5, vertical: 4), decoration: BoxDecoration( - color: Colors.white, + color: Colors.red[700], border: Border.all(color: Colors.black), borderRadius: BorderRadius.circular(5)), child: Text('View', style: TextStyle( - color: Colors.black, + color: Colors.white, )), ), ), @@ -419,7 +234,7 @@ class _AdminOrderState extends State { padding: EdgeInsets.symmetric( horizontal: 5, vertical: 4), decoration: BoxDecoration( - color: Colors.deepOrange[400], + color: Colors.deepOrange, border: Border.all(color: Colors.black), borderRadius: @@ -433,7 +248,8 @@ class _AdminOrderState extends State { ] else ...[ InkWell( onTap: () { - deleteOrder(index, orders[index]["_date"]); + deleteOrder( + index, orders[index]["_date"]); }, child: Container( padding: EdgeInsets.symmetric( @@ -686,12 +502,6 @@ class _AdminOrderDetailsState extends State { ), ]), SizedBox(height: 20), - // Container( - // width: double.infinity, - // child: FlatButton( - // onPressed: () {}, - // color: Colors.deepOrange, - // child: Text('Confirm'))) ], ), ), From dcc40d5562d4a224c0be663a7a0b32efa0e914e8 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Fri, 18 Sep 2020 14:47:34 +0530 Subject: [PATCH 27/29] added profile photo functionality --- lib/main.dart | 6 +- lib/pages/BlueL.dart | 13 ++ lib/pages/Booking.dart | 363 +++++++++++++++++------------------- lib/pages/Coluseum.dart | 13 ++ lib/pages/Home.dart | 88 +++++---- lib/pages/Milan.dart | 13 ++ lib/pages/MilapL.dart | 13 ++ lib/pages/YellowL.dart | 13 ++ lib/pages/mainhall.dart | 65 +++++++ lib/pages/uploadAvatar.dart | 234 +++++++++++++++++++++++ lib/services/database.dart | 6 + pubspec.lock | 23 ++- pubspec.yaml | 1 + 13 files changed, 628 insertions(+), 223 deletions(-) create mode 100644 lib/pages/mainhall.dart create mode 100644 lib/pages/uploadAvatar.dart diff --git a/lib/main.dart b/lib/main.dart index e8cf295..3c9e4cb 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -32,9 +32,11 @@ import 'package:rcapp/pages/adminBooking.dart'; import 'package:rcapp/pages/admin_order_confirm.dart'; import 'package:rcapp/pages/booking_calendar.dart'; import 'package:rcapp/pages/confirmOrder.dart'; +import 'package:rcapp/pages/mainhall.dart'; import 'package:rcapp/pages/orderdetails.dart'; import 'package:rcapp/pages/previousBooking.dart'; import 'package:rcapp/pages/previousOrder.dart'; +import 'package:rcapp/pages/uploadAvatar.dart'; import 'package:rcapp/pages/uploadImage.dart'; import 'package:rcapp/pages/uploadPdf.dart'; import 'package:rcapp/pages/welcome.dart'; @@ -100,10 +102,12 @@ class MyApp extends StatelessWidget { "/milanlounge": (context) => MilanLounge(), "/milaplounge": (context) => MilapLounge(), "/coluseum": (context) => Coluseum(), + "/mainhall" : (context) => MainHall(), //Routes for admin "/uploadImage": (context) => UploadImage(), - "/uploadPdf": (context) => UploadPdf() + "/uploadPdf": (context) => UploadPdf(), + "/uploadAvatarImage": (context) => UploadAvatar() }, ), ); diff --git a/lib/pages/BlueL.dart b/lib/pages/BlueL.dart index 2ac375b..863d0bb 100644 --- a/lib/pages/BlueL.dart +++ b/lib/pages/BlueL.dart @@ -32,6 +32,19 @@ class _BlueLoungeState extends State { fit: BoxFit.fill)), ), ), + Text( + "Blue Lounge", + style: TextStyle( + color: Colors.blueAccent, + fontSize: 40, + ), + ), + Text( + "The Blue Lounge is a comfortable lounge present in the ground floor of the club. Perfect for small group gatherings like office parties, get togethers amongst friends etc \n \nCapacity : 15 people\n \n \n \n ", + style: TextStyle( + fontSize: 20 + ), + ), SizedBox( width: double.infinity, height: 60, diff --git a/lib/pages/Booking.dart b/lib/pages/Booking.dart index 4d9daba..3281a58 100644 --- a/lib/pages/Booking.dart +++ b/lib/pages/Booking.dart @@ -10,191 +10,6 @@ class Booking extends StatefulWidget { class _BookingState extends State { @override Widget build(BuildContext context) { - Widget image_carousel1 = new Container( - margin: EdgeInsets.all(5), - height: 180.0, - child: new Carousel( - boxFit: BoxFit.cover, - images: [ - GestureDetector( - onTap: () { - Navigator.pushNamed(context, "/bluelounge"); - }, - child: Card( - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/12.jpg'), - fit: BoxFit.fitWidth, - alignment: Alignment.topCenter, - ), - ), - child: Text( - "The Blue Lounge", - style: TextStyle( - color: Colors.white, - fontSize: 25, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ), - GestureDetector( - onTap: () { - Navigator.pushNamed(context, "/yellowlounge"); - }, - child: Card( - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/13.jpg'), - fit: BoxFit.fitWidth, - alignment: Alignment.topCenter, - ), - ), - child: Text( - "The Yellow Lounge", - style: TextStyle( - color: Colors.white, - fontSize: 25, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ), - GestureDetector( - onTap: () { - Navigator.pushNamed(context, "/milaplounge"); - }, - child: Card( - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/17.jpg'), - fit: BoxFit.fitWidth, - alignment: Alignment.topCenter, - ), - ), - child: Text( - "Milap Reception Hall", - style: TextStyle( - color: Colors.white, - fontSize: 25, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ), - GestureDetector( - onTap: () { - Navigator.pushNamed(context, "/milanlounge"); - }, - child: Card( - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/18.jpg'), - fit: BoxFit.fitWidth, - alignment: Alignment.topCenter, - ), - ), - child: Text( - "Milan Reception Hall", - style: TextStyle( - color: Colors.white, - fontSize: 25, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ), - GestureDetector( - onTap: () { - Navigator.pushNamed(context, "/coluseum"); - }, - child: Card( - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/15.jpg'), - fit: BoxFit.fitWidth, - alignment: Alignment.topCenter, - ), - ), - child: Text( - "Coluseum", - style: TextStyle( - color: Colors.white, - fontSize: 25, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ), - ], - autoplay: false, - dotBgColor: Colors.transparent, - borderRadius: true, - dotSize: 0, - ), - ); - - Widget image_carousel2 = new Container( - margin: EdgeInsets.all(5), - height: 180.0, - child: new Carousel( - boxFit: BoxFit.cover, - images: [ - Card( - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/15.jpg'), - fit: BoxFit.fitWidth, - alignment: Alignment.topCenter, - ), - ), - child: Text( - "Main Banquet", - style: TextStyle( - color: Colors.white, - fontSize: 25, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - Card( - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/16.jpg'), - fit: BoxFit.fitWidth, - alignment: Alignment.topCenter, - ), - ), - child: Text( - "Wedding Reception Hall", - style: TextStyle( - color: Colors.white, - fontSize: 25, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ], - autoplay: false, - dotSize: 0, - borderRadius: true, - dotBgColor: Colors.transparent, - ), - ); return Scaffold( appBar: AppBar( @@ -228,8 +43,117 @@ class _BookingState extends State { ], ), SizedBox(height: 10.0), - image_carousel1, - SizedBox(height: 50.0), + Container( + margin: const EdgeInsets.symmetric(vertical: 0, horizontal: 10), + height: 150.0, + width: double.infinity, + child: new Column( + children: [ + Expanded( + child: ListView( + shrinkWrap: true, + physics: ClampingScrollPhysics(), + scrollDirection: Axis.horizontal, + children: [ + InkWell( + onTap: () { + Navigator.pushNamed(context, "/bluelounge"); + }, + child: Container( + height: 100.0, + width: 150.0, + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Blue Lounge', + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/12.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/yellowlounge"); + }, + child: Container( + height: 100.0, + width: 150.0, + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Yellow Lounge', + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/13.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/milaplounge"); + }, + child: Container( + height: 100.0, + width: 150.0, + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Milap Hall', + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/17.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/milanlounge"); + }, + child: Container( + height: 100.0, + width: 150.0, + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Milan Lounge', + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/18.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + ], + ), + ), + SizedBox(height: 20), + ], + )), + SizedBox(height: 30.0), Text( " Banquet Halls", style: TextStyle( @@ -239,7 +163,70 @@ class _BookingState extends State { ), ), SizedBox(height: 10.0), - image_carousel2, + Container( + margin: const EdgeInsets.symmetric(vertical: 0, horizontal: 10), + height: 150.0, + width: double.infinity, + child: new Column( + children: [ + Expanded( + child: ListView( + shrinkWrap: true, + physics: ClampingScrollPhysics(), + scrollDirection: Axis.horizontal, + children: [ + InkWell( + onTap: () { + Navigator.pushNamed(context, "/mainhall"); + }, + child: Container( + height: 100.0, + width: 150.0, + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Main Hall', + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/15.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + InkWell( + onTap: () { + Navigator.pushNamed(context, "/yellowlounge"); + }, + child: Container( + height: 100.0, + width: 150.0, + child: Align( + alignment: Alignment.bottomCenter, + child: Text( + 'Wedding Hall', + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/16.jpg"), + fit: BoxFit.fill)), + ), + ), + SizedBox(width: 20), + ], + ), + ), + SizedBox(height: 20), + ], + )), ], ), ); diff --git a/lib/pages/Coluseum.dart b/lib/pages/Coluseum.dart index d580af9..2b4741e 100644 --- a/lib/pages/Coluseum.dart +++ b/lib/pages/Coluseum.dart @@ -32,6 +32,19 @@ class _ColuseumState extends State { fit: BoxFit.fill)), ), ), + Text( + "Coluseum", + style: TextStyle( + color: Colors.blueAccent, + fontSize: 40, + ), + ), + Text( + "The Blue Lounge is a comfortable lounge present in the ground floor of the club. Perfect for small group gatherings like office parties, get togethers amongst friends etc \n \nCapacity : 15 people\n \n \n \n ", + style: TextStyle( + fontSize: 20 + ), + ), SizedBox( width: double.infinity, height: 60, diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index a1b4cf7..b604b6b 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -13,6 +13,7 @@ import 'package:rcapp/services/auth.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/services/database.dart'; import 'package:path/path.dart'; +import 'package:google_fonts/google_fonts.dart'; class Home extends StatefulWidget { @override @@ -44,26 +45,26 @@ class _HomeState extends State { } } - void exp() async { - // var date = 1600288449003; - // var result = await Firestore.instance - // .collection('events') - // .where('slot', isEqualTo: 1) - // .getDocuments(); - // result.documents.forEach((element) { - // print(DateTime.fromMillisecondsSinceEpoch(date)); - // }); - DateTime currentPhoneDate = DateTime.now(); - Timestamp myTimeStamp = Timestamp.fromDate(currentPhoneDate); - DateTime myDateTime = myTimeStamp.toDate(); - print("$currentPhoneDate"); - print("$myDateTime"); - var result = await Firestore.instance - .collection('events') - .where("slot", isEqualTo: 1) - .getDocuments(); - print(result.documents[0]["event_date"].toDate()); - } + // void exp() async { + // // var date = 1600288449003; + // // var result = await Firestore.instance + // // .collection('events') + // // .where('slot', isEqualTo: 1) + // // .getDocuments(); + // // result.documents.forEach((element) { + // // print(DateTime.fromMillisecondsSinceEpoch(date)); + // // }); + // DateTime currentPhoneDate = DateTime.now(); + // Timestamp myTimeStamp = Timestamp.fromDate(currentPhoneDate); + // DateTime myDateTime = myTimeStamp.toDate(); + // print("$currentPhoneDate"); + // print("$myDateTime"); + // var result = await Firestore.instance + // .collection('events') + // .where("slot", isEqualTo: 1) + // .getDocuments(); + // print(result.documents[0]["event_date"].toDate()); + // } @override void initState() { @@ -113,13 +114,12 @@ class _HomeState extends State { onPressed: () { Scaffold.of(context).openDrawer(); }, - // tooltip: MaterialLocalizations.of(context).openAppDrawerTooltip, ); }), title: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text('Home'), + Text('Home', style: GoogleFonts.inter()), ]), ), drawer: Drawer( @@ -156,10 +156,11 @@ class _HomeState extends State { children: [ Text( 'Rourkela Club Menu', - style: TextStyle( - color: Colors.deepOrange, - fontSize: 14, - decoration: TextDecoration.underline), + style: GoogleFonts.inter( + color: Colors.deepOrange, + fontSize: 14, + decoration: TextDecoration.underline, + ), ), IconButton( padding: EdgeInsets.all(0), @@ -178,7 +179,7 @@ class _HomeState extends State { children: [ Text( " Notice Board", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.grey, fontSize: 22, fontWeight: FontWeight.bold, @@ -518,12 +519,33 @@ class _LoadingDataState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Row(children: [ - CircleAvatar( - radius: 60.0, - backgroundImage: NetworkImage( - 'https://www.pngitem.com/pimgs/m/146-1468479_my-profile-icon-blank-profile-picture-circle-hd.png'), - backgroundColor: Colors.transparent, - ), + if (snapshot.data["avatar"] == "") ...[ + InkWell( + onTap: () { + Navigator.pushNamed( + context, '/uploadAvatarImage'); + }, + child: CircleAvatar( + radius: 60.0, + backgroundImage: NetworkImage( + 'https://www.pngitem.com/pimgs/m/146-1468479_my-profile-icon-blank-profile-picture-circle-hd.png'), + backgroundColor: Colors.transparent, + ), + ), + ] else ...[ + InkWell( + onTap: () { + Navigator.pushNamed( + context, '/uploadAvatarImage'); + }, + child: CircleAvatar( + radius: 60.0, + backgroundImage: + NetworkImage('${snapshot.data["avatar"]}'), + backgroundColor: Colors.transparent, + ), + ), + ], Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ diff --git a/lib/pages/Milan.dart b/lib/pages/Milan.dart index f61e28b..a472a0f 100644 --- a/lib/pages/Milan.dart +++ b/lib/pages/Milan.dart @@ -32,6 +32,19 @@ class _MilanLoungeState extends State { fit: BoxFit.fill)), ), ), + Text( + "Milan Lounge", + style: TextStyle( + color: Colors.blueAccent, + fontSize: 40, + ), + ), + Text( + "The Milan Lounge is a cozy lounge. Perfect for small group gatherings like office parties, get togethers amongst friends etc \n \nCapacity : 15 people\n \n \n \n ", + style: TextStyle( + fontSize: 20 + ), + ), SizedBox( width: double.infinity, height: 60, diff --git a/lib/pages/MilapL.dart b/lib/pages/MilapL.dart index bedc86d..56b00de 100644 --- a/lib/pages/MilapL.dart +++ b/lib/pages/MilapL.dart @@ -33,6 +33,19 @@ class _MilapLoungeState extends State { fit: BoxFit.fill)), ), ), + Text( + "Milap Reception Hall", + style: TextStyle( + color: Colors.blueAccent, + fontSize: 40, + ), + ), + Text( + "The Milap Reception Hall is a large hall present in the first floor of the club. Perfect for medium group gatherings like office parties, departmental dinners etc \n \nCapacity : 70 people\n \n \n \n ", + style: TextStyle( + fontSize: 20 + ), + ), SizedBox( width: double.infinity, height: 60, diff --git a/lib/pages/YellowL.dart b/lib/pages/YellowL.dart index 7bc0e8c..8b126c6 100644 --- a/lib/pages/YellowL.dart +++ b/lib/pages/YellowL.dart @@ -32,6 +32,19 @@ class _YellowLoungeState extends State { fit: BoxFit.fill)), ), ), + Text( + "Yellow Lounge", + style: TextStyle( + color: Colors.blueAccent, + fontSize: 40, + ), + ), + Text( + "The Yellow Lounge is a large, comfortable lounge in the ground floor of the club. It is decorated with plush sofas and a warm ambience. Perfect for medium gatherings like office gettogethers, birthday parties etc \n \nCapacity : 25 people", + style: TextStyle( + fontSize: 20 + ), + ), SizedBox( width: double.infinity, height: 60, diff --git a/lib/pages/mainhall.dart b/lib/pages/mainhall.dart new file mode 100644 index 0000000..6cd93af --- /dev/null +++ b/lib/pages/mainhall.dart @@ -0,0 +1,65 @@ +import 'package:flutter/material.dart'; + + +class MainHall extends StatefulWidget { + @override + _MainHallState createState() => _MainHallState(); +} + +class _MainHallState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + elevation: 10.0, + backgroundColor: Colors.deepOrange, + title: Text('Main Recption Hall'), + ), + body: new Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + InkWell( + child: Container( + height: 200.0, + width: double.infinity, + padding: EdgeInsets.symmetric(horizontal: 50, vertical: 30), + margin: EdgeInsets.symmetric(horizontal: 10, vertical: 20), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.blue, + image: DecorationImage( + image: new AssetImage("assets/15.jpg"), + fit: BoxFit.fill)), + ), + ), + Text("The Main Banquet Hall", + style: TextStyle( + color: Colors.redAccent, + fontSize: 30 + ),), + Container( + padding: EdgeInsets.all(10), + child:Text("Present in front of the entrance, the main Banquet Hall is for major occasion s and for big group gatherings, such as musical events, social gatherings, large office parties, marriage receptions, etc \n \n" + "Capacity - 250 people", + style: TextStyle( + color: Colors.black, + fontSize: 20 + ),), + ), + SizedBox( + width: double.infinity, + height: 60, + child: ButtonTheme( + child: RaisedButton( + color: Colors.deepOrange, + onPressed: () { + Navigator.pushNamed(context, "/bookingcalendar"); + }, + child: Text('Book', + style: TextStyle(color: Colors.white, fontSize: 18))), + )), + ], + ), + ); + } +} diff --git a/lib/pages/uploadAvatar.dart b/lib/pages/uploadAvatar.dart new file mode 100644 index 0000000..68d3fac --- /dev/null +++ b/lib/pages/uploadAvatar.dart @@ -0,0 +1,234 @@ +import 'dart:io'; +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:firebase_storage/firebase_storage.dart'; +import 'package:flutter/material.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:path/path.dart'; +import 'package:rcapp/services/database.dart'; + +class UploadAvatar extends StatefulWidget { + @override + _UploadAvatarState createState() => _UploadAvatarState(); +} + +class _UploadAvatarState extends State { + @override + Widget build(BuildContext context) { + return ImageCapture(); + } +} + +class ImageCapture extends StatefulWidget { + @override + _ImageCaptureState createState() => _ImageCaptureState(); +} + +class _ImageCaptureState extends State { + File _pickedImage; + + bool showOptions = false; + + String food = ''; + int price = 0; + + bool exists = false; + var userId = ''; + + void initialize() async { + var uid = (await FirebaseAuth.instance.currentUser()).uid; + var result = + await Firestore.instance.collection('userInfo').document(uid).get(); + var _avatar = result.data["avatar"]; + print(_avatar); + setState(() { + userId = uid; + }); + if (_avatar != "") { + setState(() { + exists = true; + }); + } + } + + void _pickImage(ImageSource source) async { + final pickedImageFile = await ImagePicker.pickImage( + source: source, imageQuality: 100, maxWidth: 350, maxHeight: 280); + setState(() { + _pickedImage = pickedImageFile; + }); + } + + void _clear() { + setState(() => _pickedImage = null); + } + + void toggle() { + setState(() { + showOptions = !showOptions; + }); + } + + @override + void initState() { + // TODO: implement initState + super.initState(); + initialize(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.deepOrange, + title: Text('Upload Image'), + ), + bottomNavigationBar: BottomAppBar( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + if (showOptions == true) ...[ + IconButton( + iconSize: 40, + color: Colors.deepOrange, + icon: Icon(Icons.photo_library), + onPressed: () => _pickImage(ImageSource.gallery), + ), + IconButton( + iconSize: 40, + color: Colors.deepOrange, + icon: Icon(Icons.camera), + onPressed: () => _pickImage(ImageSource.camera), + ) + ] + ], + ), + ), + body: SingleChildScrollView( + child: Container( + padding: EdgeInsets.fromLTRB(40, 10, 40, 0), + child: Column(children: [ + if (_pickedImage == null) ...[ + Center( + child: Container( + width: 320, + height: 250, + decoration: BoxDecoration( + border: + Border.all(color: Colors.deepOrange, width: 2.0), + borderRadius: BorderRadius.circular(10)), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + IconButton( + onPressed: () { + toggle(); + }, + iconSize: 40, + icon: Icon(Icons.image), + ), + SizedBox(height: 5), + Text(exists ? 'Update Profile Pic' : 'Add Profile Pic', + style: TextStyle( + fontWeight: FontWeight.w500, fontSize: 20)) + ], + ), + ), + ), + ], + if (_pickedImage != null) ...[ + Image.file(_pickedImage), + SizedBox(height: 10), + Uploader(file: _pickedImage, userId: userId), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + FlatButton( + color: Colors.deepOrange, + child: Icon(Icons.refresh), + onPressed: _clear, + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + ), + ]), + ] + ]), + ), + )); + } +} + +class Uploader extends StatefulWidget { + final userId; + final file; + Uploader({this.file, this.userId}); + @override + _UploaderState createState() => _UploaderState(); +} + +class _UploaderState extends State { + final FirebaseStorage _storage = + FirebaseStorage(storageBucket: 'gs://rcapp-de25c.appspot.com'); + // StorageUploadTask _uploadTask; + + var _uploadTask; + + final DatabaseService _todayMenuUploader = DatabaseService(); + + Future _startUpload() async { + try { + final ref = FirebaseStorage.instance + .ref() + .child('userAvatar') + .child('${DateTime.now()}.jpg'); + + setState(() { + _uploadTask = ref.putFile(widget.file); + }); + + await ref.putFile(widget.file).onComplete; + + final url = await ref.getDownloadURL(); + + _todayMenuUploader.updateAvatar(url, widget.userId); + print(url); + } catch (e) { + print(e.toString()); + } + } + + @override + Widget build(BuildContext context) { + if (_uploadTask != null) { + return StreamBuilder( + stream: _uploadTask.events, + builder: (context, snapshot) { + var event = snapshot?.data?.snapshot; + double progressPercent = + event != null ? event.bytesTransferred / event.totalByteCount : 0; + + return Column(children: [ + if (_uploadTask.isComplete) Text("Uploaded To Database"), + LinearProgressIndicator(value: progressPercent), + Text('${(progressPercent * 100).toStringAsFixed(2)} %') + ]); + }, + ); + } else { + return FlatButton.icon( + onPressed: () { + _startUpload(); + }, + icon: Icon(Icons.cloud_upload), + label: Text( + 'Save Data To List', + style: TextStyle(fontSize: 17), + ), + shape: new RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(10.0)), + color: Colors.deepOrange, + ); + } + } +} diff --git a/lib/services/database.dart b/lib/services/database.dart index 3468913..29949a0 100644 --- a/lib/services/database.dart +++ b/lib/services/database.dart @@ -1,4 +1,5 @@ import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; import 'package:rcapp/models/category.dart'; import 'package:rcapp/models/user.dart'; @@ -61,6 +62,7 @@ class DatabaseService { 'isAdmin': isAdmin, 'number': number, 'address': '', + 'avatar': '', }); } @@ -82,6 +84,10 @@ class DatabaseService { .setData({'category_menu': food, 'itemprice': price, 'imagepath': url}); } + Future updateAvatar(String url, String uid) async { + return await userInfo.document(uid).updateData({'avatar': url}); + } + Future updatePdf(String title, String subtitle, String url) async { return await notice_pdfData .document() diff --git a/pubspec.lock b/pubspec.lock index ecdb811..8953a39 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -85,6 +85,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.14.13" + convert: + dependency: transitive + description: + name: convert + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.5" cupertino_icons: dependency: "direct main" description: @@ -261,6 +275,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.4" + google_fonts: + dependency: "direct main" + description: + name: google_fonts + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" google_maps_flutter: dependency: "direct main" description: @@ -520,4 +541,4 @@ packages: version: "0.1.0" sdks: dart: ">=2.9.0-14.0.dev <3.0.0" - flutter: ">=1.16.3 <2.0.0" + flutter: ">=1.17.0 <2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index d2d28b0..0fde91d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -43,6 +43,7 @@ dependencies: flutter_downloader: ^1.5.0 path_provider: ^1.6.14 animated_text_kit: ^2.2.0 + google_fonts: ^1.1.0 From 06adf750538cb9bb6e128cfed1655f98e5d02b26 Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Fri, 18 Sep 2020 17:37:20 +0530 Subject: [PATCH 28/29] gaand marwa liye --- android/app/build.gradle | 2 +- android/app/google-services.json | 18 ++++----- lib/CustomWidget/food_card.dart | 13 ++++--- lib/CustomWidget/foot_category.dart | 3 +- lib/CustomWidget/menu_card.dart | 3 +- lib/CustomWidget/todays_menucard.dart | 5 ++- lib/pages/Add_Food.dart | 7 ++-- lib/pages/BlueL.dart | 7 ++-- lib/pages/Booking.dart | 17 +++++---- lib/pages/Cart.dart | 25 ++++++------ lib/pages/Coluseum.dart | 7 ++-- lib/pages/Food.dart | 43 +++++++++++---------- lib/pages/Home.dart | 2 +- lib/pages/Login.dart | 9 +++-- lib/pages/Milan.dart | 7 ++-- lib/pages/MilapL.dart | 7 ++-- lib/pages/Register.dart | 27 ++----------- lib/pages/Search.dart | 7 ++-- lib/pages/YellowL.dart | 7 ++-- lib/pages/add_event.dart | 12 +++--- lib/pages/address.dart | 5 ++- lib/pages/adminBooking.dart | 27 ++++++------- lib/pages/admin_order_confirm.dart | 45 +++++++++++----------- lib/pages/booking_calendar.dart | 11 +++--- lib/pages/mainhall.dart | 7 ++-- lib/pages/order_card.dart | 5 ++- lib/pages/order_cart.dart | 3 +- lib/pages/orderdetails.dart | 7 ++-- lib/pages/previousBooking.dart | 16 +++++--- lib/pages/previousOrder.dart | 55 +++++++++++++++++++-------- lib/pages/uploadAvatar.dart | 45 ++++++++++++++++------ lib/pages/uploadImage.dart | 43 +++++++++++++++------ lib/pages/uploadPdf.dart | 27 ++++++++----- lib/pages/welcome.dart | 3 +- lib/services/auth.dart | 3 +- 35 files changed, 305 insertions(+), 225 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 4f51cd0..d43626c 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -38,7 +38,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.flutter.rcapp" + applicationId "com.rourkela.rcapp" minSdkVersion 23 targetSdkVersion 28 versionCode flutterVersionCode.toInteger() diff --git a/android/app/google-services.json b/android/app/google-services.json index 95c0cd7..11a767f 100644 --- a/android/app/google-services.json +++ b/android/app/google-services.json @@ -1,34 +1,34 @@ { "project_info": { - "project_number": "433660739407", - "firebase_url": "https://rcapp-de25c.firebaseio.com", - "project_id": "rcapp-de25c", - "storage_bucket": "rcapp-de25c.appspot.com" + "project_number": "946016773649", + "firebase_url": "https://rcapp-a57cd.firebaseio.com", + "project_id": "rcapp-a57cd", + "storage_bucket": "rcapp-a57cd.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:433660739407:android:719770e06797fb89130f3a", + "mobilesdk_app_id": "1:946016773649:android:cd582a95e23ec301a933b0", "android_client_info": { - "package_name": "com.flutter.rcapp" + "package_name": "com.rourkela.rcapp" } }, "oauth_client": [ { - "client_id": "433660739407-fk81st9lddi06arc3toggnlcb311li30.apps.googleusercontent.com", + "client_id": "946016773649-6mequs1kpd3h8o5phpd8ee1juj3c7vg0.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyBZ2nQ3CT4od1Pt09Wj8wyyyC5JkWVD7tM" + "current_key": "AIzaSyCK8rzg8SncLmjZFItCFLAAg5aFzmazaJc" } ], "services": { "appinvite_service": { "other_platform_oauth_client": [ { - "client_id": "433660739407-fk81st9lddi06arc3toggnlcb311li30.apps.googleusercontent.com", + "client_id": "946016773649-6mequs1kpd3h8o5phpd8ee1juj3c7vg0.apps.googleusercontent.com", "client_type": 3 } ] diff --git a/lib/CustomWidget/food_card.dart b/lib/CustomWidget/food_card.dart index a9c4414..cdcf929 100644 --- a/lib/CustomWidget/food_card.dart +++ b/lib/CustomWidget/food_card.dart @@ -2,6 +2,7 @@ import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; import 'package:focused_menu/focused_menu.dart'; import 'package:focused_menu/modals.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/models/user.dart'; import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/storeData.dart'; @@ -104,7 +105,7 @@ class FoodCard extends StatelessWidget { width: 60, child: Text( categoryName, - style: TextStyle( + style: GoogleFonts.inter( fontWeight: FontWeight.bold, fontSize: 16.0, color: Colors.white), @@ -112,7 +113,7 @@ class FoodCard extends StatelessWidget { ), Text( '₹' + '$itemprice', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ) ], ), @@ -132,7 +133,7 @@ class FoodCard extends StatelessWidget { child: Center( child: Text( 'Add', - style: TextStyle( + style: GoogleFonts.inter( fontWeight: FontWeight.w400, color: Colors.white), ), @@ -169,7 +170,7 @@ class FoodCard extends StatelessWidget { width: 60, child: Text( categoryName, - style: TextStyle( + style: GoogleFonts.inter( fontWeight: FontWeight.bold, fontSize: 16.0, color: Colors.white), @@ -177,7 +178,7 @@ class FoodCard extends StatelessWidget { ), Text( '₹' + '$itemprice', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ) ], ), @@ -197,7 +198,7 @@ class FoodCard extends StatelessWidget { child: Center( child: Text( 'Add', - style: TextStyle( + style: GoogleFonts.inter( fontWeight: FontWeight.w400, color: Colors.white), ), diff --git a/lib/CustomWidget/foot_category.dart b/lib/CustomWidget/foot_category.dart index a5a63d9..65b09a3 100644 --- a/lib/CustomWidget/foot_category.dart +++ b/lib/CustomWidget/foot_category.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:focused_menu/focused_menu.dart'; import 'package:focused_menu/modals.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/models/user.dart'; import 'package:rcapp/pages/storeData.dart'; import 'food_card.dart'; @@ -40,7 +41,7 @@ class FoodCategory extends StatelessWidget { size: 45, ), SizedBox(height: 20), - Text('LOADING', style: TextStyle(fontWeight: FontWeight.w400)) + Text('LOADING', style: GoogleFonts.inter(fontWeight: FontWeight.w400)) ]), ); } else { diff --git a/lib/CustomWidget/menu_card.dart b/lib/CustomWidget/menu_card.dart index ccb62b3..cf56587 100644 --- a/lib/CustomWidget/menu_card.dart +++ b/lib/CustomWidget/menu_card.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/services/database.dart'; class MenuCard extends StatelessWidget { @@ -32,7 +33,7 @@ class MenuCard extends StatelessWidget { children: [ Text( '$categoryName', - style: TextStyle( + style: GoogleFonts.inter( fontWeight: FontWeight.bold, ), ) diff --git a/lib/CustomWidget/todays_menucard.dart b/lib/CustomWidget/todays_menucard.dart index 2634812..cc674c9 100644 --- a/lib/CustomWidget/todays_menucard.dart +++ b/lib/CustomWidget/todays_menucard.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; class TodayFoodCard extends StatelessWidget { final String categoryName; @@ -24,11 +25,11 @@ class TodayFoodCard extends StatelessWidget { children: [ Text( categoryName, - style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16.0, color: Colors.white), + style: GoogleFonts.inter(fontWeight: FontWeight.bold, fontSize: 16.0, color: Colors.white), ), Text( '₹' + '$itemprice', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ) ], )); diff --git a/lib/pages/Add_Food.dart b/lib/pages/Add_Food.dart index c069c98..3fc445c 100644 --- a/lib/pages/Add_Food.dart +++ b/lib/pages/Add_Food.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; class AddFood extends StatefulWidget { final String id; @@ -30,7 +31,7 @@ class _AddFoodState extends State { ), Text( widget.Name, - style: TextStyle(fontSize: 17, fontWeight: FontWeight.bold), + style: GoogleFonts.inter(fontSize: 17, fontWeight: FontWeight.bold), ), ], ), @@ -50,7 +51,7 @@ class _AddFoodState extends State { ), Text( '$FQty', - style: TextStyle(fontSize: 17, fontWeight: FontWeight.bold), + style: GoogleFonts.inter(fontSize: 17, fontWeight: FontWeight.bold), ), IconButton( icon: Icon( @@ -72,7 +73,7 @@ class _AddFoodState extends State { margin: new EdgeInsets.symmetric(horizontal:50.0), child:Text( '₹' + widget.price.toString(), - style: TextStyle(fontSize: 17, fontWeight: FontWeight.bold), + style: GoogleFonts.inter(fontSize: 17, fontWeight: FontWeight.bold), ), ), ], diff --git a/lib/pages/BlueL.dart b/lib/pages/BlueL.dart index 863d0bb..66b8421 100644 --- a/lib/pages/BlueL.dart +++ b/lib/pages/BlueL.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; class BlueLounge extends StatefulWidget { @@ -34,14 +35,14 @@ class _BlueLoungeState extends State { ), Text( "Blue Lounge", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.blueAccent, fontSize: 40, ), ), Text( "The Blue Lounge is a comfortable lounge present in the ground floor of the club. Perfect for small group gatherings like office parties, get togethers amongst friends etc \n \nCapacity : 15 people\n \n \n \n ", - style: TextStyle( + style: GoogleFonts.inter( fontSize: 20 ), ), @@ -55,7 +56,7 @@ class _BlueLoungeState extends State { Navigator.pushNamed(context, "/bookingcalendar"); }, child: Text('Book', - style: TextStyle(color: Colors.white, fontSize: 18))), + style: GoogleFonts.inter(color: Colors.white, fontSize: 18))), )), ], ), diff --git a/lib/pages/Booking.dart b/lib/pages/Booking.dart index 3281a58..5201bc1 100644 --- a/lib/pages/Booking.dart +++ b/lib/pages/Booking.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:carousel_pro/carousel_pro.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/pages/NavigationBar.dart'; class Booking extends StatefulWidget { @@ -26,7 +27,7 @@ class _BookingState extends State { children: [ Text( " Lounges", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.grey, fontSize: 25, fontWeight: FontWeight.bold, @@ -66,7 +67,7 @@ class _BookingState extends State { alignment: Alignment.bottomCenter, child: Text( 'Blue Lounge', - style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + style: GoogleFonts.inter(color: Colors.white, fontWeight: FontWeight.bold), ), ), decoration: BoxDecoration( @@ -89,7 +90,7 @@ class _BookingState extends State { alignment: Alignment.bottomCenter, child: Text( 'Yellow Lounge', - style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + style: GoogleFonts.inter(color: Colors.white, fontWeight: FontWeight.bold), ), ), decoration: BoxDecoration( @@ -112,7 +113,7 @@ class _BookingState extends State { alignment: Alignment.bottomCenter, child: Text( 'Milap Hall', - style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + style: GoogleFonts.inter(color: Colors.white, fontWeight: FontWeight.bold), ), ), decoration: BoxDecoration( @@ -135,7 +136,7 @@ class _BookingState extends State { alignment: Alignment.bottomCenter, child: Text( 'Milan Lounge', - style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + style: GoogleFonts.inter(color: Colors.white, fontWeight: FontWeight.bold), ), ), decoration: BoxDecoration( @@ -156,7 +157,7 @@ class _BookingState extends State { SizedBox(height: 30.0), Text( " Banquet Halls", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.grey, fontSize: 25, fontWeight: FontWeight.bold, @@ -186,7 +187,7 @@ class _BookingState extends State { alignment: Alignment.bottomCenter, child: Text( 'Main Hall', - style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + style: GoogleFonts.inter(color: Colors.white, fontWeight: FontWeight.bold), ), ), decoration: BoxDecoration( @@ -209,7 +210,7 @@ class _BookingState extends State { alignment: Alignment.bottomCenter, child: Text( 'Wedding Hall', - style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + style: GoogleFonts.inter(color: Colors.white, fontWeight: FontWeight.bold), ), ), decoration: BoxDecoration( diff --git a/lib/pages/Cart.dart b/lib/pages/Cart.dart index 2e061ad..2ee1cc2 100644 --- a/lib/pages/Cart.dart +++ b/lib/pages/Cart.dart @@ -2,6 +2,7 @@ import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/pages/Food.dart'; import 'package:rcapp/pages/order_cart.dart'; import 'package:rcapp/pages/storeData.dart'; @@ -105,7 +106,7 @@ class _CartState extends State { margin: EdgeInsets.only(left: 20), child: Text( 'Deliver To:', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.deepOrange, fontWeight: FontWeight.bold), ), @@ -114,7 +115,7 @@ class _CartState extends State { Container( child: Text( 'Change/Add', - style: TextStyle( + style: GoogleFonts.inter( decoration: TextDecoration.underline, color: Colors.deepOrange, fontWeight: FontWeight.bold), @@ -137,7 +138,7 @@ class _CartState extends State { margin: EdgeInsets.symmetric(horizontal: 20, vertical: 0), child: Text( '$address', - style: TextStyle(fontSize: 16), + style: GoogleFonts.inter(fontSize: 16), )) ], ), @@ -174,7 +175,7 @@ class _CartState extends State { ), Text( keyname, - style: TextStyle( + style: GoogleFonts.inter( fontSize: 17, fontWeight: FontWeight.bold), ), @@ -198,7 +199,7 @@ class _CartState extends State { new EdgeInsets.symmetric(horizontal: 50.0), child: Text( '₹' + '$price' + ' Quantity: ' + '$qty', - style: TextStyle( + style: GoogleFonts.inter( fontSize: 15, fontWeight: FontWeight.bold), ), ), @@ -269,7 +270,7 @@ class _QuantityInCartState extends State { height: 25, width: 62, child: Center( - child: Text('Add', style: TextStyle(color: Colors.deepOrange))), + child: Text('Add', style: GoogleFonts.inter(color: Colors.deepOrange))), ), ); } else { @@ -325,12 +326,12 @@ class _QuantityInCartState extends State { width: 33, child: Text( '${widget.qty}', - style: TextStyle(fontSize: 17, fontWeight: FontWeight.bold), + style: GoogleFonts.inter(fontSize: 17, fontWeight: FontWeight.bold), ), ), // Text( // '$FQty', - // style: TextStyle(fontSize: 17, fontWeight: FontWeight.bold), + // style: GoogleFonts.inter(fontSize: 17, fontWeight: FontWeight.bold), // ), Container( alignment: Alignment.center, @@ -390,7 +391,7 @@ class _ProceedAccessState extends State { }, child: Text( 'Add address to proceed', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ))); } else if (widget.address != '') { return Container( @@ -405,7 +406,7 @@ class _ProceedAccessState extends State { }, child: Text( 'Proceed to Pay', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ))); } else if (widget.address == null) { return Container( @@ -438,14 +439,14 @@ class BottomItemView extends StatelessWidget { Text( '${qty} ' + ' item ' + '|' + ' ' + '₹ ' + '${total}', style: - TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + GoogleFonts.inter(color: Colors.white, fontWeight: FontWeight.bold), ), InkWell( onTap: (() => Navigator.pushNamed(context, '/cart')), child: Text( 'VIEW CART', style: - TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + GoogleFonts.inter(color: Colors.white, fontWeight: FontWeight.bold), ), ) ], diff --git a/lib/pages/Coluseum.dart b/lib/pages/Coluseum.dart index 2b4741e..9385634 100644 --- a/lib/pages/Coluseum.dart +++ b/lib/pages/Coluseum.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; class Coluseum extends StatefulWidget { @@ -34,14 +35,14 @@ class _ColuseumState extends State { ), Text( "Coluseum", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.blueAccent, fontSize: 40, ), ), Text( "The Blue Lounge is a comfortable lounge present in the ground floor of the club. Perfect for small group gatherings like office parties, get togethers amongst friends etc \n \nCapacity : 15 people\n \n \n \n ", - style: TextStyle( + style: GoogleFonts.inter( fontSize: 20 ), ), @@ -55,7 +56,7 @@ class _ColuseumState extends State { Navigator.pushNamed(context, "/bookingcalendar"); }, child: Text('Book', - style: TextStyle(color: Colors.white, fontSize: 18))), + style: GoogleFonts.inter(color: Colors.white, fontSize: 18))), )), ], ), diff --git a/lib/pages/Food.dart b/lib/pages/Food.dart index 2cf6b01..a9f35ea 100644 --- a/lib/pages/Food.dart +++ b/lib/pages/Food.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/CustomWidget/foot_category.dart'; import 'package:rcapp/models/user.dart'; import 'package:rcapp/pages/Cart.dart'; @@ -101,7 +102,7 @@ class _FoodState extends State { padding: EdgeInsets.fromLTRB(10, 0, 0, 0), child: Text( "Today's Menu", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.grey, fontSize: 25, fontWeight: FontWeight.bold, @@ -120,7 +121,7 @@ class _FoodState extends State { padding: EdgeInsets.fromLTRB(10, 0, 0, 0), child: Text( "Categories: ", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.grey, fontSize: 25, fontWeight: FontWeight.bold, @@ -134,7 +135,7 @@ class _FoodState extends State { shape: new RoundedRectangleBorder( borderRadius: new BorderRadius.circular(10.0)), child: Text('Menu', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.deepOrange, fontSize: 20, fontWeight: FontWeight.bold)), @@ -185,7 +186,7 @@ class _QuantityState extends State { height: 25, width: 62, child: - Center(child: Text('Add', style: TextStyle(color: Colors.white))), + Center(child: Text('Add', style: GoogleFonts.inter(color: Colors.white))), ), ); } else { @@ -203,7 +204,7 @@ class _QuantityState extends State { height: 25, width: 66, child: Center( - child: Text('Remove', style: TextStyle(color: Colors.white))), + child: Text('Remove', style: GoogleFonts.inter(color: Colors.white))), ), ); } @@ -256,7 +257,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Main Course', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -279,7 +280,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Breads', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -302,7 +303,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Biryani', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -325,7 +326,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Tandoori', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -358,7 +359,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Chinese', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -381,7 +382,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Fried Rice and Noodles', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -404,7 +405,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Main Course', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -427,7 +428,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Pizza', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -460,7 +461,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Snacks', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -483,7 +484,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Sandwiches', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -506,7 +507,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Burgers', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -529,7 +530,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Pasta', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -562,7 +563,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Soup', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -585,7 +586,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Accompaniment', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -608,7 +609,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Starters', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( @@ -631,7 +632,7 @@ class _ListPageState extends State { alignment: Alignment.bottomCenter, child: Text( 'Breakfast', - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), ), ), decoration: BoxDecoration( diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart index b604b6b..05faa65 100644 --- a/lib/pages/Home.dart +++ b/lib/pages/Home.dart @@ -511,7 +511,7 @@ class _LoadingDataState extends State { ), SizedBox(height: 20), Text('LOADING', - style: TextStyle(fontWeight: FontWeight.w500)) + style: GoogleFonts.inter(fontWeight: FontWeight.w500)) ]), ); } else { diff --git a/lib/pages/Login.dart b/lib/pages/Login.dart index c4e4ee3..945e153 100644 --- a/lib/pages/Login.dart +++ b/lib/pages/Login.dart @@ -1,5 +1,6 @@ import 'package:carousel_pro/carousel_pro.dart'; import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/pages/loadingspinner.dart'; import 'package:rcapp/services/auth.dart'; @@ -120,7 +121,7 @@ class _LoginState extends State { horizontal: 40, vertical: 15), child: Text( 'Login', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.white, fontWeight: FontWeight.w400, fontSize: 25), @@ -150,7 +151,7 @@ class _LoginState extends State { SizedBox(height: 10.0), Text( error, - style: TextStyle(color: Colors.red, fontSize: 14.0), + style: GoogleFonts.inter(color: Colors.red, fontSize: 14.0), ), SizedBox(height: 15.0), Row( @@ -158,7 +159,7 @@ class _LoginState extends State { children: [ Text( 'Or, If you are a new user, ', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.deepOrange, fontSize: 15), ), InkWell( @@ -166,7 +167,7 @@ class _LoginState extends State { widget.toggleView(); }, child: Text('Register', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.blue, decoration: TextDecoration.underline, fontSize: 15)), diff --git a/lib/pages/Milan.dart b/lib/pages/Milan.dart index a472a0f..461d369 100644 --- a/lib/pages/Milan.dart +++ b/lib/pages/Milan.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; class MilanLounge extends StatefulWidget { @@ -34,14 +35,14 @@ class _MilanLoungeState extends State { ), Text( "Milan Lounge", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.blueAccent, fontSize: 40, ), ), Text( "The Milan Lounge is a cozy lounge. Perfect for small group gatherings like office parties, get togethers amongst friends etc \n \nCapacity : 15 people\n \n \n \n ", - style: TextStyle( + style: GoogleFonts.inter( fontSize: 20 ), ), @@ -55,7 +56,7 @@ class _MilanLoungeState extends State { Navigator.pushNamed(context, "/bookingcalendar"); }, child: Text('Book', - style: TextStyle(color: Colors.white, fontSize: 18))), + style: GoogleFonts.inter(color: Colors.white, fontSize: 18))), )), ], ), diff --git a/lib/pages/MilapL.dart b/lib/pages/MilapL.dart index 56b00de..29fbbc1 100644 --- a/lib/pages/MilapL.dart +++ b/lib/pages/MilapL.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; @@ -35,14 +36,14 @@ class _MilapLoungeState extends State { ), Text( "Milap Reception Hall", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.blueAccent, fontSize: 40, ), ), Text( "The Milap Reception Hall is a large hall present in the first floor of the club. Perfect for medium group gatherings like office parties, departmental dinners etc \n \nCapacity : 70 people\n \n \n \n ", - style: TextStyle( + style: GoogleFonts.inter( fontSize: 20 ), ), @@ -56,7 +57,7 @@ class _MilapLoungeState extends State { Navigator.pushNamed(context, "/bookingcalendar"); }, child: Text('Book', - style: TextStyle(color: Colors.white, fontSize: 18))), + style: GoogleFonts.inter(color: Colors.white, fontSize: 18))), )), ], ), diff --git a/lib/pages/Register.dart b/lib/pages/Register.dart index a57c66a..7bc91eb 100644 --- a/lib/pages/Register.dart +++ b/lib/pages/Register.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/pages/loadingspinner.dart'; import 'package:rcapp/services/auth.dart'; @@ -18,7 +19,6 @@ class _RegisterState extends State { // test field state String name = ''; - String email = ''; String password = ''; String error = ''; String number = ''; @@ -92,25 +92,6 @@ class _RegisterState extends State { setState(() => number = val); }), SizedBox(height: 18.0), - TextFormField( - decoration: InputDecoration( - hintText: 'Email', - fillColor: Colors.white, - filled: true, - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 1.0), - borderRadius: BorderRadius.circular(10)), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: Colors.deepOrange, width: 3.0), - borderRadius: BorderRadius.circular(10))), - validator: (val) => - val.isEmpty ? 'Enter an email' : null, - onChanged: (val) { - setState(() => email = val); - }), - SizedBox(height: 18.0), TextFormField( decoration: InputDecoration( hintText: 'Password', @@ -138,7 +119,7 @@ class _RegisterState extends State { horizontal: 40, vertical: 15), child: Text( 'Register', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.white, fontWeight: FontWeight.w400, fontSize: 25), @@ -153,7 +134,7 @@ class _RegisterState extends State { }); dynamic result = await _auth.registerWithEmailAndPassword( - name, false, number, email, password); + name, false, number, password); if (result == null) { setState(() { error = 'please supply a valid email'; @@ -166,7 +147,7 @@ class _RegisterState extends State { SizedBox(height: 20.0), Text( error, - style: TextStyle(color: Colors.red, fontSize: 14.0), + style: GoogleFonts.inter(color: Colors.red, fontSize: 14.0), ) ]), )), diff --git a/lib/pages/Search.dart b/lib/pages/Search.dart index 5c3b5b1..c00c717 100644 --- a/lib/pages/Search.dart +++ b/lib/pages/Search.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; import 'package:rcapp/pages/searchService.dart'; import 'package:rcapp/pages/storeData.dart'; @@ -123,7 +124,7 @@ class _SearchQuantityState extends State { height: 25, width: 62, child: - Center(child: Text('Add', style: TextStyle(color: Colors.white))), + Center(child: Text('Add', style: GoogleFonts.inter(color: Colors.white))), ), ); } else { @@ -177,7 +178,7 @@ class _SearchQuantityState extends State { width: 33, child: Text( '$FQty', - style: TextStyle(fontSize: 17, fontWeight: FontWeight.bold), + style: GoogleFonts.inter(fontSize: 17, fontWeight: FontWeight.bold), ), ), Container( @@ -259,7 +260,7 @@ class _SearchListState extends State { children: [ Text( '${widget.tempSearchStore[index]['item']}', - style: TextStyle(fontSize: 17, fontWeight: FontWeight.bold), + style: GoogleFonts.inter(fontSize: 17, fontWeight: FontWeight.bold), ), SearchQuantity( item: widget.tempSearchStore[index]['item'], diff --git a/lib/pages/YellowL.dart b/lib/pages/YellowL.dart index 8b126c6..932beee 100644 --- a/lib/pages/YellowL.dart +++ b/lib/pages/YellowL.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; class YellowLounge extends StatefulWidget { @@ -34,14 +35,14 @@ class _YellowLoungeState extends State { ), Text( "Yellow Lounge", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.blueAccent, fontSize: 40, ), ), Text( "The Yellow Lounge is a large, comfortable lounge in the ground floor of the club. It is decorated with plush sofas and a warm ambience. Perfect for medium gatherings like office gettogethers, birthday parties etc \n \nCapacity : 25 people", - style: TextStyle( + style: GoogleFonts.inter( fontSize: 20 ), ), @@ -55,7 +56,7 @@ class _YellowLoungeState extends State { Navigator.pushNamed(context, "/bookingcalendar"); }, child: Text('Book', - style: TextStyle(color: Colors.white, fontSize: 18))), + style: GoogleFonts.inter(color: Colors.white, fontSize: 18))), )), ], ), diff --git a/lib/pages/add_event.dart b/lib/pages/add_event.dart index f4e6bbd..8ceae88 100644 --- a/lib/pages/add_event.dart +++ b/lib/pages/add_event.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/models/event.dart'; import 'package:flutter/material.dart'; import 'package:rcapp/pages/CategoryMenuList/flushbar.dart'; @@ -19,7 +20,6 @@ class AddEventPage extends StatefulWidget { } class _AddEventPageState extends State { - TextStyle style = TextStyle(fontFamily: 'Montserrat', fontSize: 20.0); final _formKey = GlobalKey(); final DatabaseService _booking = DatabaseService(); @@ -158,7 +158,7 @@ class _AddEventPageState extends State { SizedBox(height: 10), TextFormField( decoration: InputDecoration( - hintText: 'Number of People(Max: 5)', + hintText: 'Number of People', fillColor: Colors.white, filled: true, enabledBorder: OutlineInputBorder( @@ -169,8 +169,8 @@ class _AddEventPageState extends State { borderSide: BorderSide( color: Colors.deepOrange, width: 3.0), borderRadius: BorderRadius.circular(10))), - validator: (val) => int.tryParse(val) > 5 - ? 'Number of Peoples should be less than 5' + validator: (val) => int.tryParse(val) > 200 + ? 'Number of Peoples should be less than 200' : null, onChanged: (val) { setState(() => numberOfPeople = int.tryParse(val)); @@ -244,7 +244,7 @@ class _AddEventPageState extends State { horizontal: 40, vertical: 15), child: Text( 'Book Now', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.white, fontWeight: FontWeight.w400, fontSize: 25), @@ -276,7 +276,7 @@ class _AddEventPageState extends State { // } // class _AddEventPageState extends State { -// TextStyle style = TextStyle(fontFamily: 'Montserrat', fontSize: 20.0); +// GoogleFonts.inter style = GoogleFonts.inter(fontFamily: 'Montserrat', fontSize: 20.0); // TextEditingController _name; // TextEditingController _personalno; // TextEditingController _Lounge; diff --git a/lib/pages/address.dart b/lib/pages/address.dart index c759993..57f74ed 100644 --- a/lib/pages/address.dart +++ b/lib/pages/address.dart @@ -1,5 +1,6 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/services/database.dart'; class AddressForm extends StatefulWidget { @@ -151,7 +152,7 @@ class _AddressFormState extends State { horizontal: 40, vertical: 15), child: Text( 'Save', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.white, fontWeight: FontWeight.w400, fontSize: 25), @@ -189,7 +190,7 @@ class _AddressFormState extends State { SizedBox(height: 20.0), Text( error, - style: TextStyle(color: Colors.red, fontSize: 14.0), + style: GoogleFonts.inter(color: Colors.red, fontSize: 14.0), ) ]), )), diff --git a/lib/pages/adminBooking.dart b/lib/pages/adminBooking.dart index d3a4602..f7b8df5 100644 --- a/lib/pages/adminBooking.dart +++ b/lib/pages/adminBooking.dart @@ -2,6 +2,7 @@ import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/models/event.dart'; import 'package:rcapp/models/user.dart'; @@ -140,8 +141,8 @@ class _AdminBookingState extends State { SizedBox(height: 10.0), Container( padding: EdgeInsets.all(10), - height: 220.0, - width: 370.0, + height: 240.0, + width: 380.0, decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(12.0)), @@ -153,7 +154,7 @@ class _AdminBookingState extends State { children: [ Text( "#$orderNo", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.deepOrange, fontSize: 22), ), Flexible( @@ -170,7 +171,7 @@ class _AdminBookingState extends State { children: [ Text( "Name : " + "${bookings[index]["name"]}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -185,7 +186,7 @@ class _AdminBookingState extends State { Text( "Personal No. : " + "${bookings[index]["number"]}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -200,7 +201,7 @@ class _AdminBookingState extends State { Text( "Lounge : " + "${bookings[index]["lounge"]}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -214,7 +215,7 @@ class _AdminBookingState extends State { children: [ Text( 'Slot: ${bookings[index]["slot"]}', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -223,7 +224,7 @@ class _AdminBookingState extends State { bookings[index]["isConfirmed"] ? 'Status: Confirmed' : 'Status: Not Confirmed', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400)), @@ -239,7 +240,7 @@ class _AdminBookingState extends State { Row(children: [ Container( height: 30, - width: 100, + width: 110, child: FlatButton( onPressed: () { rejectBookinHistory( @@ -257,7 +258,7 @@ class _AdminBookingState extends State { ), Text( 'Reject', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.white), ), ]), @@ -269,7 +270,7 @@ class _AdminBookingState extends State { SizedBox(width: 5), Container( height: 30, - width: 100, + width: 110, child: FlatButton( onPressed: () { confirmBooking( @@ -294,7 +295,7 @@ class _AdminBookingState extends State { ), Text( 'Confirm', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.white), ), ]), @@ -329,7 +330,7 @@ class _AdminBookingState extends State { ), Text( 'Delete', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.white), ), ]), diff --git a/lib/pages/admin_order_confirm.dart b/lib/pages/admin_order_confirm.dart index 8f8805b..af36aaa 100644 --- a/lib/pages/admin_order_confirm.dart +++ b/lib/pages/admin_order_confirm.dart @@ -2,6 +2,7 @@ import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/models/user.dart'; @@ -107,7 +108,7 @@ class _AdminOrderState extends State { children: [ Text( "Order No: $orderNo", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.deepOrange, fontSize: 22), ), Flexible(child: Text('${orders[index]["date"]}')), @@ -123,7 +124,7 @@ class _AdminOrderState extends State { children: [ Text( "Name : " + "${orders[index]["name"]}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -138,7 +139,7 @@ class _AdminOrderState extends State { Text( "Personal No : " + "${orders[index]["number"]}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -153,7 +154,7 @@ class _AdminOrderState extends State { children: [ Text( "Status: Confirmed", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -167,7 +168,7 @@ class _AdminOrderState extends State { children: [ Text( "Status: Not Confirmed", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -182,7 +183,7 @@ class _AdminOrderState extends State { children: [ Text( "Cost : ₹" + "${orders[index]["total"]} ", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 22), ), Row(children: [ @@ -218,7 +219,7 @@ class _AdminOrderState extends State { borderRadius: BorderRadius.circular(5)), child: Text('View', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.white, )), ), @@ -240,7 +241,7 @@ class _AdminOrderState extends State { borderRadius: BorderRadius.circular(5)), child: Text('Confirm', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.white, )), ), @@ -261,7 +262,7 @@ class _AdminOrderState extends State { borderRadius: BorderRadius.circular(5)), child: Text('Delete', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.white, )), ), @@ -354,7 +355,7 @@ class _AdminOrderDetailsState extends State { contentPadding: EdgeInsets.all(10), title: Container( decoration: BoxDecoration( - color: Colors.blue[50], + color: Colors.white, borderRadius: BorderRadius.circular(10), border: Border.all(color: Colors.grey)), child: Column( @@ -365,7 +366,7 @@ class _AdminOrderDetailsState extends State { height: 500.0, width: 370.0, decoration: BoxDecoration( - color: Colors.blue[50], + color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(15.0)), ), child: Column( @@ -375,7 +376,7 @@ class _AdminOrderDetailsState extends State { children: [ Text( "#${widget.orderNo}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.deepOrange, fontSize: 22), ), Flexible(child: Text('${widget.date}')), @@ -390,7 +391,7 @@ class _AdminOrderDetailsState extends State { children: [ Text( "${widget.name}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 22, fontWeight: FontWeight.w500), @@ -403,7 +404,7 @@ class _AdminOrderDetailsState extends State { children: [ Text( "Personal No. :", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.grey, fontSize: 18, fontWeight: FontWeight.w500), @@ -413,7 +414,7 @@ class _AdminOrderDetailsState extends State { padding: EdgeInsets.fromLTRB(10, 0, 0, 0), child: Text( "${widget.number}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -431,7 +432,7 @@ class _AdminOrderDetailsState extends State { children: [ Text( "Delivered To : ", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.grey, fontSize: 18, fontWeight: FontWeight.w500), @@ -443,7 +444,7 @@ class _AdminOrderDetailsState extends State { EdgeInsets.fromLTRB(10, 0, 0, 0), child: Text( "${widget.address}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -460,7 +461,7 @@ class _AdminOrderDetailsState extends State { alignment: Alignment.centerLeft, child: Text( 'Menu :', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.grey, fontSize: 18, fontWeight: FontWeight.w500), @@ -471,12 +472,12 @@ class _AdminOrderDetailsState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text('Item Name', - style: TextStyle( + style: GoogleFonts.inter( fontSize: 20, fontWeight: FontWeight.w400, decoration: TextDecoration.underline)), Text('Quantity', - style: TextStyle( + style: GoogleFonts.inter( fontSize: 20, fontWeight: FontWeight.w400, decoration: TextDecoration.underline)) @@ -492,12 +493,12 @@ class _AdminOrderDetailsState extends State { children: [ Text( "Cost : ", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 22), ), Text( "₹${widget.total} ", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 22), ), ]), diff --git a/lib/pages/booking_calendar.dart b/lib/pages/booking_calendar.dart index 4de789a..d9fa146 100644 --- a/lib/pages/booking_calendar.dart +++ b/lib/pages/booking_calendar.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/res/event_firestore_service.dart'; import 'package:rcapp/pages/add_event.dart'; import 'package:rcapp/pages/view_event.dart'; @@ -66,7 +67,7 @@ class _CalendarState extends State { todayColor: Colors.orange, selectedColor: Theme.of(context).primaryColor, - todayStyle: TextStyle( + todayStyle: GoogleFonts.inter( fontWeight: FontWeight.bold, fontSize: 18.0, color: Colors.white)), @@ -76,7 +77,7 @@ class _CalendarState extends State { color: Colors.orange, borderRadius: BorderRadius.circular(20.0), ), - formatButtonTextStyle: TextStyle(color: Colors.white), + formatButtonTextStyle: GoogleFonts.inter(color: Colors.white), formatButtonShowsNext: false, ), startingDayOfWeek: StartingDayOfWeek.monday, @@ -94,7 +95,7 @@ class _CalendarState extends State { borderRadius: BorderRadius.circular(10.0)), child: Text( date.day.toString(), - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), )), todayDayBuilder: (context, date, events) => Container( margin: const EdgeInsets.all(4.0), @@ -104,7 +105,7 @@ class _CalendarState extends State { borderRadius: BorderRadius.circular(10.0)), child: Text( date.day.toString(), - style: TextStyle(color: Colors.white), + style: GoogleFonts.inter(color: Colors.white), )), ), calendarController: _controller, @@ -128,7 +129,7 @@ class _CalendarState extends State { floatingActionButton: FloatingActionButton( backgroundColor: Colors.deepOrange, child: Text('Book', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.white ),), onPressed: () => Navigator.pushNamed(context, '/add_event'), diff --git a/lib/pages/mainhall.dart b/lib/pages/mainhall.dart index 6cd93af..201a5ca 100644 --- a/lib/pages/mainhall.dart +++ b/lib/pages/mainhall.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; class MainHall extends StatefulWidget { @@ -33,7 +34,7 @@ class _MainHallState extends State { ), ), Text("The Main Banquet Hall", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.redAccent, fontSize: 30 ),), @@ -41,7 +42,7 @@ class _MainHallState extends State { padding: EdgeInsets.all(10), child:Text("Present in front of the entrance, the main Banquet Hall is for major occasion s and for big group gatherings, such as musical events, social gatherings, large office parties, marriage receptions, etc \n \n" "Capacity - 250 people", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 20 ),), @@ -56,7 +57,7 @@ class _MainHallState extends State { Navigator.pushNamed(context, "/bookingcalendar"); }, child: Text('Book', - style: TextStyle(color: Colors.white, fontSize: 18))), + style: GoogleFonts.inter(color: Colors.white, fontSize: 18))), )), ], ), diff --git a/lib/pages/order_card.dart b/lib/pages/order_card.dart index 1f7be8e..dfc6b61 100644 --- a/lib/pages/order_card.dart +++ b/lib/pages/order_card.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:rcapp/pages/Food.dart'; @@ -27,11 +28,11 @@ class _OrderCardState extends State { children: [ Text( "Total Amount:", - style: TextStyle(color: Colors.white, fontSize: 22), + style: GoogleFonts.inter(color: Colors.white, fontSize: 22), ), Text( "₹80", - style: TextStyle(color: Colors.white, fontSize: 22), + style: GoogleFonts.inter(color: Colors.white, fontSize: 22), ), ], ), diff --git a/lib/pages/order_cart.dart b/lib/pages/order_cart.dart index cfd48ae..1e3d353 100644 --- a/lib/pages/order_cart.dart +++ b/lib/pages/order_cart.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; class OrderCard extends StatefulWidget { int total; @@ -22,7 +23,7 @@ class _OrderCardState extends State { child: new Center( child: new Text( "Total Amount: " + '${widget.total}', - style: TextStyle(color: Colors.white, fontSize: 22), + style: GoogleFonts.inter(color: Colors.white, fontSize: 22), ))), ); } diff --git a/lib/pages/orderdetails.dart b/lib/pages/orderdetails.dart index b1ee63c..67c003d 100644 --- a/lib/pages/orderdetails.dart +++ b/lib/pages/orderdetails.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:google_fonts/google_fonts.dart'; class OrderDetails extends StatefulWidget { @@ -42,7 +43,7 @@ class _OrderDetailsState extends State { padding: const EdgeInsets.all(10), child: Text( "Order Number : " + "111", - style: TextStyle(color: Colors.deepOrange, fontSize: 22), + style: GoogleFonts.inter(color: Colors.deepOrange, fontSize: 22), ), ), Padding( @@ -60,7 +61,7 @@ class _OrderDetailsState extends State { padding: const EdgeInsets.all(10), child: Text( "Name : " + "Aswin Kumar Raju", - style: TextStyle(color: Colors.black, fontSize: 15), + style: GoogleFonts.inter(color: Colors.black, fontSize: 15), ), ), ], @@ -72,7 +73,7 @@ class _OrderDetailsState extends State { padding: const EdgeInsets.all(10), child: Text( "Personal No. : " + "999999", - style: TextStyle(color: Colors.black, fontSize: 15), + style: GoogleFonts.inter(color: Colors.black, fontSize: 15), ), ), ], diff --git a/lib/pages/previousBooking.dart b/lib/pages/previousBooking.dart index 3760c2e..16dd044 100644 --- a/lib/pages/previousBooking.dart +++ b/lib/pages/previousBooking.dart @@ -2,6 +2,7 @@ import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/models/user.dart'; @@ -61,6 +62,10 @@ class _PreviousBookingState extends State { ); } else if (documentlength == 0) { return Scaffold( + appBar: AppBar( + title: Text('Your Booking', + style: GoogleFonts.inter(color: Colors.white)), + backgroundColor: Colors.deepOrange), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, @@ -104,7 +109,7 @@ class _PreviousBookingState extends State { children: [ Text( "#$orderNo", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.deepOrange, fontSize: 22), ), Flexible( @@ -121,7 +126,7 @@ class _PreviousBookingState extends State { children: [ Text( "Name : " + "${bookings[index]["name"]}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -136,7 +141,7 @@ class _PreviousBookingState extends State { Text( "Personal No. : " + "${bookings[index]["number"]}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -151,7 +156,7 @@ class _PreviousBookingState extends State { Text( "Lounge : " + "${bookings[index]["lounge"]}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -165,12 +170,11 @@ class _PreviousBookingState extends State { children: [ Text( 'Slot: ${bookings[index]["slot"]}', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), ), - ], ), ]), diff --git a/lib/pages/previousOrder.dart b/lib/pages/previousOrder.dart index 8b8234a..b3eed43 100644 --- a/lib/pages/previousOrder.dart +++ b/lib/pages/previousOrder.dart @@ -2,6 +2,7 @@ import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:provider/provider.dart'; import 'package:rcapp/models/user.dart'; @@ -15,6 +16,7 @@ class _PreviousOrderState extends State { List item = []; List quantity = []; List total = []; + var _result = 1; void initialData() async { var uid = (await FirebaseAuth.instance.currentUser()).uid; @@ -23,6 +25,9 @@ class _PreviousOrderState extends State { .collection('confirmedOrders') .where('id', isEqualTo: uid) .getDocuments(); + setState(() { + _result = result.documents.length; + }); result.documents.forEach((res) { setState(() { orders.add(res.data); @@ -43,7 +48,10 @@ class _PreviousOrderState extends State { @override Widget build(BuildContext context) { int orderNo = 110; - if (orders.length == 0 && item.length == 0 && quantity.length == 0) { + if (orders.length == 0 && + item.length == 0 && + quantity.length == 0 && + _result == 1) { return Scaffold( body: Center( child: Column( @@ -53,6 +61,21 @@ class _PreviousOrderState extends State { Text('Loading data') ])), ); + } + if (_result == 0) { + return Scaffold( + appBar: AppBar( + title: Text('Previous Orders'), backgroundColor: Colors.deepOrange), + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.add_shopping_cart, size: 40, color: Colors.deepOrange), + Text('No Previous Order Pending', + style: GoogleFonts.inter( + color: Colors.black, fontWeight: FontWeight.bold)) + ])), + ); } else { return Scaffold( appBar: AppBar( @@ -87,7 +110,7 @@ class _PreviousOrderState extends State { children: [ Text( "#$orderNo", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.deepOrange, fontSize: 22), ), Flexible(child: Text('${orders[index]["date"]}')), @@ -103,7 +126,7 @@ class _PreviousOrderState extends State { children: [ Text( "Name : " + "${orders[index]["name"]}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -118,7 +141,7 @@ class _PreviousOrderState extends State { children: [ Text( "Cost : ₹" + "${orders[index]["total"]} ", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 22), ), InkWell( @@ -143,7 +166,7 @@ class _PreviousOrderState extends State { }, child: Container( child: Text('Know More', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.deepOrange, decoration: TextDecoration.underline)), @@ -255,7 +278,7 @@ class _PreviousOrderDetailsState extends State { children: [ Text( "#${widget.orderNo}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.deepOrange, fontSize: 22), ), Flexible(child: Text('${widget.date}')), @@ -270,7 +293,7 @@ class _PreviousOrderDetailsState extends State { children: [ Text( "${widget.name}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 22, fontWeight: FontWeight.w500), @@ -283,7 +306,7 @@ class _PreviousOrderDetailsState extends State { children: [ Text( "Personal No. :", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.grey, fontSize: 18, fontWeight: FontWeight.w500), @@ -293,7 +316,7 @@ class _PreviousOrderDetailsState extends State { padding: EdgeInsets.fromLTRB(10, 0, 0, 0), child: Text( "${widget.number}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -311,7 +334,7 @@ class _PreviousOrderDetailsState extends State { children: [ Text( "Delivered To : ", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.grey, fontSize: 18, fontWeight: FontWeight.w500), @@ -323,7 +346,7 @@ class _PreviousOrderDetailsState extends State { EdgeInsets.fromLTRB(10, 0, 0, 0), child: Text( "${widget.address}", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 18, fontWeight: FontWeight.w400), @@ -340,7 +363,7 @@ class _PreviousOrderDetailsState extends State { alignment: Alignment.centerLeft, child: Text( 'Menu :', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.grey, fontSize: 18, fontWeight: FontWeight.w500), @@ -351,12 +374,12 @@ class _PreviousOrderDetailsState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text('Item Name', - style: TextStyle( + style: GoogleFonts.inter( fontSize: 20, fontWeight: FontWeight.w400, decoration: TextDecoration.underline)), Text('Quantity', - style: TextStyle( + style: GoogleFonts.inter( fontSize: 20, fontWeight: FontWeight.w400, decoration: TextDecoration.underline)) @@ -372,7 +395,7 @@ class _PreviousOrderDetailsState extends State { children: [ Text( "Cost : ₹" + "${widget.total} ", - style: TextStyle( + style: GoogleFonts.inter( color: Colors.black, fontSize: 22), ), InkWell( @@ -385,7 +408,7 @@ class _PreviousOrderDetailsState extends State { }, child: Container( child: Text('Know More', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.deepOrange, decoration: TextDecoration.underline)), diff --git a/lib/pages/uploadAvatar.dart b/lib/pages/uploadAvatar.dart index 68d3fac..e091180 100644 --- a/lib/pages/uploadAvatar.dart +++ b/lib/pages/uploadAvatar.dart @@ -3,6 +3,7 @@ import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_storage/firebase_storage.dart'; import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:image_picker/image_picker.dart'; import 'package:path/path.dart'; import 'package:rcapp/services/database.dart'; @@ -88,17 +89,37 @@ class _ImageCaptureState extends State { mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ if (showOptions == true) ...[ - IconButton( - iconSize: 40, - color: Colors.deepOrange, - icon: Icon(Icons.photo_library), - onPressed: () => _pickImage(ImageSource.gallery), + Container( + height: 90, + child: Column(children: [ + IconButton( + iconSize: 40, + color: Colors.deepOrange, + icon: Icon(Icons.photo_library), + onPressed: () => _pickImage(ImageSource.gallery), + ), + Text( + 'File Explorer', + style: GoogleFonts.inter( + color: Colors.black, fontWeight: FontWeight.bold), + ) + ]), ), - IconButton( - iconSize: 40, - color: Colors.deepOrange, - icon: Icon(Icons.camera), - onPressed: () => _pickImage(ImageSource.camera), + Container( + height: 90, + child: Column(children: [ + IconButton( + iconSize: 40, + color: Colors.deepOrange, + icon: Icon(Icons.camera), + onPressed: () => _pickImage(ImageSource.camera), + ), + Text( + 'Camera', + style: GoogleFonts.inter( + color: Colors.black, fontWeight: FontWeight.bold), + ) + ]), ) ] ], @@ -129,7 +150,7 @@ class _ImageCaptureState extends State { ), SizedBox(height: 5), Text(exists ? 'Update Profile Pic' : 'Add Profile Pic', - style: TextStyle( + style: GoogleFonts.inter( fontWeight: FontWeight.w500, fontSize: 20)) ], ), @@ -223,7 +244,7 @@ class _UploaderState extends State { icon: Icon(Icons.cloud_upload), label: Text( 'Save Data To List', - style: TextStyle(fontSize: 17), + style: GoogleFonts.inter(fontSize: 17), ), shape: new RoundedRectangleBorder( borderRadius: new BorderRadius.circular(10.0)), diff --git a/lib/pages/uploadImage.dart b/lib/pages/uploadImage.dart index c4d43d9..6c94830 100644 --- a/lib/pages/uploadImage.dart +++ b/lib/pages/uploadImage.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:firebase_storage/firebase_storage.dart'; import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:image_picker/image_picker.dart'; import 'package:path/path.dart'; import 'package:rcapp/services/database.dart'; @@ -60,17 +61,35 @@ class _ImageCaptureState extends State { mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ if (showOptions == true) ...[ - IconButton( - iconSize: 40, - color: Colors.deepOrange, - icon: Icon(Icons.photo_library), - onPressed: () => _pickImage(ImageSource.gallery), + Container( + height: 90, + child: Column(children: [ + IconButton( + iconSize: 40, + color: Colors.deepOrange, + icon: Icon(Icons.photo_library), + onPressed: () => _pickImage(ImageSource.gallery), + ), + Text( + 'File Explorer', + style: GoogleFonts.inter( + color: Colors.black, fontWeight: FontWeight.bold), + ) + ]), ), - IconButton( - iconSize: 40, - color: Colors.deepOrange, - icon: Icon(Icons.camera), - onPressed: () => _pickImage(ImageSource.camera), + Container( + height: 90, + child: Column(children: [ + IconButton( + iconSize: 40, + color: Colors.deepOrange, + icon: Icon(Icons.camera), + onPressed: () => _pickImage(ImageSource.camera), + ), + Text('Camera', + style: GoogleFonts.inter( + color: Colors.black, fontWeight: FontWeight.bold)) + ]), ) ] ], @@ -101,7 +120,7 @@ class _ImageCaptureState extends State { ), SizedBox(height: 5), Text('ADD AN IMAGE', - style: TextStyle( + style: GoogleFonts.inter( fontWeight: FontWeight.w500, fontSize: 20)) ], ), @@ -268,7 +287,7 @@ class _UploaderState extends State { icon: Icon(Icons.cloud_upload), label: Text( 'Save Data To List', - style: TextStyle(fontSize: 17), + style: GoogleFonts.inter(fontSize: 17), ), shape: new RoundedRectangleBorder( borderRadius: new BorderRadius.circular(10.0)), diff --git a/lib/pages/uploadPdf.dart b/lib/pages/uploadPdf.dart index d5b734b..82c6bae 100644 --- a/lib/pages/uploadPdf.dart +++ b/lib/pages/uploadPdf.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:file_picker/file_picker.dart'; import 'package:firebase_storage/firebase_storage.dart'; import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:image_picker/image_picker.dart'; import 'package:path/path.dart'; import 'package:rcapp/services/database.dart'; @@ -32,7 +33,8 @@ class _PdfCaptureState extends State { String subtitle = ''; void _pickPdf() async { - File pickedPdfFile = await FilePicker.getFile(type: FileType.custom, allowedExtensions: ['pdf']); + File pickedPdfFile = await FilePicker.getFile( + type: FileType.custom, allowedExtensions: ['pdf']); setState(() { _pickedPdf = pickedPdfFile; }); @@ -60,11 +62,19 @@ class _PdfCaptureState extends State { mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ if (showOptions == true) ...[ - IconButton( - iconSize: 40, - color: Colors.deepOrange, - icon: Icon(Icons.photo_library), - onPressed: () => _pickPdf(), + Container( + height: 90, + child: Column(children: [ + IconButton( + iconSize: 40, + color: Colors.deepOrange, + icon: Icon(Icons.photo_library), + onPressed: () => _pickPdf(), + ), + Text('File Explorer', + style: GoogleFonts.inter( + color: Colors.black, fontWeight: FontWeight.bold)) + ]), ), ] ], @@ -95,7 +105,7 @@ class _PdfCaptureState extends State { ), SizedBox(height: 5), Text('Click to Add Pdf', - style: TextStyle( + style: GoogleFonts.inter( fontWeight: FontWeight.w500, fontSize: 20)) ], ), @@ -207,7 +217,6 @@ class Uploader extends StatefulWidget { } class _UploaderState extends State { - var _uploadTask; final DatabaseService _pdfUploader = DatabaseService(); @@ -259,7 +268,7 @@ class _UploaderState extends State { icon: Icon(Icons.cloud_upload), label: Text( 'Save Data To List', - style: TextStyle(fontSize: 17), + style: GoogleFonts.inter(fontSize: 17), ), shape: new RoundedRectangleBorder( borderRadius: new BorderRadius.circular(10.0)), diff --git a/lib/pages/welcome.dart b/lib/pages/welcome.dart index 1229bf5..aac9167 100644 --- a/lib/pages/welcome.dart +++ b/lib/pages/welcome.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; class welcome extends StatefulWidget { @override @@ -19,7 +20,7 @@ class _welcomeState extends State { Center( child: Text( 'ROURKELA CLUB', - style: TextStyle( + style: GoogleFonts.inter( color: Colors.white, fontSize: 40.0, ), diff --git a/lib/services/auth.dart b/lib/services/auth.dart index 3c22dfa..9ed8d9d 100644 --- a/lib/services/auth.dart +++ b/lib/services/auth.dart @@ -55,8 +55,7 @@ class AuthService { } //register with email and pass - Future registerWithEmailAndPassword(String name, bool isAuth, String number, - String email, String password) async { + Future registerWithEmailAndPassword(String name, bool isAuth, String number, String password) async { try { String numemail = number + "@gmail.com"; AuthResult result = await _auth.createUserWithEmailAndPassword( From b31b18df9bf2db7ac684da54888979c7e6da40bb Mon Sep 17 00:00:00 2001 From: "naiyar.2000" Date: Fri, 18 Sep 2020 17:45:05 +0530 Subject: [PATCH 29/29] abe gaand maar raha h google fponts --- lib/CustomWidget/food_card.dart | 4 ++-- lib/CustomWidget/foot_category.dart | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/CustomWidget/food_card.dart b/lib/CustomWidget/food_card.dart index cdcf929..e75b1c2 100644 --- a/lib/CustomWidget/food_card.dart +++ b/lib/CustomWidget/food_card.dart @@ -61,7 +61,7 @@ class FoodCard extends StatelessWidget { }) ], child: Container( - width: 160, + width: 168, margin: EdgeInsets.only(right: 10.0), decoration: BoxDecoration( image: DecorationImage( @@ -102,7 +102,7 @@ class FoodCard extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( - width: 60, + width: 66, child: Text( categoryName, style: GoogleFonts.inter( diff --git a/lib/CustomWidget/foot_category.dart b/lib/CustomWidget/foot_category.dart index 65b09a3..3d5073d 100644 --- a/lib/CustomWidget/foot_category.dart +++ b/lib/CustomWidget/foot_category.dart @@ -46,7 +46,7 @@ class FoodCategory extends StatelessWidget { ); } else { return Container( - height: 100.0, + height: 105.0, child: ListView.builder( scrollDirection: Axis.horizontal, itemCount: _menuList.length,