|
|
|
|
@ -1,4 +1,3 @@
|
|
|
|
|
import 'dart:convert';
|
|
|
|
|
import 'dart:io';
|
|
|
|
|
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
@ -65,6 +64,8 @@ class _ServiceRequestDetailViewState extends State<ServiceRequestDetailView> {
|
|
|
|
|
workOrderDetailCard(context, requestProvider.currentWorkOrder!.data!, _userProvider, requestProvider),
|
|
|
|
|
initialVisitCard(requestDetailProvider: requestProvider, userProvider: _userProvider),
|
|
|
|
|
assetDetailCard(requestDetailProvider: requestProvider, userProvider: _userProvider),
|
|
|
|
|
12.height,
|
|
|
|
|
contactInfoCard(context, requestProvider.currentWorkOrder!.data!),
|
|
|
|
|
20.height,
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
@ -334,6 +335,55 @@ class _ServiceRequestDetailViewState extends State<ServiceRequestDetailView> {
|
|
|
|
|
).toShadowContainer(context, padding: 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Widget contactInfoCard(BuildContext context, WorkOrderData workOrder) {
|
|
|
|
|
return Column(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Text(
|
|
|
|
|
"Contact Info",
|
|
|
|
|
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
ListView.separated(
|
|
|
|
|
physics: const NeverScrollableScrollPhysics(),
|
|
|
|
|
shrinkWrap: true,
|
|
|
|
|
padding: EdgeInsets.zero,
|
|
|
|
|
itemBuilder: (cxt, index) => Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Text(
|
|
|
|
|
'${workOrder.workOrderContactPerson[index].name}',
|
|
|
|
|
style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
|
|
|
|
|
),
|
|
|
|
|
Text(
|
|
|
|
|
'${context.translation.employeeId}: ${workOrder.workOrderContactPerson[index].employeeId}',
|
|
|
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
|
|
|
|
|
),
|
|
|
|
|
Text(
|
|
|
|
|
'${context.translation.telephone}: ${workOrder.workOrderContactPerson[index].mobilePhone}',
|
|
|
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
|
|
|
|
|
),
|
|
|
|
|
Text(
|
|
|
|
|
'Job: ${workOrder.workOrderContactPerson[index].position}',
|
|
|
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
|
|
|
|
|
),
|
|
|
|
|
Text(
|
|
|
|
|
'${context.translation.email}: ${workOrder.workOrderContactPerson[index].email}',
|
|
|
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
|
|
|
|
|
),
|
|
|
|
|
Text(
|
|
|
|
|
'Extension: ${workOrder.workOrderContactPerson[index].extension}',
|
|
|
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
separatorBuilder: (cxt, index) => const Divider().defaultStyle(context),
|
|
|
|
|
itemCount: workOrder.workOrderContactPerson.length),
|
|
|
|
|
],
|
|
|
|
|
).toShadowContainer(context, padding: 16);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Widget assetRetiredButton({required BuildContext context}) {
|
|
|
|
|
return Padding(
|
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: 16.toScreenHeight, vertical: 12.toScreenWidth),
|
|
|
|
|
|