Merge remote-tracking branch 'origin/main_design2.0' into main_design2.0

main_design2.0
nextwo 2 years ago
commit 0be6013ec5

@ -40,6 +40,13 @@ post_install do |installer|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
end
target.build_configurations.each do |config|
flutter_additional_ios_build_settings(target)
xcconfig_path = config.base_configuration_reference.real_path
xcconfig = File.read(xcconfig_path)
xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
end
end
installer.generated_projects.each do |project|
project.targets.each do |target|

@ -161,7 +161,7 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1500;
LastUpgradeCheck = 1300;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
@ -371,8 +371,9 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = DQ779YN74J;
DEVELOPMENT_TEAM = 3A359E86ZF;
ENABLE_BITCODE = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Atoms;
LD_RUNPATH_SEARCH_PATHS = (
@ -593,8 +594,9 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = DQ779YN74J;
DEVELOPMENT_TEAM = 3A359E86ZF;
ENABLE_BITCODE = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Atoms;
LD_RUNPATH_SEARCH_PATHS = (
@ -701,8 +703,9 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = DQ779YN74J;
DEVELOPMENT_TEAM = 3A359E86ZF;
ENABLE_BITCODE = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Atoms;
LD_RUNPATH_SEARCH_PATHS = (

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1500"
LastUpgradeVersion = "1300"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

@ -140,7 +140,7 @@ class AllRequestsProvider extends ChangeNotifier {
Future<int> getHighPriorityRequests() async {
if (isHighPriorityLoading == true) return -2;
isHighPriorityLoading = true;
isHighPriorityLoading = true; notifyListeners();
if (highPriorityRequests == null) notifyListeners();
Response response;
try {

@ -13,20 +13,27 @@ import '../../../../controllers/providers/api/user_provider.dart';
import '../../../../models/enums/user_types.dart';
class ProgressFragment extends StatelessWidget {
ProgressFragment({Key key}) : super(key: key);
ProgressFragment({Key key}) : super(key: key);
UserProvider _userProvider;
@override
Widget build(BuildContext context) {
_userProvider = Provider.of<UserProvider>(context);
bool isCurrentUserNotEngineer = (_userProvider.user.type != UsersTypes.engineer);
return Consumer<AllRequestsProvider>(
builder: (context, snapshot, _) {
Map<String, double> statuses = {
"Completed": snapshot.completedRequests?.requestsDetails?.length?.toDouble() ?? 0.0,
"In Progress": snapshot.inProgressRequests?.requestsDetails?.length?.toDouble() ?? 0.0,
"Open": snapshot.openRequests?.requestsDetails?.length?.toDouble() ?? 0.0,
// "Open": snapshot.openRequests?.requestsDetails?.length?.toDouble() ?? 0.0,
};
int total = (snapshot.completedRequests?.requestsDetails?.length ?? 0) + (snapshot.inProgressRequests?.requestsDetails?.length ?? 0) + (snapshot.openRequests?.requestsDetails?.length ?? 0);
if (isCurrentUserNotEngineer) {
statuses["Open"] = snapshot.openRequests?.requestsDetails?.length?.toDouble() ?? 0.0;
}
int total = (snapshot.completedRequests?.requestsDetails?.length ?? 0) +
(snapshot.inProgressRequests?.requestsDetails?.length ?? 0) +
(isCurrentUserNotEngineer ? (snapshot.openRequests?.requestsDetails?.length ?? 0) : 0);
return Column(
children: [
@ -68,7 +75,7 @@ class ProgressFragment extends StatelessWidget {
).toShimmer(isShow: snapshot.isOpenLoading || snapshot.isInProgressLoading || snapshot.isCompleteLoading, radius: 300).paddingAll(12).toShadowContainer(context),
).paddingOnly(start: 16, end: 16, bottom: 16),
DefaultTabController(
length: 3,
length: isCurrentUserNotEngineer ? 3 : 2,
child: Column(
children: <Widget>[
Container(
@ -87,8 +94,7 @@ class ProgressFragment extends StatelessWidget {
// setState(() {});
},
tabs: [
if(_userProvider.user.type != UsersTypes.engineer)
Tab(text: context.translation.open, height: 57.toScreenHeight),
if (isCurrentUserNotEngineer) Tab(text: context.translation.open, height: 57.toScreenHeight),
Tab(text: context.translation.inProgress, height: 57.toScreenHeight),
Tab(text: context.translation.completed, height: 57.toScreenHeight),
],
@ -97,8 +103,7 @@ class ProgressFragment extends StatelessWidget {
8.height,
TabBarView(
children: [
if(_userProvider.user.type != UsersTypes.engineer)
RequestItemViewList(snapshot.openRequests?.requestsDetails ?? [], snapshot.isOpenLoading),
if (isCurrentUserNotEngineer) RequestItemViewList(snapshot.openRequests?.requestsDetails ?? [], snapshot.isOpenLoading),
RequestItemViewList(snapshot.inProgressRequests?.requestsDetails ?? [], snapshot.isInProgressLoading),
RequestItemViewList(snapshot.completedRequests?.requestsDetails ?? [], snapshot.isCompleteLoading),
],

@ -163,6 +163,7 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
final requestsProvider = Provider.of<AllRequestsProvider>(context, listen: false);
if (search.startDate != null) search.endDate ??= DateTime.now();
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
requestsProvider.reset();
await requestsProvider.getAllRequests(context, search: search);
Navigator.pop(context);
Navigator.of(context).pop(search);

@ -133,6 +133,7 @@ class _AllRequestsSearchPageState extends State<AllRequestsSearchPage> {
_formKey.currentState.save();
final requestsProvider = Provider.of<AllRequestsProvider>(context, listen: false);
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
requestsProvider.reset();
await requestsProvider.getAllRequests(context, search: search);
Navigator.pop(context);
Navigator.of(context).pop(search);

@ -37,6 +37,7 @@ class _MyRequestsPageState extends State<MyRequestsPage> {
context.translation.preventiveMaintenance,
];
_provider = Provider.of<AllRequestsProvider>(context, listen: false);
_provider.reset();
_provider.getAllRequests(context);
}

@ -54,7 +54,7 @@ class _LoginPageState extends State<LoginPage> {
initialValue: _user?.userName,
validator: (value) => Validator.hasValue(value) ? null : context.translation.requiredField,
labelText: context.translation.username,
textInputType: TextInputType.name,
textInputType: TextInputType.text,
onSaved: (value) {
_user.userName = value;
},

@ -162,13 +162,14 @@ class _NewGasRefillRequestPageState extends State<NewGasRefillRequestPage> {
},
),
8.height,
AppFilledButton(
label: context.translation.add,
maxWidth: true,
textColor: Colors.white,
buttonColor: context.isDark ? AppColor.neutral60 : AppColor.neutral50,
onPressed: _add,
),
if (_gasModel.gazRefillDetails?.isEmpty ?? true)
AppFilledButton(
label: context.translation.add,
maxWidth: true,
textColor: Colors.white,
buttonColor: context.isDark ? AppColor.neutral60 : AppColor.neutral50,
onPressed: _add,
),
24.height,
ListView.builder(
shrinkWrap: true,

@ -53,7 +53,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
await Fluttertoast.showToast(msg: "Working Hours Required");
return false;
}
if ((widget.isSender && _formModel?.senderTimer?.endAt == null) || (!widget.isSender && _formModel?.receiverTimer?.startAt == null)) {
if ((widget.isSender && _formModel?.senderTimer?.endAt == null) || (!widget.isSender && _formModel?.receiverTimer?.startAt == null || isTimerRunning)) {
await Fluttertoast.showToast(msg: "Please Stop The Timer");
return false;
}
@ -83,6 +83,8 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
super.dispose();
}
bool isTimerRunning = false;
@override
Widget build(BuildContext context) {
_userProvider = Provider.of<UserProvider>(context);
@ -128,6 +130,9 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
label: context.translation.workingHours,
timer: widget.isSender ? _formModel.senderTimer : _formModel.receiverTimer,
enabled: widget.isSender ? _formModel.senderEndDate == null : _formModel.receiverEndDate == null,
timerProgress: (isRunning) {
isTimerRunning = isRunning;
},
onChange: (timer) async {
if (widget.isSender) {
_formModel.senderTimer = timer;

@ -13,6 +13,8 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/new_models/assigned_employee.dart';
import 'package:test_sa/models/new_models/assistant_employee.dart';
import 'package:test_sa/models/service_request/search_work_order.dart';
import 'package:test_sa/models/service_request/service_report.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
@ -132,10 +134,15 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
@override
Widget build(BuildContext context) {
final user = Provider.of<UserProvider>(context).user;
final isCurrentAssigned = user.id != ((widget.workOrder.assistantEmployees?.isNotEmpty ?? false) ? widget.workOrder.assistantEmployees?.first?.user?.id : null);
if (isCurrentAssigned) {
_subWorkOrders.assistantEmployees = [widget.workOrder.assistantEmployees?.first?.copyWith(id: 0)];
final isCurrentUserIsAssistantEmp = (user.userID != widget.workOrder.assignedEmployee?.id);
if (isCurrentUserIsAssistantEmp) {
// _subWorkOrders.assistantEmployees = [widget.workOrder.assistantEmployees?.first?.copyWith(id: 0)];
_subWorkOrders.assistantEmployees = [AssistantEmployees(id: 0, user: AssignedEmployee(id: user.userID, name: user.username))];
}
else {
}
print("isCurrentUserIsAssistantEmp:$isCurrentUserIsAssistantEmp:${widget.workOrder.assistantEmployees?.length}");
if (_callRequestForWorkOrder == null) {
_partsProvider = Provider.of<PartsProvider>(context);
getAssetType();
@ -310,12 +317,14 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
ServiceReportAssistantEmployeeMenu(
title: context.translation.assignAssistant,
assetId: widget.workOrder?.callRequest?.asset?.id,
initialValue: isCurrentAssigned
? (widget.workOrder.assistantEmployees.first)
: (_subWorkOrders.assistantEmployees?.isNotEmpty ?? false)
? _subWorkOrders.assistantEmployees?.first
: null,
enabled: !isCurrentAssigned,
initialValue: (_subWorkOrders.assistantEmployees?.isNotEmpty ?? false) ? _subWorkOrders.assistantEmployees?.first : null,
// initialValue: !isCurrentAssigned
// ? (widget.workOrder.assistantEmployees?.first)
// : (_subWorkOrders.assistantEmployees?.isNotEmpty ?? false)
// ? _subWorkOrders.assistantEmployees?.first
// : null,
enable: !isCurrentUserIsAssistantEmp,
onSelect: (employee) {
if (employee == null) {
_subWorkOrders.assistantEmployees = [];

@ -204,7 +204,9 @@ class _CreateServiceReportState extends State<CreateServiceReport> with TickerPr
SingleItemDropDownMenu<Lookup, ServiceTypeProvider>(
context: context,
title: context.translation.serviceType,
onSelect: (value) {},
onSelect: (value) {
},
),
8.height,
ServiceReportLastCallsMenu(

@ -189,7 +189,9 @@ class _EditServiceReportState extends State<EditServiceReport> with TickerProvid
SingleItemDropDownMenu<Lookup, ServiceTypeProvider>(
context: context,
title: context.translation.serviceType,
onSelect: (value) {},
onSelect: (value) {
},
),
8.height,
ServiceReportLastCallsMenu(

@ -10,8 +10,9 @@ class AssistantEmployeeMenu extends StatefulWidget {
final AssistantEmployees initialStatus;
final Function(AssistantEmployees) onSelect;
final String title;
final bool enable;
const AssistantEmployeeMenu({Key key, this.statuses, this.title, this.onSelect, this.initialStatus}) : super(key: key);
const AssistantEmployeeMenu({Key key, this.statuses, this.title, this.onSelect, this.initialStatus, this.enable = true}) : super(key: key);
@override
_SingleAssistantEmployeeMenuState createState() => _SingleAssistantEmployeeMenuState();
@ -73,7 +74,12 @@ class _SingleAssistantEmployeeMenuState extends State<AssistantEmployeeMenu> {
child: Stack(
alignment: Alignment.center,
children: [
const PositionedDirectional(end: 0, child: Icon(Icons.keyboard_arrow_down_rounded)),
PositionedDirectional(
end: 0,
child: Icon(
Icons.keyboard_arrow_down_rounded,
color: widget.enable ? null : Colors.grey,
)),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
@ -96,18 +102,30 @@ class _SingleAssistantEmployeeMenuState extends State<AssistantEmployeeMenu> {
),
style: TextStyle(color: Theme.of(context).primaryColor),
underline: const SizedBox.shrink(),
onChanged: (AssistantEmployees newValue) {
setState(() {
_selectedStatus = newValue;
});
widget.onSelect(newValue);
},
onChanged: widget.enable
? (AssistantEmployees newValue) {
setState(() {
_selectedStatus = newValue;
});
widget.onSelect(newValue);
}
: null,
// onChanged: (AssistantEmployees newValue) {
// setState(() {
// _selectedStatus = newValue;
// });
// widget.onSelect(newValue);
// },
items: widget.statuses.map<DropdownMenuItem<AssistantEmployees>>((AssistantEmployees value) {
return DropdownMenuItem<AssistantEmployees>(
value: value,
child: Text(
value.user?.name ?? "NULL",
style: Theme.of(context).textTheme.bodyLarge,
style: Theme.of(context).textTheme.bodyLarge.copyWith(
color: widget.enable ? Theme.of(context).primaryColor : Colors.grey,
),
),
);
}).toList(),

@ -1,42 +1,23 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart';
import 'package:test_sa/providers/loading_list_notifier.dart';
import 'package:test_sa/models/new_models/assistant_employee.dart';
import 'package:test_sa/models/service_request/search_work_order.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import 'package:test_sa/views/widgets/status/assistant_employee_menu.dart';
import '../../../../controllers/providers/api/status_drop_down/report/service_report_assistants_employee_provider.dart';
import '../../../../models/new_models/assistant_employee.dart';
class ServiceReportAssistantEmployeeMenu extends StatefulWidget {
class ServiceReportAssistantEmployeeMenu extends StatelessWidget {
final Function(AssistantEmployees) onSelect;
final AssistantEmployees initialValue;
final String title;
final num assetId;
final bool enabled;
final bool enable;
const ServiceReportAssistantEmployeeMenu({Key key, this.enabled = true, @required this.onSelect, @required this.assetId, this.title, this.initialValue}) : super(key: key);
@override
State<ServiceReportAssistantEmployeeMenu> createState() => _ServiceReportAssistantEmployeeMenuState();
}
class _ServiceReportAssistantEmployeeMenuState extends State<ServiceReportAssistantEmployeeMenu> {
AssistantEmployees _initialValue;
@override
void initState() {
_initialValue = widget.initialValue;
super.initState();
}
@override
void didUpdateWidget(covariant ServiceReportAssistantEmployeeMenu oldWidget) {
if (widget.initialValue != oldWidget.initialValue) {
_initialValue = widget.initialValue;
setState(() {});
}
super.didUpdateWidget(oldWidget);
}
const ServiceReportAssistantEmployeeMenu({Key key, @required this.onSelect,this.title, this.initialValue, this.assetId, this.enable = true}) : super(key: key);
@override
Widget build(BuildContext context) {
@ -46,22 +27,87 @@ class _ServiceReportAssistantEmployeeMenuState extends State<ServiceReportAssist
isFailedLoading: menuProvider.assistantEmployees == null,
stateCode: menuProvider.stateCode,
onRefresh: () async {
await menuProvider.getAssistantEmployees(widget.assetId);
await menuProvider.getAssistantEmployees(assetId);
// menuProvider.setStateCode = null;
},
child: SingleItemDropDownMenu<AssistantEmployees, NullableLoadingProvider>(
title: widget.title,
context: context,
enabled: widget.enabled,
initialValue: _initialValue,
staticData: menuProvider.assistantEmployees,
onSelect: widget.onSelect,
child: AssistantEmployeeMenu(
initialStatus: initialValue,
title: title,
statuses: menuProvider.assistantEmployees,
onSelect: onSelect,
enable: enable,
),
// child: AssistantEmployeeMenu(
// title: title,
// initialStatus: initialValue,
// statuses: menuProvider.assistantEmployees,
// onSelect: onSelect,
// ),
);
}
}
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart';
// import 'package:test_sa/providers/loading_list_notifier.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
//
// import '../../../../controllers/providers/api/status_drop_down/report/service_report_assistants_employee_provider.dart';
// import '../../../../models/new_models/assistant_employee.dart';
//
// class ServiceReportAssistantEmployeeMenu extends StatefulWidget {
// final Function(AssistantEmployees) onSelect;
// final AssistantEmployees initialValue;
// final String title;
// final num assetId;
// final bool enabled;
//
// const ServiceReportAssistantEmployeeMenu({Key key, this.enabled = true, @required this.onSelect, @required this.assetId, this.title, this.initialValue}) : super(key: key);
//
// @override
// State<ServiceReportAssistantEmployeeMenu> createState() => _ServiceReportAssistantEmployeeMenuState();
// }
//
// class _ServiceReportAssistantEmployeeMenuState extends State<ServiceReportAssistantEmployeeMenu> {
// AssistantEmployees _initialValue;
//
// @override
// void initState() {
// _initialValue = widget.initialValue;
// super.initState();
// }
//
// @override
// void didUpdateWidget(covariant ServiceReportAssistantEmployeeMenu oldWidget) {
// if (widget.initialValue != oldWidget.initialValue) {
// _initialValue = widget.initialValue;
// setState(() {});
// }
// super.didUpdateWidget(oldWidget);
// }
//
// @override
// Widget build(BuildContext context) {
// ServiceReportAssistantsEmployeeProvider menuProvider = Provider.of<ServiceReportAssistantsEmployeeProvider>(context);
// return LoadingManager(
// isLoading: menuProvider.isLoading,
// isFailedLoading: menuProvider.assistantEmployees == null,
// stateCode: menuProvider.stateCode,
// onRefresh: () async {
// await menuProvider.getAssistantEmployees(widget.assetId);
// },
// child: SingleItemDropDownMenu<AssistantEmployees, NullableLoadingProvider>(
// title: widget.title,
// context: context,
// enabled: widget.enabled,
// initialValue: _initialValue,
// staticData: menuProvider.assistantEmployees,
// onSelect: widget.onSelect,
// ),
// // child: AssistantEmployeeMenu(
// // title: title,
// // initialStatus: initialValue,
// // statuses: menuProvider.assistantEmployees,
// // onSelect: onSelect,
// // ),
// );
// }
// }

@ -17,12 +17,15 @@ class AppTimer extends StatefulWidget {
final bool enabled;
final String label;
final Function(bool) timerProgress;
const AppTimer({
Key key,
this.label,
this.timer,
this.onChange,
this.style,
this.timerProgress,
this.enabled = true,
}) : super(key: key);
@ -80,6 +83,7 @@ class _AppTimerState extends State<AppTimer> {
}
_loading = false;
setState(() {});
widget.timerProgress(_running);
}
@override

Loading…
Cancel
Save