Untitled

 avatar
unknown
dart
6 months ago
7.2 kB
1
Indexable
import 'package:adr/app/modules/history/controllers/edit_history_controller.dart';
import 'package:adr/app/routes/app_routes.dart';
import 'package:adr/app/utils/app_colors.dart';
import 'package:adr/app/utils/app_string.dart';
import 'package:adr/app/utils/dimention.dart';
import 'package:adr/app/utils/widgets/back_arrow.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:intl/intl.dart';

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

  @override
  State<EditHistoryRooms> createState() => _EditHistoryRoomsState();
}

class _EditHistoryRoomsState extends State<EditHistoryRooms> {
  EditHistoryController editHistoryController = Get.find();

  @override
  void initState() {
    editHistoryController.jobHistoryModel.value =
        Get.arguments['jobHistoryModel'];

    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      appBar: AppBar(
        backgroundColor: Colors.white,
        titleSpacing: 4,
        leading: BackArrowButton(),
        title: const Text(
          "Room List",
          style: TextStyle(
            color: Colors.black,
            fontWeight: FontWeight.bold,
            fontSize: 18,
            fontFamily: AppString.fontFamilyName,
          ),
        ),
      ),
      body: SafeArea(
        child: Padding(
          padding: const EdgeInsets.all(10.0),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              customText(
                'Project Name ',
                editHistoryController.jobHistoryModel.value.projectName ?? "",
              ),
              const SizedBox(height: 10),
              customText(
                  'Project Number ',
                  editHistoryController.jobHistoryModel.value.projectNumber ??
                      ""),
              const SizedBox(height: 10),
              Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  customText(
                    "Date",
                    convertDateFormat(editHistoryController.jobHistoryModel
                            .value.roomActions!.first.job?.date ??
                        "-"),
                  ),
                  customText(
                    "Time",
                    convertTimeToDate(
                      editHistoryController.jobHistoryModel.value.roomActions!
                              .first.job?.time ??
                          "",
                    ),
                  ),
                ],
              ),
              const SizedBox(height: 10),
              const Text(
                "Room list",
                style: TextStyle(
                  color: AppColors.textFiledhintColor,
                  fontWeight: FontWeight.w700,
                  fontSize: 16,
                  fontFamily: AppString.fontFamilyName,
                ),
              ),
              const SizedBox(height: 5),
              Column(
                children: () {
                  final uniqueRooms = <int>{};
                  final uniqueRoomActions = editHistoryController
                      .jobHistoryModel.value.roomActions!
                      .where((e) {
                    int roomName = e.room!.id!;
                    if (uniqueRooms.add(roomName)) {
                      return true;
                    }
                    return false;
                  }).toList();

                  return uniqueRoomActions.map(
                    (e) {
                      return GestureDetector(
                        onTap: () {
                          Get.toNamed(Routes.EditHistoryDetail,
                              arguments: {'select_room': e.room});
                        },
                        child: Card(
                          color: AppColors.cardBgColor,
                          margin: const EdgeInsets.only(bottom: 12),
                          elevation: 0.07,
                          shape: RoundedRectangleBorder(
                            borderRadius:
                                BorderRadius.circular(Dimension.cornerRadius),
                          ),
                          child: Padding(
                            padding: const EdgeInsets.all(10.0),
                            child: Column(
                              children: [
                                Row(
                                  mainAxisAlignment:
                                      MainAxisAlignment.spaceBetween,
                                  children: [
                                    Text(
                                      e.room?.name ?? "",
                                      style: const TextStyle(
                                        color: Colors.black,
                                        fontSize: 16,
                                        fontFamily: AppString.fontFamilyName,
                                      ),
                                    ),
                                    const Row(
                                      children: [
                                        SizedBox(width: 16),
                                        Icon(
                                          Icons.arrow_forward_ios,
                                          size: 16,
                                        )
                                      ],
                                    )
                                  ],
                                ),
                              ],
                            ),
                          ),
                        ),
                      );
                    },
                  ).toList();
                }(),
              )
            ],
          ),
        ),
      ),
    );
  }

  Widget customText(String text1, String text2) {
    return RichText(
      text: TextSpan(
        children: [
          TextSpan(
            text: '$text1 : ',
            style: const TextStyle(
              color: Colors.black,
              fontSize: 18,
              fontWeight: FontWeight.bold,
            ),
          ),
          TextSpan(
            text: text2,
            style: const TextStyle(
              color: AppColors.lightGrey10,
              fontSize: 18,
              fontWeight: FontWeight.w500,
            ),
          ),
        ],
      ),
    );
  }

  String convertDateFormat(String dateString) {
    DateTime dateTime = DateTime.parse(dateString);

    return DateFormat('MM-dd-yyyy').format(dateTime);
  }

  String convertTimeToDate(String time) {
    List<String> parts = time.split(':');
    int hour = int.parse(parts[0]);
    int minute = int.parse(parts[1]);
    int second = int.parse(parts[2]);

    DateTime dateTime = DateTime(1970, 1, 1, hour, minute, second);

    return DateFormat.jm().format(dateTime);
  }
}
Editor is loading...
Leave a Comment