Merge remote-tracking branch 'origin/design_3.0_sdk_upgrade' into design_3.0_sdk_upgrade

design_3.0_latest
WaseemAbbasi22 1 week ago
commit 7f563e8292

@ -157,6 +157,7 @@
"searchBySn": "البحث بالرقم التسلسلي",
"serviceRequestInformation": "معلومات طلب الخدمة",
"serviceRequests": "طلبات الخدمة",
"correctiveMaintenance": "الصيانة التصحيحية",
"shareAntherIssue": "مشاركة قضية أخرى",
"shareApp": "مشاركة التطبيق",
"sn": "الرقم التسلسلي",

@ -157,6 +157,7 @@
"searchBySn": "Search By Sn",
"serviceRequestInformation": "Service Request Information",
"serviceRequests": "Service Requests",
"correctiveMaintenance": "Corrective Maintenance",
"shareAntherIssue": "share Another Issue",
"shareApp": "Share App",
"sn": "SN",

@ -34,7 +34,6 @@ class AppDrawer extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Consumer<UserProvider>(builder: (context, snapshot, _) {
print('profile photo i got is ${snapshot.user!.profilePhotoName!}');
return CircleAvatar(
radius: 45,
backgroundColor: context.isDark ? AppColor.neutral50 : AppColor.neutral40,
@ -43,7 +42,7 @@ class AppDrawer extends StatelessWidget {
child: ClipOval(
child: snapshot.profileImage != null
? Image.file(snapshot.profileImage!)
: (snapshot.user!.profilePhotoName?.isNotEmpty ?? false)
: (snapshot.user?.profilePhotoName?.isNotEmpty ?? false)
? Image.network(snapshot.user!.profilePhotoName!)
: const Icon(Icons.person, size: 50, color: Colors.white),
),

@ -19,7 +19,7 @@ class RequestItemViewList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return (list.isEmpty && !isLoading)
? NoDataFound(message: context.translation.noDataFound)
? NoDataFound(message: context.translation.noDataFound).center
: ListView.separated(
padding: const EdgeInsets.all(16),
shrinkWrap: true,

@ -1,13 +1,13 @@
import 'dart:convert';
import 'package:http/http.dart';
import 'package:test_sa/models/lookup.dart';
import '../../controllers/api_routes/api_manager.dart';
import '../../controllers/api_routes/urls.dart';
import '../models/new_models/department.dart';
import 'loading_list_notifier.dart';
class DepartmentProvider extends LoadingListNotifier<Department> {
class DepartmentProvider extends LoadingListNotifier<Lookup> {
@override
Future getDate() async {
if (loading ?? false) return -2;
@ -15,7 +15,7 @@ class DepartmentProvider extends LoadingListNotifier<Department> {
notifyListeners();
Response response;
try {
response = await ApiManager.instance.post(URLs.getDepartments, body: {"pageSize": 50});
response = await ApiManager.instance.post(URLs.getDepartments, body: {"pageSize": 50});
} catch (error) {
loading = false;
stateCode = -1;
@ -26,7 +26,7 @@ class DepartmentProvider extends LoadingListNotifier<Department> {
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
List listJson = json.decode(response.body)["data"];
items = listJson.map((department) => Department.fromJson(department)).toList();
items = listJson.map((department) => Lookup.fromJson(department)).toList();
}
loading = false;
notifyListeners();

@ -4,7 +4,6 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/app_strings/app_asset.dart';
import 'package:test_sa/dashboard_latest/widgets/request_category_list.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
@ -608,6 +607,7 @@ class ServiceRequestBottomSheet {
);
}));
}
static Future nurseRejectBackBottomSheet({required BuildContext context}) {
String feedback = '';
return buildBottomSheetParent(
@ -652,7 +652,7 @@ class ServiceRequestBottomSheet {
);
requestDetailProvider.nurseReject();
Navigator.pop(context);
if(requestDetailProvider.currentWorkOrder!.data!.requestId!=null){
if (requestDetailProvider.currentWorkOrder!.data!.requestId != null) {
requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!);
}
}
@ -691,13 +691,13 @@ class ServiceRequestBottomSheet {
InkWell(
child: acknowledge
? const Icon(
Icons.check_box,
color: AppColor.primary10,
)
Icons.check_box,
color: AppColor.primary10,
)
: const Icon(
Icons.check_box_outline_blank,
color: AppColor.neutral120,
),
Icons.check_box_outline_blank,
color: AppColor.neutral120,
),
onTap: () {
setState(() {
acknowledge = !acknowledge;
@ -706,9 +706,7 @@ class ServiceRequestBottomSheet {
),
6.width,
Flexible(
child: context.translation.nurseAcknowledge
.bodyText(context)
.custom(color: context.isDark ? AppColor.primary50 : AppColor.neutral120),
child: context.translation.nurseAcknowledge.bodyText(context).custom(color: context.isDark ? AppColor.primary50 : AppColor.neutral120),
),
],
),
@ -719,18 +717,17 @@ class ServiceRequestBottomSheet {
newSignature: newSignature,
backgroundColor: AppColor.neutral100,
showShadow: false,
onChange:(signature){
onChange: (signature) {
if (signature == null || signature.isEmpty) return;
setState(() {
if (signature == null || signature.isEmpty) return;
newSignature = signature;
nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
print('signature i got is ${newSignature}');
});
},
},
onSaved: (signature) {
if (signature == null || signature.isEmpty) return;
setState(() {
if (signature == null || signature.isEmpty) return;
newSignature = signature;
nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
print('signature i got is ${newSignature}');
@ -763,6 +760,7 @@ class ServiceRequestBottomSheet {
AppFilledButton(
label: context.translation.confirm,
maxWidth: true,
loading: requestDetailProvider.isLoading,
buttonColor: AppColor.green70,
onPressed: () async {
if (newSignature != null) {
@ -770,12 +768,12 @@ class ServiceRequestBottomSheet {
workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!,
signatureNurse: nurseSignature,
);
requestDetailProvider.nurseConfirm();
if(requestDetailProvider.currentWorkOrder!.data!.requestId!=null){
await requestDetailProvider.nurseConfirm();
if (requestDetailProvider.currentWorkOrder!.data!.requestId != null) {
requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!);
}
Navigator.pop(context);
}else{
} else {
//show some toast...
}
},

@ -60,7 +60,7 @@ class WorkOrderDetailView extends StatelessWidget {
context: context),
],
),
if (requestProvider.timer!=null&&requestProvider.timer!.isActive)...[
if (requestProvider.timer != null && requestProvider.timer!.isActive) ...[
const TimerWidget(),
]
],
@ -69,7 +69,6 @@ class WorkOrderDetailView extends StatelessWidget {
}
Widget workOrderDetailCard(BuildContext context, WorkOrderData workOrder, UserProvider userProvider) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -104,10 +103,10 @@ class WorkOrderDetailView extends StatelessWidget {
Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
if (userProvider.user!.type == UsersTypes.normal_user)
context.translation.code.toSvgAsset(width: 48).onPress(() {
// Navigator.push(context, MaterialPageRoute(builder: (context) => UpdateServiceRequestPage(serviceRequest: serviceRequest)));
}),
// if (userProvider.user!.type == UsersTypes.normal_user)
// context.translation.code.toSvgAsset(width: 48).onPress(() {
// // Navigator.push(context, MaterialPageRoute(builder: (context) => UpdateServiceRequestPage(serviceRequest: serviceRequest)));
// }),
if (userProvider.user!.type == UsersTypes.engineer) 16.height,
Text(
workOrder.requestedDate!.toString().toServiceRequestCardFormat,

@ -6,7 +6,6 @@ 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/department.dart';
import 'package:test_sa/models/new_models/site.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
@ -34,7 +33,7 @@ class _AssetFilterScreenState extends State<AssetFilterScreen> {
late AssetSearch filter;
Lookup? _commissioningStatus;
Site? _site;
Department? _department;
Lookup? _department;
String? startDate, endDate;
bool loading = false;
@ -50,8 +49,8 @@ class _AssetFilterScreenState extends State<AssetFilterScreen> {
final siteProvider = Provider.of<SiteProvider>(context, listen: false);
if (departmentProvider.items.isEmpty ?? true) await departmentProvider.getDate();
if (siteProvider.items.isEmpty ?? true) await siteProvider.getDate();
_department = departmentProvider.items.firstWhere((element) => element.name == filter.department, orElse: null);
_site = siteProvider.items.firstWhere((element) => element.name == filter.site, orElse: null);
_department = departmentProvider.items.where((element) => element.name == filter.department).firstOrNull;
_site = siteProvider.items.where((element) => element.name == filter.site).firstOrNull;
loading = false;
setState(() {});
});
@ -99,7 +98,7 @@ class _AssetFilterScreenState extends State<AssetFilterScreen> {
},
),
16.height,
SingleItemDropDownMenu<Department, DepartmentProvider>(
SingleItemDropDownMenu<Lookup, DepartmentProvider>(
context: context,
title: context.translation.byDepartment,
initialValue: _department,
@ -161,7 +160,7 @@ class _AssetFilterScreenState extends State<AssetFilterScreen> {
void _search() async {
filter.site = _site?.name;
filter.department = _department?.departmentName;
filter.department = _department?.name;
filter.supplyDateFrom = startDate;
filter.supplyDateTo = endDate;
final deviceProvider = Provider.of<AssetProvider>(context, listen: false);

@ -119,10 +119,10 @@ class _ServiceRequestDetailsPageState extends State<ServiceRequestDetailsPage> {
Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
if (userProvider.user!.type == UsersTypes.normal_user)
context.translation.code.toSvgAsset(width: 48).onPress(() {
Navigator.push(context, MaterialPageRoute(builder: (context) => UpdateServiceRequestPage(serviceRequest: serviceRequest)));
}),
// if (userProvider.user!.type == UsersTypes.normal_user)
// context.translation.code.toSvgAsset(width: 48).onPress(() {
// Navigator.push(context, MaterialPageRoute(builder: (context) => UpdateServiceRequestPage(serviceRequest: serviceRequest)));
// }),
if (userProvider.user!.type == UsersTypes.engineer) 16.height,
Text(
serviceRequest.date!.toServiceRequestCardFormat,

@ -132,7 +132,7 @@ class _MyAssetsPageState extends State<MyAssetsPage> {
context.translation.filter,
style: AppTextStyles.bodyText2.copyWith(color: AppColor.blueStatus(context)),
).onPress(() async {
final result = await Navigator.push(context, MaterialPageRoute(builder: (context) => AssetFilterScreen(data: _searchAsset!)));
final result = await Navigator.push(context, MaterialPageRoute(builder: (context) => AssetFilterScreen(data: _searchAsset)));
if (result != null) {
_searchAsset = result;
}

Loading…
Cancel
Save