Asset-Borrowing-App / lib / Project / Admin / Borrowed.dart
Borrowed.dart
Raw
// ignore_for_file: prefer_const_literals_to_create_immutables
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutter_application_1/Project/Admin/HomeAdmin.dart';
import 'package:flutter_application_1/Project/Admin/inforuserB.dart';

const Color aColor = Color.fromARGB(219, 58, 168, 50);
const Color cColor = Color.fromARGB(246, 255, 255, 246);
const Color bColor = Color.fromARGB(153, 28, 240, 187);

class BorrowAdmin extends StatelessWidget {
  final FirebaseAuth _auth = FirebaseAuth.instance;
  BorrowAdmin({super.key});
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          leadingWidth: 80,
          automaticallyImplyLeading: false,
          backgroundColor: bColor,
          title: Row(
            children: [
              Row(
                children: [
                  IconButton(
                      onPressed: () {
                        Navigator.push(context,
                            MaterialPageRoute(builder: ((context) => const HomeAdmin())));
                      },
                      icon: const Icon(Icons.arrow_back)),
                  const Text('Borrwed Approval page'),
                ],
              ),
            ],
          ),
        ),
        body: Container(
          constraints: const BoxConstraints.expand(),
          decoration: const BoxDecoration(
            image: DecorationImage(
                image: NetworkImage(
                    "https://i.pinimg.com/originals/77/7b/07/777b07a784b619eb9840734261133cbd.jpg"),
                fit: BoxFit.cover),
          ),
          child: Padding(
            padding: const EdgeInsets.only(top: 16.0, left: 16, right: 16),
            child: StreamBuilder(
              stream:
                  FirebaseFirestore.instance.collection("request").snapshots(),
              builder: (context, snapshot) {
                if (snapshot.hasData) {
                  return ListView.builder(
                    scrollDirection: Axis.vertical,
                    itemCount: snapshot.data!.docs.length,
                    itemBuilder: (context, index) {
                      if (snapshot.data!.docs[index]["Status"] == 'Check') {
                          return Padding(
                            padding: const EdgeInsets.all(16.0),
                            child: Container(
                              decoration: BoxDecoration(
                                color: cColor,
                                border: Border.all(color: aColor, width: 1),
                                borderRadius: BorderRadius.circular(12),
                              ),
                              child: ListTile(
                                leading: IconButton(
                                    onPressed: () {
                                      editData(snapshot.data!.docs[index].id);
                                      Navigator.push(
                                          context,
                                          MaterialPageRoute(
                                              builder: ((context) => inB(
                                                    ema: snapshot
                                                        .data!
                                                        .docs[index]
                                                            ["EmailUserreq"]
                                                        .toString(),
                                                    an: snapshot.data!
                                                        .docs[index]["Name"]
                                                        .toString(),
                                                    bd: snapshot
                                                        .data!
                                                        .docs[index]
                                                            ["BorrowingDay"]
                                                        .toString(),
                                                    rd: snapshot
                                                        .data!
                                                        .docs[index]
                                                            ["ReturnDay"]
                                                        .toString(),
                                                  ))));
                                      // }
                                    },
                                    icon: const Icon(Icons.check)),
                                // title: Text(snapshot.data!.docs[index]["Asset_Description"],style: TextStyle(fontSize: 13),),
                                subtitle: Text(
                                  snapshot.data!.docs[index]["Name"] +
                                      '\n' +
                                      'BorrowingDay: ' +
                                      snapshot.data!.docs[index]
                                          ['BorrowingDay'] +
                                      '\n' +
                                      'ReturnDay: ' +
                                      snapshot.data!.docs[index]['ReturnDay'] +
                                      '\n' +
                                      'EmailRequest: ' +
                                      snapshot.data!.docs[index]
                                          ['EmailUserreq'] +
                                      '\n' +
                                      'DateTime: ' +
                                      snapshot.data!.docs[index]['Timerequest'],
                                  style: const TextStyle(fontSize: 10),
                                ),
                                trailing: IconButton(
                                    onPressed: () {
                                      editData2(snapshot.data!.docs[index].id);
                                    },
                                    icon: const Icon(Icons.close)),
                              ),
                            ),
                          );
                        }
                        return Column();
                      
                    },
                  );
                } else if (snapshot.hasError) {
                  return Text('Error: ${snapshot.error}');
                } else {
                  return const CircularProgressIndicator();
                }
              },
            ),
          ),
        ));
  }

  Future<void> editData(String docId) async {
    var data = {'Status': 'Accept'};
    FirebaseFirestore.instance
        .collection('request')
        .doc(docId)
        .update(data)
        .then(
          (value) => print('Updating done!'),
          onError: (e) => print('Error $e'),
        );
  }

  Future<void> editData2(String docId) async {
    var data = {'Status': 'Decine'};
    FirebaseFirestore.instance
        .collection('request')
        .doc(docId)
        .update(data)
        .then(
          (value) => print('Updating done!'),
          onError: (e) => print('Error $e'),
        );
  }

  Future<void> deleteData(String docId) async {
    FirebaseFirestore.instance.collection('request').doc(docId).delete().then(
          (value) => print('Updating done!'),
          onError: (e) => print('Error $e'),
        );
  }
}