import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/PaymentCollectionProvider.dart';
import 'package:generp/Utils/commonWidgets.dart';
import 'package:generp/screens/WebERPScreen.dart';
import 'package:provider/provider.dart';

import '../../Utils/app_colors.dart';
import 'AccountSuggestions.dart';

class Monthlycollection extends StatefulWidget {
  const Monthlycollection({super.key});

  @override
  State<Monthlycollection> createState() => _MonthlycollectionState();
}

class _MonthlycollectionState extends State<Monthlycollection> {
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) {
      var provider = Provider.of<Paymentcollectionprovider>(
        context,
        listen: false,
      );
      provider.PaymentCollectionAPI(context);
    });
  }

  @override
  Widget build(BuildContext context) {
    return Consumer<Paymentcollectionprovider>(
      builder: (context, provider, child) {
        var sendWidget = InkResponse(
          onTap: () async {
            var res = await Navigator.push(
              context,
              MaterialPageRoute(builder: (context) => Accountsuggestions()),
            );
            if(res==true){
              provider.PaymentCollectionAPI(context);
            }
          },
          child: SvgPicture.asset(
            "assets/svg/add_account.svg",
            width: 20,
            color: Color(0xFF2D2D2D),
            height: 20,
          ),
        );
        return WillPopScope(
          onWillPop: () => onBackPressed(context),
          child: SafeArea(
            top: false,
            bottom: Platform.isIOS?false:true,
            child: Scaffold(
              resizeToAvoidBottomInset: true,
              backgroundColor: AppColors.scaffold_bg_color,
              appBar: appbar2(context, "Payment Collection",provider.resetAll, sendWidget),
              body: provider.paymenCollectionList.isNotEmpty?Container(
                child: ListView.builder(
                  scrollDirection: Axis.vertical,
                  shrinkWrap: true,
                  physics: AlwaysScrollableScrollPhysics(),
                  itemCount: provider.paymenCollectionList.length,
                  padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),

                  itemBuilder: (context, index) {

                    return Container(
                      padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
                      margin: EdgeInsets.symmetric(vertical: 5),
                      decoration: BoxDecoration(
                        color: Colors.white,
                        borderRadius: BorderRadius.circular(20),
                      ),
                      child: Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          Row(
                            crossAxisAlignment: CrossAxisAlignment.center,
                            mainAxisAlignment: MainAxisAlignment.center,
                            children: [
                              Expanded(
                                flex: 1,
                                child: Container(
                                  padding: EdgeInsets.symmetric(
                                    horizontal: 10,
                                    vertical: 10,
                                  ),
                                  decoration: BoxDecoration(
                                    color: Color(0xFFE6F6FF),
                                    borderRadius: BorderRadius.circular(8),
                                  ),
                                  child: SvgPicture.asset(
                                    width: 30,
                                    height: 30,
                                    "assets/svg/se_block_head.svg",
                                  ),
                                ),
                              ),
                              SizedBox(width: 10),

                              Expanded(
                                flex: 4,
                                child: SizedBox(
                                  child: Column(
                                    crossAxisAlignment: CrossAxisAlignment.start,
                                    children: [
                                      Text(
                                        "${provider.paymenCollectionList[index].accountName}",
                                        maxLines: 2,
                                        overflow: TextOverflow.ellipsis,
                                        style: TextStyle(
                                            fontFamily: "JakartaMedium"
                                        ),
                                      ),
                                      Text(
                                        "₹${provider.paymenCollectionList[index].amount}",
                                        maxLines: 1,
                                        overflow: TextOverflow.ellipsis,
                                        style: TextStyle(color: AppColors.app_blue),
                                      ),
                                      // Text("Gen Pvt. Ltd"),
                                    ],
                                  ),
                                ),
                              ),
                              Container(
                                height: 35,
                                padding: EdgeInsets.symmetric(horizontal: 10),
                                decoration: BoxDecoration(
                                  color: Color(0xFFE3FFE0),
                                  borderRadius: BorderRadius.circular(8),
                                ),
                                child: Center(
                                  child: Text(
                                    "${provider.paymenCollectionList[index].approvalStatus}",
                                    style: TextStyle(
                                        fontSize: 13,
                                        color: Color(0xFF0D9C00)),
                                  ),
                                ),
                              ),
                              // Expanded(
                              //   flex: 1,
                              //   child: InkResponse(
                              //     onTap: () {
                              //       _showOptionsSheet(context);
                              //     },
                              //     child: Icon(Icons.more_vert),
                              //   ),
                              // ),
                            ],
                          ),
                          Padding(
                            padding: const EdgeInsets.all(8.0),
                            child: Divider(
                              thickness: 0.5,
                              color: Color(0xFFD7D7D7),
                            ),
                          ),
                          SizedBox(height: 5),
                          ...List.generate(2, (j) {
                            final textheads = ["ID", "Generator Type"];
                            final textSubheads = [
                              provider.paymenCollectionList[index].paymentRefNo,
                              provider.paymenCollectionList[index].paymentMode,
                            ];
                            return Container(
                              padding: EdgeInsets.symmetric(vertical: 3),
                              child: Column(
                                children: [
                                  Row(
                                    crossAxisAlignment: CrossAxisAlignment.start,
                                    children: [
                                      Expanded(
                                        flex: 1,
                                        child: Text(textheads[j].toString(),style: TextStyle(
                                            fontFamily: "JakartaMedium"
                                        ),),
                                      ),
                                      SizedBox(width: 5),
                                      Expanded(
                                        flex: 2,
                                        child: Text(
                                          textSubheads[j].toString(),
                                          style: TextStyle(
                                            color: Color(0xFF818181),
                                          ),
                                        ),
                                      ),
                                    ],
                                  ),
                                ],
                              ),
                            );
                          }),
                          SizedBox(height: 10),
                          InkResponse(
                            onTap: () {
                              Navigator.push(
                                context,
                                MaterialPageRoute(
                                  builder:
                                      (context) => WebErpScreen(
                                    erp_url:
                                    provider
                                        .paymenCollectionList[index]
                                        .paymentProofFilePath ??
                                        "",
                                  ),
                                ),
                              );
                            },
                            child: SizedBox(
                              child: Row(
                                mainAxisAlignment: MainAxisAlignment.start,
                                crossAxisAlignment: CrossAxisAlignment.center,
                                children: [
                                  Text(
                                    "View Attachment",
                                    style: TextStyle(color: AppColors.app_blue,fontFamily: "JakartaMedium"),
                                  ),
                                  SizedBox(width: 5),
                                  SvgPicture.asset("assets/svg/next_button.svg"),
                                ],
                              ),
                            ),
                          ),
                        ],
                      ),
                    );
                  },
                ),
              ):Emptywidget(context)
            ),
          ),
        );
      },
    );
  }
}
