Change To Powered By Cloud Solutions, and remove engineer name from the track device transfer info, in addition to merge with majd's branch

design_3.0_demo_module
zaid_daoud 3 years ago
parent 460c3138fd
commit 60a2e372a3

@ -1,13 +1,12 @@
import 'dart:convert'; import 'dart:convert';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart';
import 'package:test_sa/controllers/api_routes/api_manager.dart'; import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart'; import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/engineer.dart'; import 'package:test_sa/models/engineer.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/user.dart'; import 'package:test_sa/models/user.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart';
class EngineersProvider extends ChangeNotifier { class EngineersProvider extends ChangeNotifier {
//reset provider data //reset provider data

@ -1,8 +1,5 @@
import 'dart:convert'; import 'dart:convert';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/user.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';

@ -1,8 +1,5 @@
import 'dart:convert'; import 'dart:convert';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/user.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';

@ -1,12 +1,9 @@
import 'dart:convert'; import 'dart:convert';
import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/user.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart'; import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/user.dart'; import 'package:test_sa/models/user.dart';

@ -1,12 +1,9 @@
import 'dart:convert'; import 'dart:convert';
import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/user.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart'; import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/user.dart'; import 'package:test_sa/models/user.dart';

@ -1,10 +1,11 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/user.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/user.dart';
import '../settings/app_settings.dart'; import '../settings/app_settings.dart';
class SettingProvider extends ChangeNotifier { class SettingProvider extends ChangeNotifier {

@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:test_sa/views/app_style/colors.dart'; import 'package:test_sa/views/app_style/colors.dart';

@ -1,5 +1,4 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
extension WidgetExtensions on Widget { extension WidgetExtensions on Widget {
Widget onPress(VoidCallback onTap) => InkWell(onTap: onTap, child: this); Widget onPress(VoidCallback onTap) => InkWell(onTap: onTap, child: this);

@ -101,8 +101,8 @@ class Pentry {
map["vChecklists"] = ppmCheckLists.map((e) => e.toMap(visitId)).toList(); map["vChecklists"] = ppmCheckLists.map((e) => e.toMap(visitId)).toList();
map["vCalibrationTools"] = calibrationTools.map((e) => e.toMap(visitId)).toList(); map["vCalibrationTools"] = calibrationTools.map((e) => e.toMap(visitId)).toList();
map["vKits"] = pmKits.map((e) => e.toMap(visitId)).toList(); map["vKits"] = pmKits.map((e) => e.toMap(visitId)).toList();
map["nurseSignature"] = signatureNurse;//"${DateTime.now().toIso8601String()}.png|$signatureNurse"; map["nurseSignature"] = signatureNurse; //"${DateTime.now().toIso8601String()}.png|$signatureNurse";
map["engSignature"] = signatureEngineer;//"${DateTime.now().toIso8601String()}.png|$signatureEngineer"; map["engSignature"] = signatureEngineer; //"${DateTime.now().toIso8601String()}.png|$signatureEngineer";
return map; return map;
} }

@ -28,7 +28,7 @@ class VisitsSearch {
this.expectedDateFrom, this.expectedDateFrom,
this.expectedDateTo, this.expectedDateTo,
this.deviceNumber, this.deviceNumber,
this.deviceName this.deviceName,
this.mostRecent, this.mostRecent,
}); });
@ -44,8 +44,8 @@ class VisitsSearch {
expectedDateTo = newSearch.expectedDateTo; expectedDateTo = newSearch.expectedDateTo;
statusValue = newSearch.statusValue; statusValue = newSearch.statusValue;
mostRecent = newSearch.mostRecent; mostRecent = newSearch.mostRecent;
deviceNumber=newSearch.deviceNumber; deviceNumber = newSearch.deviceNumber;
deviceName=newSearch.deviceName; deviceName = newSearch.deviceName;
} }
Map<String, dynamic> toMap() { Map<String, dynamic> toMap() {

@ -3,9 +3,7 @@ import 'package:provider/provider.dart';
import 'package:test_sa/controllers/localization/localization.dart'; import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/controllers/providers/api/device_transfer_provider.dart'; import 'package:test_sa/controllers/providers/api/device_transfer_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/models/device/device_transfer.dart'; import 'package:test_sa/models/device/device_transfer.dart';
import 'package:test_sa/models/device/device_transfer_info.dart';
import 'package:test_sa/models/subtitle.dart'; import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/app_style/colors.dart'; import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart'; import 'package:test_sa/views/app_style/sizing.dart';
@ -54,171 +52,152 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
key: _scaffoldKey, key: _scaffoldKey,
body: SafeArea( body: SafeArea(
child: FutureBuilder( child: FutureBuilder(
future: _getDeviceTransfer(), future: _getDeviceTransfer(),
builder: (context, snapshot) { builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) { if (snapshot.connectionState == ConnectionState.waiting) {
return const ALoading(); return const ALoading();
} else { } else {
_subtitle = AppLocalization _subtitle = AppLocalization.of(context).subtitle;
.of(context) _userProvider = Provider.of<UserProvider>(context);
.subtitle; _isSender = _userProvider.user.userID == _model.sender?.userId;
_userProvider = Provider.of<UserProvider>(context); _isReceiver = _userProvider.user.userID == _model.receiver?.userId;
_settingProvider = Provider.of<SettingProvider>(context); return Form(
_deviceTransferProvider = Provider.of<DeviceTransferProvider>(context); key: _formKey,
_isSender = _userProvider.user.userID == _model.sender?.userId; child: LoadingManager(
_isReceiver = _userProvider.user.userID == _model.receiver?.userId; isLoading: _isLoading,
return Form( isFailedLoading: false,
key: _formKey, stateCode: 200,
child: LoadingManager( onRefresh: () async {},
isLoading: _isLoading, child: Column(
isFailedLoading: false, children: [
stateCode: 200, Container(
onRefresh: () async {}, color: Theme.of(context).colorScheme.primary,
child: Column( padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 4),
children: [ child: Row(
Container( children: [
color: Theme const ABackButton(),
.of(context) Expanded(
.colorScheme child: Center(
.primary, child: Text(
padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 4), _subtitle.details,
child: Row( style: Theme.of(context).textTheme.headline6.copyWith(color: AColors.white, fontStyle: FontStyle.italic),
children: [
const ABackButton(),
Expanded(
child: Center(
child: Text(
_subtitle.details,
style: Theme
.of(context)
.textTheme
.headline6
.copyWith(color: AColors.white, fontStyle: FontStyle.italic),
),
), ),
), ),
const SizedBox(width: 58), ),
], const SizedBox(width: 58),
), ],
), ),
Expanded( ),
child: SingleChildScrollView( Expanded(
padding: EdgeInsets.all(16 * AppStyle.getScaleFactor(context)), child: SingleChildScrollView(
child: Column( padding: EdgeInsets.all(16 * AppStyle.getScaleFactor(context)),
crossAxisAlignment: CrossAxisAlignment.start, child: Column(
children: [ crossAxisAlignment: CrossAxisAlignment.start,
RequestInfoRow( children: [
title: "Transfer Id", RequestInfoRow(
info: _model.title?.toString(), title: "Transfer Id",
), info: _model.title?.toString(),
RequestInfoRow( ),
title: _subtitle.assetName, RequestInfoRow(
info: _model.device.assetName, title: _subtitle.assetName,
), info: _model.device.assetName,
RequestInfoRow( ),
title: _subtitle.assetSN, RequestInfoRow(
info: _model.device.serialNumber, title: _subtitle.assetSN,
), info: _model.device.serialNumber,
RequestInfoRow( ),
title: _subtitle.assetNumber, RequestInfoRow(
info: _model.device.number, title: _subtitle.assetNumber,
), info: _model.device.number,
RequestInfoRow( ),
title: _subtitle.destinationSite, RequestInfoRow(
info: _model.device.destSiteName, title: _subtitle.destinationSite,
), info: _model.device.destSiteName,
RequestInfoRow( ),
title: _subtitle.building, RequestInfoRow(
info: _model.device.destBuildingName, title: _subtitle.building,
), info: _model.device.destBuildingName,
RequestInfoRow( ),
title: _subtitle.floor, RequestInfoRow(
info: _model.device.destFloor, title: _subtitle.floor,
), info: _model.device.destFloor,
RequestInfoRow( ),
title: _subtitle.department, RequestInfoRow(
info: _model.device.destDepartmentName, title: _subtitle.department,
), info: _model.device.destDepartmentName,
RequestInfoRow( ),
title: _subtitle.room, RequestInfoRow(
info: _model.device.destRoom, title: _subtitle.room,
), info: _model.device.destRoom,
RequestInfoRow( ),
title: _subtitle.actions, RequestInfoRow(
info: "", title: _subtitle.actions,
), info: "",
const SizedBox(height: 8), ),
Row( const SizedBox(height: 8),
children: [ Row(
Expanded( children: [
child: Text("Sender", style: Theme Expanded(
.of(context) child: Text("Sender", style: Theme.of(context).textTheme.headline6),
.textTheme ),
.headline6), if (_userProvider.user?.type == UsersTypes.engineer)
ASmallButton(
text: _subtitle.edit,
onPressed: (_isSender || _isReceiver || false)
? () {
Navigator.of(context).push(MaterialPageRoute(
builder: (_) => UpdateDeviceTransfer(
model: _model,
isSender: true,
)));
}
: null,
), ),
if (_userProvider.user?.type == UsersTypes.engineer) ],
ASmallButton( ),
text: _subtitle.edit, const SizedBox(height: 12),
onPressed: (_isSender || _isReceiver || false) DeviceTransferInfoSection(
? () { info: _model.sender,
Navigator.of(context).push(MaterialPageRoute( isSender: true,
builder: (_) => ),
UpdateDeviceTransfer( const SizedBox(height: 8),
model: _model, Row(
isSender: true, children: [
))); Expanded(
} child: Text("Receiver", style: Theme.of(context).textTheme.headline6),
: null, ),
), if (_userProvider.user?.type == UsersTypes.engineer)
], ASmallButton(
), text: _subtitle.edit,
const SizedBox(height: 12), onPressed: (_isReceiver || false)
DeviceTransferInfoSection( ? () {
info: _model.sender, Navigator.of(context).push(MaterialPageRoute(
isSender: true, builder: (_) => UpdateDeviceTransfer(
), model: _model,
const SizedBox(height: 8), isSender: false,
Row( )));
children: [ }
Expanded( : null,
child: Text("Receiver", style: Theme
.of(context)
.textTheme
.headline6),
), ),
if (_userProvider.user?.type == UsersTypes.engineer) ],
ASmallButton( ),
text: _subtitle.edit, const SizedBox(height: 12),
onPressed: (_isReceiver || false) DeviceTransferInfoSection(
? () { info: _model.receiver,
Navigator.of(context).push(MaterialPageRoute( isSender: false,
builder: (_) => ),
UpdateDeviceTransfer( ],
model: _model,
isSender: false,
)));
}
: null,
),
],
),
const SizedBox(height: 12),
DeviceTransferInfoSection(
info: _model.receiver,
isSender: false,
),
],
),
), ),
), ),
], ),
), ],
), ),
); ),
} );
} }
) },
) ),
),
); );
} }
} }

@ -1,5 +1,4 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/service_requests_provider.dart'; import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
import 'package:test_sa/models/engineer.dart'; import 'package:test_sa/models/engineer.dart';

@ -276,7 +276,7 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
}, },
), ),
const SizedBox(height: 8), const SizedBox(height: 8),
ASubTitle(_subtitle.workingHours), if (widget.gasRefillModel != null) ASubTitle(_subtitle.workingHours),
if (widget.gasRefillModel != null) const SizedBox(height: 8), if (widget.gasRefillModel != null) const SizedBox(height: 8),
if (widget.gasRefillModel != null) if (widget.gasRefillModel != null)
Row( Row(

@ -391,7 +391,7 @@ class _LandPageState extends State<LandPage> {
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text( Text(
"Powered By NewTrack", "Powered By Cloud Solutions",
style: Theme.of(context).textTheme.headline6.copyWith(fontWeight: FontWeight.w500, color: AColors.grey3A, fontSize: 12), style: Theme.of(context).textTheme.headline6.copyWith(fontWeight: FontWeight.w500, color: AColors.grey3A, fontSize: 12),
textScaleFactor: AppStyle.getScaleFactor(context), textScaleFactor: AppStyle.getScaleFactor(context),
), ),

@ -281,7 +281,7 @@ class _CreateServiceReportState extends State<CreateServiceReport> with TickerPr
const SizedBox( const SizedBox(
height: 8, height: 8,
), ),
ASubTitle(_subtitle.assetType ??""), ASubTitle(_subtitle.assetType ?? ""),
_validate && _serviceReport.assetType == null _validate && _serviceReport.assetType == null
? ASubTitle( ? ASubTitle(
_subtitle.requiredWord, _subtitle.requiredWord,

@ -1,10 +1,5 @@
import 'package:flutter/material.dart';
import 'dart:convert';
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:test_sa/controllers/localization/localization.dart'; import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/subtitle.dart'; import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/models/visits/visit.dart'; import 'package:test_sa/models/visits/visit.dart';
import 'package:test_sa/models/visits/visits_group.dart'; import 'package:test_sa/models/visits/visits_group.dart';

@ -73,11 +73,10 @@ class VisitDetailsPage extends StatelessWidget {
), ),
MaterialButton( MaterialButton(
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
onPressed:() { onPressed: () {
if(visit.images.isEmpty || (visit.images?.first?.isEmpty ?? false)) { if (visit.images.isEmpty || (visit.images?.first?.isEmpty ?? false)) {
Navigator.of(context).push(MaterialPageRoute( Navigator.of(context).push(MaterialPageRoute(
builder: (_) => builder: (_) => Scaffold(
Scaffold(
body: InteractiveViewer( body: InteractiveViewer(
child: Center( child: Center(
child: ImageLoader( child: ImageLoader(

@ -1,5 +1,4 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:test_sa/controllers/localization/localization.dart'; import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/models/department.dart'; import 'package:test_sa/models/department.dart';
import 'package:test_sa/models/subtitle.dart'; import 'package:test_sa/models/subtitle.dart';

@ -30,10 +30,10 @@ class DeviceTransferInfoSection extends StatelessWidget {
title: subtitle.department, title: subtitle.department,
info: info.department.name, info: info.department.name,
), ),
RequestInfoRow( // RequestInfoRow(
title: isSender? "Sender Name " : "Receiver Name", // title: subtitle.engineerName,
info: info.userName, // info: info.userName,
), // ),
RequestInfoRow( RequestInfoRow(
title: subtitle.workingHours, title: subtitle.workingHours,
info: info.workingHours, info: info.workingHours,

@ -1,5 +1,4 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:test_sa/controllers/localization/localization.dart'; import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/models/hospital.dart'; import 'package:test_sa/models/hospital.dart';
import 'package:test_sa/models/subtitle.dart'; import 'package:test_sa/models/subtitle.dart';

@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:test_sa/models/app_notification.dart'; import 'package:test_sa/models/app_notification.dart';
import 'package:test_sa/views/app_style/colors.dart'; import 'package:test_sa/views/app_style/colors.dart';

@ -7,7 +7,6 @@ import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/models/part.dart'; import 'package:test_sa/models/part.dart';
import 'package:test_sa/views/app_style/colors.dart'; import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart'; import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
class AutoCompletePartsField extends StatefulWidget { class AutoCompletePartsField extends StatefulWidget {
final String initialValue; final String initialValue;

@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';

@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:test_sa/controllers/localization/localization.dart'; import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/lookup.dart';
@ -70,7 +69,7 @@ class _ServiceRequestsSearchDialogState extends State<ServiceRequestsSearchDialo
child: Padding( child: Padding(
padding: const EdgeInsets.all(16.0), padding: const EdgeInsets.all(16.0),
child: SingleChildScrollView( child: SingleChildScrollView(
child:Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Row( Row(

@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart'; import 'package:flutter_typeahead/flutter_typeahead.dart';
import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/lookup.dart';

@ -2,8 +2,8 @@ import 'dart:math';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart';
import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_equipment_status_provider.dart'; import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_equipment_status_provider.dart';
import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/lookup.dart';

@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/localization/localization.dart'; import 'package:test_sa/controllers/localization/localization.dart';
@ -85,9 +84,9 @@ class VisitItem extends StatelessWidget {
Text( Text(
visit.deviceNumber ?? "", visit.deviceNumber ?? "",
style: Theme.of(context).textTheme.subtitle1.copyWith( style: Theme.of(context).textTheme.subtitle1.copyWith(
color: onItemColor, color: onItemColor,
fontSize: 14, fontSize: 14,
), ),
), ),
Divider( Divider(
color: onItemColor, color: onItemColor,

Loading…
Cancel
Save