Skip to content

Commit a2d2f08

Browse files
author
Satyam Shrivastav
committed
Slot Selection Added
1 parent 9c68dcb commit a2d2f08

File tree

8 files changed

+635
-256
lines changed

8 files changed

+635
-256
lines changed

lib/firebasemethod/firebaseauth.dart

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import 'package:firebase_auth/firebase_auth.dart';
33
import 'package:flutter/cupertino.dart';
44
import 'package:flutter/material.dart';
55
import 'package:parking_system/pages/homepage.dart';
6-
import 'package:parking_system/utils/scaffmessage.dart';
76

87
class FirebaseAuthMethod {
98
final FirebaseAuth _auth;
@@ -26,6 +25,7 @@ class FirebaseAuthMethod {
2625
// 'uid': userName,
2726
'email': email,
2827
'password': password,
28+
'parkedslots': List<dynamic>
2929
});
3030
// !this one can be used to make more clear to user that he/she has to login now
3131
// scaffoldMessage(context, "You can Login now");
@@ -83,4 +83,13 @@ class FirebaseAuthMethod {
8383
Future<void> signOut() async {
8484
await _auth.signOut();
8585
}
86+
87+
Future<void> addParkedSlot(List<dynamic> slot) async {
88+
try {
89+
await _firestore
90+
.collection('users')
91+
.doc(_auth.currentUser!.uid)
92+
.update({'parkedslots': slot});
93+
} catch (e) {}
94+
}
8695
}

lib/firebasemethod/parking.dart

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ class ParkingStorage {
1212

1313
ParkingStorage(this.auth, this.context, this.username);
1414

15-
Future<void> parkCar({
16-
required String vehicleNumber,
17-
required String vehicleType,
18-
required String code,
19-
required String time,
20-
required String ownerName,
21-
required String ownerMail,
22-
required String currentTime,
23-
}) async {
15+
Future<void> parkCar(
16+
{required String vehicleNumber,
17+
required String vehicleType,
18+
required String code,
19+
required String time,
20+
required String ownerName,
21+
required String ownerMail,
22+
required String currentTime,
23+
required String parkedslot}) async {
2424
try {
2525
final id = await _store
2626
.collection('parking')
@@ -32,8 +32,9 @@ class ParkingStorage {
3232
'code': code,
3333
'ownerName': ownerName,
3434
'time': time,
35-
'ownerMail':ownerMail,
36-
'dateTime':currentTime,
35+
'ownerMail': ownerMail,
36+
'dateTime': currentTime,
37+
'parkedslot': parkedslot
3738
});
3839

3940
await _store
@@ -47,9 +48,10 @@ class ParkingStorage {
4748
'code': code,
4849
'ownerName': ownerName,
4950
'time': time,
50-
'dateTime':currentTime,
51-
'ownerMail':ownerMail,
51+
'dateTime': currentTime,
52+
'ownerMail': ownerMail,
5253
"uid": id.id,
54+
'parkedslot': parkedslot
5355
});
5456
} catch (e) {
5557
// ignore: use_build_context_synchronously
@@ -72,7 +74,7 @@ Future<void> unparkVehicle(String docId) async {
7274
.collection('users')
7375
.doc(auth.currentUser!.uid)
7476
.get();
75-
final String username = (snap.data() as Map<String, dynamic>)['username'];
77+
final String username = (snap.data() as Map<String, dynamic>)['username'];
7678
await _store
7779
.collection('parking')
7880
.doc('**$username**')

lib/pages/homepage.dart

Lines changed: 236 additions & 224 deletions
Large diffs are not rendered by default.

lib/pages/slot_booking.dart

Lines changed: 340 additions & 0 deletions
Large diffs are not rendered by default.

lib/sendmail.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ Future<bool> sendMail(Email email) async {
55
await FlutterEmailSender.send(email);
66
return true;
77
} catch (e) {
8-
print(e);
98
return false;
109
}
1110
}

lib/widgets/dialogunpark.dart

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
1+
import 'package:firebase_auth/firebase_auth.dart';
12
import 'package:flutter/material.dart';
23
import 'package:parking_system/backend/timediff.dart';
4+
import 'package:parking_system/firebasemethod/firebaseauth.dart';
35
import 'package:parking_system/firebasemethod/parking.dart';
6+
import 'package:parking_system/pages/homepage.dart';
47
import 'package:parking_system/utils/colours.dart';
58
import 'package:parking_system/utils/farestyle.dart';
69
import 'package:parking_system/utils/scaffmessage.dart';
710

811
showUnparkDialog(
9-
BuildContext context,
10-
Size size,
11-
String time,
12-
String code,
13-
String vehicle,
14-
String docId,
15-
String vehicleNumber,
16-
String ownerName,
17-
) {
12+
BuildContext context,
13+
Size size,
14+
String time,
15+
String code,
16+
String vehicle,
17+
String docId,
18+
String vehicleNumber,
19+
String ownerName,
20+
dynamic parkedslot) {
1821
TextEditingController getCode = TextEditingController();
1922
return showDialog(
2023
context: context,
@@ -163,10 +166,13 @@ showUnparkDialog(
163166
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
164167
children: [
165168
ElevatedButton(
166-
onPressed: () {
169+
onPressed: () async {
167170
if (getCode.text.trim().isNotEmpty &&
168171
getCode.text.trim() == code) {
169-
unparkVehicle(docId);
172+
parkedSlots.remove(parkedslot);
173+
await FirebaseAuthMethod(FirebaseAuth.instance)
174+
.addParkedSlot(parkedSlots);
175+
await unparkVehicle(docId);
170176
scaffoldMessage(
171177
context, "Vehicle Unparked Successfully");
172178
Navigator.of(context).pop();

lib/widgets/parkedcar.dart

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ class ParkedCar extends StatelessWidget {
99
final String ownerName;
1010
final String time;
1111
final String otp;
12+
final dynamic slot;
1213
const ParkedCar(
1314
{super.key,
1415
required this.size,
@@ -17,7 +18,7 @@ class ParkedCar extends StatelessWidget {
1718
required this.time,
1819
required this.type,
1920
required this.vehNumber,
20-
required this.otp});
21+
required this.otp, this.slot});
2122

2223
@override
2324
Widget build(BuildContext context) {
@@ -42,7 +43,6 @@ class ParkedCar extends StatelessWidget {
4243
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
4344
crossAxisAlignment: CrossAxisAlignment.center,
4445
children: [
45-
4646
Text(
4747
type,
4848
style: TextStyle(
@@ -69,10 +69,20 @@ class ParkedCar extends StatelessWidget {
6969
color: Colors.black,
7070
fontWeight: FontWeight.w500,
7171
),
72+
),SizedBox(
73+
width: size.width * 0.03,
74+
),
75+
Text(
76+
slot.toString(),
77+
style: TextStyle(
78+
color: Colors.black,
79+
fontWeight: FontWeight.w500,
80+
),
7281
),
7382
SizedBox(
7483
width: size.width * 0.03,
75-
),Text(
84+
),
85+
Text(
7686
otp,
7787
style: TextStyle(
7888
color: Colors.black,

lib/widgets/parkingwidget.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Widget vehicleTile(
5454
// unparkVehicle(data['uid']);
5555

5656
showUnparkDialog(
57-
context, size, data['dateTime'], data['code'], data["vehicleType"],data['uid'],data["vehicle"],data["ownerName"]);
57+
context, size, data['dateTime'], data['code'], data["vehicleType"],data['uid'],data["vehicle"],data["ownerName"],data['parkedslot']);
5858
},
5959
child: ParkedCar(
6060
size: size,
@@ -63,6 +63,7 @@ Widget vehicleTile(
6363
time: data['time'],
6464
type: data["vehicleType"],
6565
vehNumber: data['vehicle'],
66-
otp: data['code']),
66+
otp: data['code'],
67+
slot:data['parkedslot']),
6768
);
6869
}

0 commit comments

Comments
 (0)