chat added gas refill, transfer asset internal & external, task request.

design_3.0_cx_module
Sikander Saleem 2 months ago
parent 0a9dd86ce0
commit 5ff9fc5808

@ -110,12 +110,13 @@ class FirebaseNotificationManger {
serviceClass = ServiceRequestDetailMain(requestId: int.parse(messageData["requestNumber"].toString())); serviceClass = ServiceRequestDetailMain(requestId: int.parse(messageData["requestNumber"].toString()));
break; break;
case "7": case "7":
serviceClass = DeviceTransferDetails(model: DeviceTransfer(id: int.parse(messageData["requestNumber"].toString()))); serviceClass = DeviceTransferDetails(model: DeviceTransfer(id: int.parse(messageData["requestNumber"].toString())), moduleId: 3);
break; break;
case "9": case "9":
serviceClass = GasRefillDetailsPage( serviceClass = GasRefillDetailsPage(
priority: messageData["priority"], priority: messageData["priority"],
date: messageData["createdOn"], date: messageData["createdOn"],
moduleId: 2,
model: GasRefillModel(id: int.parse(messageData["requestNumber"].toString())), model: GasRefillModel(id: int.parse(messageData["requestNumber"].toString())),
); );
break; break;

@ -38,6 +38,7 @@ class DeviceTransfer {
this.senderEngSignature, this.senderEngSignature,
this.senderAttachments, this.senderAttachments,
this.receiverAssignedEmployeeId, this.receiverAssignedEmployeeId,
this.receiverAssignedEmployeeNumber,
this.receiverMachineStatusId, this.receiverMachineStatusId,
this.senderMachineStatusValue, this.senderMachineStatusValue,
this.receiverComment, this.receiverComment,
@ -74,6 +75,7 @@ class DeviceTransfer {
this.receiverMachineStatusValue, this.receiverMachineStatusValue,
this.receiverMachineStatusName, this.receiverMachineStatusName,
this.senderAssignedEmployeeName, this.senderAssignedEmployeeName,
this.senderAssignedEmployeeNumber,
this.senderBuildingName, this.senderBuildingName,
this.senderDepartmentName, this.senderDepartmentName,
this.senderEngSignatureUrl, this.senderEngSignatureUrl,
@ -144,6 +146,7 @@ class DeviceTransfer {
}); });
} }
receiverAssignedEmployeeId = json['receiverAssignedEmployeeId']; receiverAssignedEmployeeId = json['receiverAssignedEmployeeId'];
receiverAssignedEmployeeNumber = json['receiverAssignedEmployeeNumber'];
receiverMachineStatusId = json['receiverMachineStatusId']; receiverMachineStatusId = json['receiverMachineStatusId'];
receiverMachineStatusValue = json['receiverMachineStatusValue']; receiverMachineStatusValue = json['receiverMachineStatusValue'];
receiverComment = json['receiverComment']; receiverComment = json['receiverComment'];
@ -220,6 +223,7 @@ class DeviceTransfer {
receiverEngSignatureUrl = json['receiverEngSignatureUrl']; receiverEngSignatureUrl = json['receiverEngSignatureUrl'];
receiverMachineStatusName = json['receiverMachineStatusName']; receiverMachineStatusName = json['receiverMachineStatusName'];
senderAssignedEmployeeName = json['senderAssignedEmployeeName']; senderAssignedEmployeeName = json['senderAssignedEmployeeName'];
senderAssignedEmployeeNumber = json['senderAssignedEmployeeNumber'];
senderBuildingName = json['senderBuildingName']; senderBuildingName = json['senderBuildingName'];
senderDepartmentName = json['senderDepartmentName']; senderDepartmentName = json['senderDepartmentName'];
senderEngSignatureUrl = json['senderEngSignatureUrl']; senderEngSignatureUrl = json['senderEngSignatureUrl'];
@ -270,6 +274,7 @@ class DeviceTransfer {
List<AssetTransferAttachment>? attachments; List<AssetTransferAttachment>? attachments;
List<AssetTransferAttachment>? assetTransferAttachments; List<AssetTransferAttachment>? assetTransferAttachments;
String? receiverAssignedEmployeeId; String? receiverAssignedEmployeeId;
String? receiverAssignedEmployeeNumber;
num? receiverMachineStatusId; num? receiverMachineStatusId;
int? receiverMachineStatusValue; int? receiverMachineStatusValue;
String? receiverComment; String? receiverComment;
@ -290,6 +295,7 @@ class DeviceTransfer {
String? senderFloorName; String? senderFloorName;
String? senderDepartmentName; String? senderDepartmentName;
String? senderAssignedEmployeeName; String? senderAssignedEmployeeName;
String? senderAssignedEmployeeNumber;
String? senderMachineStatusName; String? senderMachineStatusName;
String? senderEngSignatureUrl; String? senderEngSignatureUrl;
String? receiverAssignedEmployeeName; String? receiverAssignedEmployeeName;
@ -345,6 +351,7 @@ class DeviceTransfer {
String? senderEngSignature, String? senderEngSignature,
List<AssetTransferAttachment>? senderAttachments, List<AssetTransferAttachment>? senderAttachments,
String? receiverAssignedEmployeeId, String? receiverAssignedEmployeeId,
String? receiverAssignedEmployeeNumber,
num? receiverMachineStatusId, num? receiverMachineStatusId,
String? receiverComment, String? receiverComment,
String? receiverStartDate, String? receiverStartDate,
@ -364,6 +371,7 @@ class DeviceTransfer {
String? senderFloorName, String? senderFloorName,
String? senderDepartmentName, String? senderDepartmentName,
String? senderAssignedEmployeeName, String? senderAssignedEmployeeName,
String? senderAssignedEmployeeNumber,
String? senderMachineStatusName, String? senderMachineStatusName,
String? senderEngSignatureUrl, String? senderEngSignatureUrl,
String? receiverAssignedEmployeeName, String? receiverAssignedEmployeeName,
@ -420,6 +428,7 @@ class DeviceTransfer {
senderEngSignature: senderEngSignature ?? this.senderEngSignature, senderEngSignature: senderEngSignature ?? this.senderEngSignature,
senderAttachments: senderAttachments ?? this.senderAttachments, senderAttachments: senderAttachments ?? this.senderAttachments,
receiverAssignedEmployeeId: receiverAssignedEmployeeId ?? this.receiverAssignedEmployeeId, receiverAssignedEmployeeId: receiverAssignedEmployeeId ?? this.receiverAssignedEmployeeId,
receiverAssignedEmployeeNumber: receiverAssignedEmployeeNumber ?? this.receiverAssignedEmployeeNumber,
receiverMachineStatusId: receiverMachineStatusId ?? this.receiverMachineStatusId, receiverMachineStatusId: receiverMachineStatusId ?? this.receiverMachineStatusId,
receiverComment: receiverComment ?? this.receiverComment, receiverComment: receiverComment ?? this.receiverComment,
receiverStartDate: receiverStartDate ?? this.receiverStartDate, receiverStartDate: receiverStartDate ?? this.receiverStartDate,
@ -439,6 +448,7 @@ class DeviceTransfer {
senderFloorName: senderFloorName ?? this.senderFloorName, senderFloorName: senderFloorName ?? this.senderFloorName,
senderDepartmentName: senderDepartmentName ?? this.senderDepartmentName, senderDepartmentName: senderDepartmentName ?? this.senderDepartmentName,
senderAssignedEmployeeName: senderAssignedEmployeeName ?? this.senderAssignedEmployeeName, senderAssignedEmployeeName: senderAssignedEmployeeName ?? this.senderAssignedEmployeeName,
senderAssignedEmployeeNumber: senderAssignedEmployeeNumber ?? this.senderAssignedEmployeeNumber,
senderMachineStatusName: senderMachineStatusName ?? this.senderMachineStatusName, senderMachineStatusName: senderMachineStatusName ?? this.senderMachineStatusName,
senderMachineStatusValue: senderMachineStatusValue ?? this.senderMachineStatusValue, senderMachineStatusValue: senderMachineStatusValue ?? this.senderMachineStatusValue,
senderEngSignatureUrl: senderEngSignatureUrl ?? this.senderEngSignatureUrl, senderEngSignatureUrl: senderEngSignatureUrl ?? this.senderEngSignatureUrl,
@ -503,6 +513,7 @@ class DeviceTransfer {
map['senderAttachments'] = senderAttachments!.map((v) => v.toJson()).toList(); map['senderAttachments'] = senderAttachments!.map((v) => v.toJson()).toList();
} }
map['receiverAssignedEmployeeId'] = receiverAssignedEmployeeId; map['receiverAssignedEmployeeId'] = receiverAssignedEmployeeId;
map['receiverAssignedEmployeeNumber'] = receiverAssignedEmployeeNumber;
map['receiverMachineStatusId'] = receiverMachineStatusId; map['receiverMachineStatusId'] = receiverMachineStatusId;
map['receiverComment'] = receiverComment; map['receiverComment'] = receiverComment;
map['receiverStartDate'] = receiverStartDate; map['receiverStartDate'] = receiverStartDate;
@ -524,6 +535,7 @@ class DeviceTransfer {
map["senderFloorName"] = senderFloorName; map["senderFloorName"] = senderFloorName;
map["senderDepartmentName"] = senderDepartmentName; map["senderDepartmentName"] = senderDepartmentName;
map["senderAssignedEmployeeName"] = senderAssignedEmployeeName; map["senderAssignedEmployeeName"] = senderAssignedEmployeeName;
map["senderAssignedEmployeeNumber"] = senderAssignedEmployeeNumber;
map["senderMachineStatusName"] = senderMachineStatusName; map["senderMachineStatusName"] = senderMachineStatusName;
map["senderEngSignatureUrl"] = senderEngSignatureUrl; map["senderEngSignatureUrl"] = senderEngSignatureUrl;
map["receiverAssignedEmployeeName"] = receiverAssignedEmployeeName; map["receiverAssignedEmployeeName"] = receiverAssignedEmployeeName;
@ -631,6 +643,7 @@ class DeviceTransfer {
map['assetTransferReceiverTimers'] = receiverVisitTimers!.map((v) => v.toJson()).toList(); map['assetTransferReceiverTimers'] = receiverVisitTimers!.map((v) => v.toJson()).toList();
} }
map['receiverAssignedEmployeeId'] = receiverAssignedEmployeeId; map['receiverAssignedEmployeeId'] = receiverAssignedEmployeeId;
map['receiverAssignedEmployeeNumber'] = receiverAssignedEmployeeNumber;
map['receiverMachineStatusId'] = receiverMachineStatusId; map['receiverMachineStatusId'] = receiverMachineStatusId;
map['receiverComment'] = receiverComment; map['receiverComment'] = receiverComment;
map['receiverStartDate'] = receiverStartDate; map['receiverStartDate'] = receiverStartDate;
@ -674,6 +687,7 @@ class DeviceTransfer {
senderEngSignature = assetTransfer.senderEngSignature; senderEngSignature = assetTransfer.senderEngSignature;
senderAttachments = assetTransfer.senderAttachments; senderAttachments = assetTransfer.senderAttachments;
receiverAssignedEmployeeId = assetTransfer.receiverAssignedEmployeeId; receiverAssignedEmployeeId = assetTransfer.receiverAssignedEmployeeId;
receiverAssignedEmployeeNumber = assetTransfer.receiverAssignedEmployeeNumber;
receiverMachineStatusId = assetTransfer.receiverMachineStatusId; receiverMachineStatusId = assetTransfer.receiverMachineStatusId;
receiverComment = assetTransfer.receiverComment; receiverComment = assetTransfer.receiverComment;
receiverStartDate = assetTransfer.receiverStartDate; receiverStartDate = assetTransfer.receiverStartDate;
@ -693,6 +707,7 @@ class DeviceTransfer {
senderFloorName = assetTransfer.senderFloorName; senderFloorName = assetTransfer.senderFloorName;
senderDepartmentName = assetTransfer.senderDepartmentName; senderDepartmentName = assetTransfer.senderDepartmentName;
senderAssignedEmployeeName = assetTransfer.senderAssignedEmployeeName; senderAssignedEmployeeName = assetTransfer.senderAssignedEmployeeName;
senderAssignedEmployeeNumber = assetTransfer.senderAssignedEmployeeNumber;
senderMachineStatusName = assetTransfer.senderMachineStatusName; senderMachineStatusName = assetTransfer.senderMachineStatusName;
senderEngSignatureUrl = assetTransfer.senderEngSignatureUrl; senderEngSignatureUrl = assetTransfer.senderEngSignatureUrl;
receiverAssignedEmployeeName = assetTransfer.receiverAssignedEmployeeName; receiverAssignedEmployeeName = assetTransfer.receiverAssignedEmployeeName;

@ -523,3 +523,55 @@ class GasRefillContactPerson {
}; };
} }
} }
class AssignedEmployee {
String? id;
String? name;
String? email;
String? employeeId;
int? languageId;
String? extensionNo;
String? phoneNumber;
String? positionName;
String? position;
bool? isActive;
AssignedEmployee(
{this.id,
this.name,
this.email,
this.employeeId,
this.languageId,
this.extensionNo,
this.phoneNumber,
this.positionName,
this.position,
this.isActive});
AssignedEmployee.fromJson(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
email = json['email'];
employeeId = json['employeeId'];
languageId = json['languageId'];
extensionNo = json['extensionNo'];
phoneNumber = json['phoneNumber'];
positionName = json['positionName'];
position = json['position'];
isActive = json['isActive'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
data['email'] = this.email;
data['employeeId'] = this.employeeId;
data['languageId'] = this.languageId;
data['extensionNo'] = this.extensionNo;
data['phoneNumber'] = this.phoneNumber;
data['positionName'] = this.positionName;
data['position'] = this.position;
data['isActive'] = this.isActive;
return data;
}
}

@ -11,6 +11,7 @@ import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/task_request/task_request_model.dart'; import 'package:test_sa/models/new_models/task_request/task_request_model.dart';
import 'package:test_sa/modules/cm_module/utilities/service_request_utils.dart'; import 'package:test_sa/modules/cm_module/utilities/service_request_utils.dart';
import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart'; import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart';
import 'package:test_sa/modules/cx_module/chat/chat_widget.dart';
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
import 'package:test_sa/new_views/common_widgets/working_time_tile.dart'; import 'package:test_sa/new_views/common_widgets/working_time_tile.dart';
import 'package:test_sa/providers/task_request_provider/task_request_provider.dart'; import 'package:test_sa/providers/task_request_provider/task_request_provider.dart';
@ -29,8 +30,9 @@ class TaskRequestDetailsView extends StatefulWidget {
static const String id = "/task-request-detail"; static const String id = "/task-request-detail";
final int taskId; final int taskId;
final RequestsDetails? requestDetails; final RequestsDetails? requestDetails;
final int moduleId;
const TaskRequestDetailsView({Key? key, required this.taskId, this.requestDetails}) : super(key: key); const TaskRequestDetailsView({Key? key, required this.taskId, this.requestDetails, required this.moduleId}) : super(key: key);
@override @override
_TaskRequestDetailsViewState createState() { _TaskRequestDetailsViewState createState() {
@ -65,7 +67,27 @@ class _TaskRequestDetailsViewState extends State<TaskRequestDetailsView> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
userProvider ??= Provider.of<UserProvider>(context, listen: false); userProvider ??= Provider.of<UserProvider>(context, listen: false);
return Scaffold( return Scaffold(
appBar: DefaultAppBar(title: context.translation.taskRequest), appBar: DefaultAppBar(
title: context.translation.taskRequest,
actions: [
if (context.userProvider.isEngineer || context.userProvider.isNurse)
Selector<TaskRequestProvider, TaskData?>(
selector: (_, myModel) => myModel.taskRequestModel, // Selects only the userName
builder: (_, _taskReqModel, __) {
if (_taskReqModel == null) return const SizedBox();
return ChatWidget(
moduleId: widget.moduleId,
isShow: _taskReqModel.taskJobStatus!.value! != 0,
isReadOnly: _taskReqModel.taskJobStatus!.value! != 2,
requestId: widget.taskId.toInt(),
assigneeEmployeeNumber: _taskReqModel.assignedEngineer!.employeeId!,
myLoginUserID: context.userProvider.user!.username!,
contactEmployeeINumber: _taskReqModel.taskJobContactPersons!.first.user?.employeeId,
);
})
],
),
body: Consumer<TaskRequestProvider>(builder: (context, taskProvider, child) { body: Consumer<TaskRequestProvider>(builder: (context, taskProvider, child) {
TaskData? taskModel = taskProvider.taskRequestModel; TaskData? taskModel = taskProvider.taskRequestModel;
return taskProvider.isLoading return taskProvider.isLoading

@ -68,7 +68,8 @@ class TaskRequestItemView extends StatelessWidget {
Navigator.of(context).push(MaterialPageRoute( Navigator.of(context).push(MaterialPageRoute(
builder: (_) => TaskRequestDetailsView( builder: (_) => TaskRequestDetailsView(
taskId: requestData!.id!, taskId: requestData!.id!,
requestDetails: RequestsDetails(nameOfType: requestData?.nameOfType, status: requestData?.statusName, priority: requestData?.priorityName, date: requestData?.transactionDate), moduleId: requestData!.transactionNo!,
requestDetails: RequestsDetails(nameOfType: requestData?.nameOfType, status: requestData?.statusName, priority: requestData?.priorityName, date: requestData?.transactionDate, ),
))); )));
}); });
} }
@ -122,6 +123,7 @@ class TaskRequestItemView extends StatelessWidget {
Navigator.of(context).push(MaterialPageRoute( Navigator.of(context).push(MaterialPageRoute(
builder: (_) => TaskRequestDetailsView( builder: (_) => TaskRequestDetailsView(
taskId: requestDetails!.id!, taskId: requestDetails!.id!,
moduleId: requestDetails!.transactionType!,
requestDetails: requestDetails, requestDetails: requestDetails,
))); )));
}); });

@ -77,7 +77,7 @@ class DeviceItemView extends StatelessWidget {
), ),
], ],
).toShadowContainer(context, withShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => DeviceTransferDetails(model: DeviceTransfer(id: requestData!.id!)))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => DeviceTransferDetails(model: DeviceTransfer(id: requestData!.id!), moduleId: requestData!.transactionNo!)));
}); });
} }
@ -138,7 +138,11 @@ class DeviceItemView extends StatelessWidget {
), ),
], ],
).toShadowContainer(context, withShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => DeviceTransferDetails(model: DeviceTransfer(id: requestDetails!.id!)))); Navigator.of(context).push(MaterialPageRoute(
builder: (_) => DeviceTransferDetails(
model: DeviceTransfer(id: requestDetails!.id!),
moduleId: requestDetails!.transactionType!,
)));
}); });
} }

@ -74,6 +74,7 @@ class GasRefillItemView extends StatelessWidget {
builder: (_) => GasRefillDetailsPage( builder: (_) => GasRefillDetailsPage(
priority: requestData!.priorityName, priority: requestData!.priorityName,
date: requestData!.transactionDate!, date: requestData!.transactionDate!,
moduleId: requestData!.transactionNo!,
model: GasRefillModel(id: requestData!.id), model: GasRefillModel(id: requestData!.id),
), ),
), ),
@ -135,6 +136,7 @@ class GasRefillItemView extends StatelessWidget {
builder: (_) => GasRefillDetailsPage( builder: (_) => GasRefillDetailsPage(
priority: requestDetails!.priority!, priority: requestDetails!.priority!,
date: requestDetails!.date, date: requestDetails!.date,
moduleId: requestDetails!.transactionType!,
model: GasRefillModel(id: requestDetails!.id), model: GasRefillModel(id: requestDetails!.id),
), ),
), ),

@ -77,6 +77,7 @@ class TaskRequestProvider extends ChangeNotifier {
Future getTaskById({required int id, bool? showLoading = true}) async { Future getTaskById({required int id, bool? showLoading = true}) async {
try { try {
isLoading = showLoading ?? true; isLoading = showLoading ?? true;
taskRequestModel = null;
notifyListeners(); notifyListeners();
final response = await ApiManager.instance.get(URLs.getTaskByIdUrl + "?taskJobId=$id"); final response = await ApiManager.instance.get(URLs.getTaskByIdUrl + "?taskJobId=$id");
stateCode = response.statusCode; stateCode = response.statusCode;
@ -129,7 +130,6 @@ class TaskRequestProvider extends ChangeNotifier {
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
if (stateCode == 200) { if (stateCode == 200) {
return true; return true;
} }
return false; return false;

@ -9,6 +9,7 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/device/device_transfer.dart'; import 'package:test_sa/models/device/device_transfer.dart';
import 'package:test_sa/modules/cx_module/chat/chat_widget.dart';
import 'package:test_sa/views/pages/device_transfer/update_device_transfer.dart'; import 'package:test_sa/views/pages/device_transfer/update_device_transfer.dart';
import 'package:test_sa/views/widgets/images/files_list.dart'; import 'package:test_sa/views/widgets/images/files_list.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart'; import 'package:test_sa/views/widgets/loaders/app_loading.dart';
@ -22,8 +23,9 @@ import '../../widgets/requests/request_status.dart';
class DeviceTransferDetails extends StatefulWidget { class DeviceTransferDetails extends StatefulWidget {
final DeviceTransfer model; final DeviceTransfer model;
final int moduleId;
const DeviceTransferDetails({Key? key, required this.model}) : super(key: key); const DeviceTransferDetails({Key? key, required this.model, required this.moduleId}) : super(key: key);
@override @override
State<DeviceTransferDetails> createState() => _DeviceTransferDetailsState(); State<DeviceTransferDetails> createState() => _DeviceTransferDetailsState();
@ -131,6 +133,7 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
] else ...[ ] else ...[
// sender card // sender card
_buildCard( _buildCard(
_model!,
isSender: true, isSender: true,
site: _model?.senderSiteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "", site: _model?.senderSiteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
dept: _model?.senderDepartmentName?.cleanupWhitespace.capitalizeFirstOfEach ?? "", dept: _model?.senderDepartmentName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
@ -150,6 +153,7 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
8.height, 8.height,
// receiver card // receiver card
_buildCard( _buildCard(
_model!,
isSender: false, isSender: false,
site: _model?.destSiteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "", site: _model?.destSiteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
dept: _model?.destDepartmentName?.cleanupWhitespace.capitalizeFirstOfEach ?? "", dept: _model?.destDepartmentName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
@ -215,7 +219,17 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
], ],
), ),
], ],
), ).expanded,
if (context.userProvider.isEngineer || context.userProvider.isNurse)
ChatWidget(
moduleId: widget.moduleId,
isShow: _model!.senderMachineStatusValue! != 0,
isReadOnly: _model!.senderMachineStatusValue! != 1,
requestId: widget.model.id!.toInt(),
assigneeEmployeeNumber: _model!.senderAssignedEmployeeNumber!,
myLoginUserID: context.userProvider.user!.username!,
contactEmployeeINumber: _model!.assetTransferContactPersons!.first.employeeNumber,
),
if ((_userProvider!.user?.type == UsersTypes.engineer)) if ((_userProvider!.user?.type == UsersTypes.engineer))
if (isCurrentEngineerEligibleForEdit && isCurrentRequestEditAble) if (isCurrentEngineerEligibleForEdit && isCurrentRequestEditAble)
"edit".toSvgAsset(height: 40, width: 40).onPress(() async { "edit".toSvgAsset(height: 40, width: 40).onPress(() async {
@ -248,7 +262,8 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
).toShadowContainer(context); ).toShadowContainer(context);
} }
_buildCard({required String site, String? building, String? dept, String? floor, required String comment, required bool isSender, StatusLabel? statusLabel, String? assignTo}) { _buildCard(DeviceTransfer _deviceTransfer,
{required String site, String? building, String? dept, String? floor, required String comment, required bool isSender, StatusLabel? statusLabel, String? assignTo}) {
bool isCurrentEngineerEligibleForEdit = isSender ? _model?.senderAssignedEmployeeId == _userProvider!.user?.userID : _model?.receiverAssignedEmployeeId == _userProvider!.user?.userID; bool isCurrentEngineerEligibleForEdit = isSender ? _model?.senderAssignedEmployeeId == _userProvider!.user?.userID : _model?.receiverAssignedEmployeeId == _userProvider!.user?.userID;
bool isCurrentRequestClosed = isSender ? ((_model?.senderMachineStatusValue == 3)) : ((_model?.receiverMachineStatusValue == 3)); bool isCurrentRequestClosed = isSender ? ((_model?.senderMachineStatusValue == 3)) : ((_model?.receiverMachineStatusValue == 3));
@ -265,7 +280,17 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
if (statusLabel != null) 8.height, if (statusLabel != null) 8.height,
isSender ? context.translation.senderDetails.heading5(context) : context.translation.receiverDetails.heading5(context), isSender ? context.translation.senderDetails.heading5(context) : context.translation.receiverDetails.heading5(context),
], ],
), ).expanded,
if (context.userProvider.isEngineer || context.userProvider.isNurse)
ChatWidget(
moduleId: widget.moduleId,
isShow: (isSender ? _deviceTransfer.senderMachineStatusValue! : _deviceTransfer.receiverMachineStatusValue!) != 0,
isReadOnly: (isSender ? _deviceTransfer.senderMachineStatusValue! : _deviceTransfer.receiverMachineStatusValue) != 1,
requestId: widget.model.id!.toInt(),
assigneeEmployeeNumber: isSender ? _deviceTransfer.senderAssignedEmployeeNumber! : _deviceTransfer.receiverAssignedEmployeeNumber!,
myLoginUserID: context.userProvider.user!.username!,
contactEmployeeINumber: _deviceTransfer.assetTransferContactPersons!.first.employeeNumber,
),
if ((_userProvider!.user?.type == UsersTypes.engineer)) if ((_userProvider!.user?.type == UsersTypes.engineer))
if (isCurrentEngineerEligibleForEdit && !isCurrentRequestClosed) if (isCurrentEngineerEligibleForEdit && !isCurrentRequestClosed)
@ -273,7 +298,7 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
// ? (!(_model?.senderMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.senderMachineStatusName?.toLowerCase()?.contains("complete") ?? false)) // ? (!(_model?.senderMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.senderMachineStatusName?.toLowerCase()?.contains("complete") ?? false))
// : (!(_model?.receiverMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.receiverMachineStatusName?.toLowerCase()?.contains("complete") ?? false))) // : (!(_model?.receiverMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.receiverMachineStatusName?.toLowerCase()?.contains("complete") ?? false)))
// //
"edit".toSvgAsset(height: 48, width: 48).onPress(() async { "edit".toSvgAsset(height: 48, width: 48).onPress(() async {
bool isReload = (await Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model!, isSender: isSender)))) as bool; bool isReload = (await Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model!, isSender: isSender)))) as bool;
if (isReload ?? false) { if (isReload ?? false) {
setState(() {}); setState(() {});

@ -28,8 +28,9 @@ import '../../../widgets/requests/request_status.dart';
class GasRefillDetailsPage extends StatefulWidget { class GasRefillDetailsPage extends StatefulWidget {
GasRefillModel model; GasRefillModel model;
String? priority, date; String? priority, date;
final int moduleId;
GasRefillDetailsPage({Key? key, this.priority, this.date, required this.model}) : super(key: key); GasRefillDetailsPage({Key? key, this.priority, this.date, required this.model, required this.moduleId}) : super(key: key);
@override @override
State<GasRefillDetailsPage> createState() => _GasRefillDetailsPageState(); State<GasRefillDetailsPage> createState() => _GasRefillDetailsPageState();
@ -59,21 +60,22 @@ class _GasRefillDetailsPageState extends State<GasRefillDetailsPage> {
appBar: DefaultAppBar( appBar: DefaultAppBar(
title: context.translation.gasRefillDetails, title: context.translation.gasRefillDetails,
actions: [ actions: [
// if (context.userProvider.isEngineer || context.userProvider.isNurse) if (context.userProvider.isEngineer || context.userProvider.isNurse)
// Selector<GasRefillProvider, GasRefillModel?>( Selector<GasRefillProvider, GasRefillModel?>(
// selector: (_, myModel) => myModel.gasRefillModel, // Selects only the userName selector: (_, myModel) => myModel.gasRefillModel, // Selects only the userName
// builder: (_, _gasRefillModel, __) { builder: (_, _gasRefillModel, __) {
// if (_gasRefillModel == null) return const SizedBox(); if (_gasRefillModel == null) return const SizedBox();
// return ChatWidget(
// moduleId: 2, return ChatWidget(
// isShow: _gasRefillModel.status!.value! == 1, moduleId: widget.moduleId,
// // isReadOnly: _gasRefillModel.status!.value! == 1, isShow: _gasRefillModel.status!.value! != 0,
// requestId: widget.model.id!.toInt(), isReadOnly: _gasRefillModel.status!.value! != 1,
// assigneeEmployeeNumber: _gasRefillModel.assignedEmployee!.name!, requestId: widget.model.id!.toInt(),
// myLoginUserID: context.userProvider.user!.username!, assigneeEmployeeNumber: _gasRefillModel.assignedEmployee!.employeeId!,
// contactEmployeeINumber: _gasRefillModel.gasRefillContactPerson!.first.employeeCode!, myLoginUserID: context.userProvider.user!.username!,
// ); contactEmployeeINumber: _gasRefillModel.gasRefillContactPerson!.first.employeeCode!,
// }) );
})
], ],
), ),
key: _scaffoldKey, key: _scaffoldKey,

@ -1,50 +1,50 @@
import 'package:flutter/material.dart'; // import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.dart'; // import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/views/pages/user/gas_refill/gas_refill_details.dart'; // import 'package:test_sa/views/pages/user/gas_refill/gas_refill_details.dart';
import 'package:test_sa/views/widgets/gas_refill/gas_refill_item.dart'; // import 'package:test_sa/views/widgets/gas_refill/gas_refill_item.dart';
import 'package:test_sa/views/widgets/loaders/lazy_loading.dart'; // import 'package:test_sa/views/widgets/loaders/lazy_loading.dart';
import 'package:test_sa/views/widgets/loaders/no_data_found.dart'; // import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
//
import '../../../models/new_models/gas_refill_model.dart'; // import '../../../models/new_models/gas_refill_model.dart';
//
class GasRefillList extends StatefulWidget { // class GasRefillList extends StatefulWidget {
final List<GasRefillModel> items; // final List<GasRefillModel> items;
final bool nextPage; // final bool nextPage;
final Future<void> Function() onLazyLoad; // final Future<void> Function() onLazyLoad;
// @todo delete
const GasRefillList({Key? key,required this.items,required this.nextPage,required this.onLazyLoad}) : super(key: key); // const GasRefillList({Key? key,required this.items,required this.nextPage,required this.onLazyLoad}) : super(key: key);
//
@override // @override
State<GasRefillList> createState() => _GasRefillListState(); // State<GasRefillList> createState() => _GasRefillListState();
} // }
//
class _GasRefillListState extends State<GasRefillList> { // class _GasRefillListState extends State<GasRefillList> {
@override // @override
Widget build(BuildContext context) { // Widget build(BuildContext context) {
if (widget.items.isEmpty) { // if (widget.items.isEmpty) {
return NoDataFound( // return NoDataFound(
message: context.translation.noServiceRequestFound, // message: context.translation.noServiceRequestFound,
); // );
} // }
return LazyLoading( // return LazyLoading(
nextPage: widget.nextPage, // nextPage: widget.nextPage,
onLazyLoad: widget.onLazyLoad, // onLazyLoad: widget.onLazyLoad,
child: ListView.builder( // child: ListView.builder(
//physics: const BouncingScrollPhysics(), // //physics: const BouncingScrollPhysics(),
itemCount: widget.items.length, // itemCount: widget.items.length,
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), // padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
itemBuilder: (context, itemIndex) { // itemBuilder: (context, itemIndex) {
return GasRefillItem( // return GasRefillItem(
index: itemIndex, // index: itemIndex,
item: widget.items[itemIndex], // item: widget.items[itemIndex],
onPressed: (model) { // onPressed: (model) {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => GasRefillDetailsPage(model: model))).then((value) { // Navigator.of(context).push(MaterialPageRoute(builder: (_) => GasRefillDetailsPage(model: model, moduleId: null,))).then((value) {
model = value; // model = value;
setState(() {}); // setState(() {});
}); // });
}, // },
); // );
}), // }),
); // );
} // }
} // }

Loading…
Cancel
Save