adding sellers

This commit is contained in:
Ashish Bailkeri
2023-02-26 13:25:13 -05:00
parent f464f24399
commit 70e2583103
3 changed files with 72 additions and 15 deletions

View File

@@ -11,11 +11,7 @@ Future<void> addUser(String? name, String uid) async {
final CollectionReference users =
FirebaseFirestore.instance.collection('users');
return await users
.add({
'name': name,
'uid': uid,
'swipes': 0,
})
.add({'name': name, 'uid': uid, 'swipes': 0, 'seller-id': ""})
.then((value) => print(""))
.catchError((error) => print("ERROR ADDING DATA: $error"));
}
@@ -76,7 +72,7 @@ class AuthGate extends StatelessWidget {
final name = user.displayName;
final uid = user.uid;
addUser(name, uid);
addUser("TOAA", uid);
}
}

View File

@@ -21,7 +21,7 @@ class Seller implements Comparable<Seller> {
String uid = "";
List<dynamic> location;
TimeRange availableTime;
int price;
double price;
Seller(this.name, this.uid, this.location, this.availableTime, this.price);
@@ -56,6 +56,22 @@ List<Seller> fetchNSellers(int n) {
return sellers;
}
void addSeller(Seller seller) async {
final CollectionReference sellers =
FirebaseFirestore.instance.collection('sellers');
return await sellers
.add({
'name': seller.name,
'uid': seller.uid,
'price': seller.price,
'start-time': seller.availableTime.startTime,
'end-time': seller.availableTime.endTime,
'location': seller.location,
})
.then((value) => print(""))
.catchError((error) => print("ERROR ADDING DATA: $error"));
}
Future<List<Seller>> getSellers(Filter filter) async {
CollectionReference users = FirebaseFirestore.instance.collection('sellers');
List<Seller> sellers = List.empty(growable: true);

View File

@@ -1,8 +1,12 @@
// ignore_for_file: prefer_const_constructors
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:currency_text_input_formatter/currency_text_input_formatter.dart';
import 'package:ruswipeshare/auth_gate.dart';
import 'package:ruswipeshare/meetings.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class SellScreen extends StatefulWidget {
const SellScreen({Key? key}) : super(key: key);
@@ -30,6 +34,8 @@ class _SellScreenState extends State<SellScreen> {
String endTime = 'End Time';
DateTime endTimeTime = DateTime.now();
bool? is24HoursFormat;
double price = 0;
final priceController = TextEditingController();
@override
Widget build(BuildContext context) {
bool is24HoursFormat = MediaQuery.of(context).alwaysUse24HourFormat;
@@ -98,10 +104,19 @@ class _SellScreenState extends State<SellScreen> {
context: context,
initialTime: TimeOfDay.fromDateTime(startTimeTime),
);
if (picked != null && picked != TimeOfDay.fromDateTime(startTimeTime)) {
if (picked != null &&
picked != TimeOfDay.fromDateTime(startTimeTime)) {
setState(() {
startTimeTime = DateTime.fromMicrosecondsSinceEpoch(picked.hour * 60 * 60 * 1000000 + picked.minute * 60 * 1000000, isUtc: true);
startTime = startTimeTime.hour.toString() + ":" + startTimeTime.minute.toString() + ((is24HoursFormat) ? "" : ((startTimeTime.hour > 12) ? "PM" : "AM"));
startTimeTime = DateTime.fromMicrosecondsSinceEpoch(
picked.hour * 60 * 60 * 1000000 +
picked.minute * 60 * 1000000,
isUtc: true);
startTime = startTimeTime.hour.toString() +
":" +
startTimeTime.minute.toString() +
((is24HoursFormat)
? ""
: ((startTimeTime.hour > 12) ? "PM" : "AM"));
});
}
},
@@ -113,10 +128,19 @@ class _SellScreenState extends State<SellScreen> {
context: context,
initialTime: TimeOfDay.fromDateTime(endTimeTime),
);
if (picked != null && picked != TimeOfDay.fromDateTime(endTimeTime)) {
if (picked != null &&
picked != TimeOfDay.fromDateTime(endTimeTime)) {
setState(() {
endTimeTime = DateTime.fromMicrosecondsSinceEpoch(picked.hour * 60 * 60 * 1000000 + picked.minute * 60 * 1000000, isUtc: true);
endTime = endTimeTime.hour.toString() + ":" + endTimeTime.minute.toString() + ((is24HoursFormat) ? "" : ((endTimeTime.hour > 12) ? "PM" : "AM"));
endTimeTime = DateTime.fromMicrosecondsSinceEpoch(
picked.hour * 60 * 60 * 1000000 +
picked.minute * 60 * 1000000,
isUtc: true);
endTime = endTimeTime.hour.toString() +
":" +
endTimeTime.minute.toString() +
((is24HoursFormat)
? ""
: ((endTimeTime.hour > 12) ? "PM" : "AM"));
});
}
},
@@ -137,6 +161,7 @@ class _SellScreenState extends State<SellScreen> {
keyboardType: TextInputType.number,
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white, fontSize: 30),
controller: priceController,
decoration: InputDecoration(
border: OutlineInputBorder(),
hintText: 'Price',
@@ -145,9 +170,29 @@ class _SellScreenState extends State<SellScreen> {
),
),
ElevatedButton(
onPressed: () {},
onPressed: () {
List<String> locations = [];
User? user = auth.currentUser;
values.forEach((key, value) {
if (value == true) locations.add(key);
});
if (user != null) {
Seller seller = Seller(
"",
user.uid,
locations,
TimeRange(Timestamp.fromDate(startTimeTime),
Timestamp.fromDate(endTimeTime)),
double.parse(priceController.text));
print("SIFSIFISFHJIS");
print(seller);
addSeller(seller);
}
},
style: ButtonStyle(
backgroundColor: MaterialStateColor.resolveWith((states) => Colors.blue),
backgroundColor:
MaterialStateColor.resolveWith((states) => Colors.blue),
),
child: const Text('Submit Sell Request'),
),