Merge branch 'zaid_development_new' into sikander-development

main_design2.0
Sikander Saleem 2 years ago
commit 91d6b686c7

@ -71,7 +71,7 @@ class URLs {
static get getServiceReportLastCalls => "$_baseUrl/WorkOrder/GetLookupCallLastSituationBasedOnCase"; // get static get getServiceReportLastCalls => "$_baseUrl/WorkOrder/GetLookupCallLastSituationBasedOnCase"; // get
static get getAssetTypes => "$_baseUrl/Lookups/GetLookup?lookupEnum=500"; // get static get getAssetTypes => "$_baseUrl/Lookups/GetLookup?lookupEnum=500"; // get
static get getPartNumber => "$_baseUrl/PartCatalog/GetPartAutoComplete"; // get static get getPartNumber => "$_baseUrl/PartCatalog/GetPartAutoComplete"; // get
static get getServiceReportPriority => "$_baseUrl/Lookups/GetLookup?lookupEnum=602"; // get static get getServiceReportPriority => "$_baseUrl/Lookups/GetLookup?lookupEnum=4"; // get
static get getServiceReportDefectTypes => "$_baseUrl/Lookups/GetLookup?lookupEnum=601"; // get static get getServiceReportDefectTypes => "$_baseUrl/Lookups/GetLookup?lookupEnum=601"; // get
static get getCallRequestForWorkOrder => "$_baseUrl/CallRequest/GetCallRequestForWorkOrder"; // get static get getCallRequestForWorkOrder => "$_baseUrl/CallRequest/GetCallRequestForWorkOrder"; // get

@ -113,7 +113,7 @@ class GasRefillProvider extends ChangeNotifier {
"site": hospital?.toMap(), "site": hospital?.toMap(),
"building": {"id": building?.id, "name": building?.name, "value": building?.value}, "building": {"id": building?.id, "name": building?.name, "value": building?.value},
"floor": {"id": floor?.id, "name": floor?.name, "value": floor?.value}, "floor": {"id": floor?.id, "name": floor?.name, "value": floor?.value},
if (expectedDateTime != null) "expectedDate": expectedDateTime?.toIso8601String(), //if (expectedDateTime != null) "expectedDate": expectedDateTime?.toIso8601String(),
if (expectedDateTime != null) "expectedTime": expectedDateTime?.toIso8601String(), if (expectedDateTime != null) "expectedTime": expectedDateTime?.toIso8601String(),
if (timer?.startAt != null) "startDate": timer.startAt.toIso8601String(), if (timer?.startAt != null) "startDate": timer.startAt.toIso8601String(),
if (timer?.startAt != null) "startTime": timer.startAt.toIso8601String(), if (timer?.startAt != null) "startTime": timer.startAt.toIso8601String(),
@ -159,7 +159,7 @@ class GasRefillProvider extends ChangeNotifier {
"id": newModel.id, "id": newModel.id,
"gazRefillNo": newModel.title ?? "", "gazRefillNo": newModel.title ?? "",
"status": newModel.status.toMap(), "status": newModel.status.toMap(),
"expectedDate": newModel.expectedDate?.toIso8601String(), //"expectedDate": newModel.expectedDate?.toIso8601String(),
"expectedTime": newModel.expectedDate?.toIso8601String(), "expectedTime": newModel.expectedDate?.toIso8601String(),
if (timer?.startAt != null) "startDate": timer.startAt.toIso8601String(), if (timer?.startAt != null) "startDate": timer.startAt.toIso8601String(),
if (timer?.startAt != null) "startTime": timer.startAt.toIso8601String(), if (timer?.startAt != null) "startTime": timer.startAt.toIso8601String(),
@ -186,24 +186,23 @@ class GasRefillProvider extends ChangeNotifier {
}) })
.toList(); .toList();
log(body.toString()); log(body.toString());
return -1; Response response;
// Response response; try {
// try { response = await ApiManager.instance.put(URLs.updateGasRefill, body: body);
// response = await ApiManager.instance.put(URLs.updateGasRefill, body: body); // response = await post(
// // response = await post( // Uri.parse("$host${URLs.updateGasRefill}/${newModel.id}"),
// // Uri.parse("$host${URLs.updateGasRefill}/${newModel.id}"), // body: body,
// // body: body, // );
// // );
// stateCode = response.statusCode;
// stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) {
// if (response.statusCode >= 200 && response.statusCode < 300) { oldModel.fromGasRefillModel(newModel);
// oldModel.fromGasRefillModel(newModel); notifyListeners();
// notifyListeners(); }
// } return response.statusCode;
// return response.statusCode; } catch (error) {
// } catch (error) { return -1;
// return -1; }
// }
} }
Hospital hospital; Hospital hospital;

@ -152,10 +152,10 @@ class ServiceRequestsProvider extends ChangeNotifier {
"client": user.clientId, "client": user.clientId,
"callComments": serviceRequest.callComments, "callComments": serviceRequest.callComments,
if (serviceRequest.devicePhotos.isNotEmpty) "attachmentsCallRequest": serviceRequest.devicePhotos.map((e) => {"name": e}).toList(), if (serviceRequest.devicePhotos.isNotEmpty) "attachmentsCallRequest": serviceRequest.devicePhotos.map((e) => {"name": e}).toList(),
"priority": serviceRequest.priority.toMap(), "priority": serviceRequest.priority?.toMap(),
"defectType": serviceRequest.defectType.toMap(), "defectType": serviceRequest.defectType?.toMap(),
"typeofRequest": serviceRequest.type.toMap(), "typeofRequest": serviceRequest.type?.toMap(),
"requestedThrough": serviceRequest.requestedThrough.toMap(), "requestedThrough": serviceRequest.requestedThrough?.toMap(),
"reviewComment": null, "reviewComment": null,
if (serviceRequest.audio != null) "voiceNote": serviceRequest.audio, if (serviceRequest.audio != null) "voiceNote": serviceRequest.audio,
"callSiteContactPerson": [ "callSiteContactPerson": [

@ -155,14 +155,14 @@ class ServiceReport {
} }
Future<bool> validate() async { Future<bool> validate() async {
if (visitDate == null) { // if (visitDate == null) {
await Fluttertoast.showToast(msg: "Visit Date Required"); // await Fluttertoast.showToast(msg: "Visit Date Required");
return false; // return false;
} // }
if (returnToService == null) { // if (returnToService == null) {
await Fluttertoast.showToast(msg: "Return To Service Date Required"); // await Fluttertoast.showToast(msg: "Return To Service Date Required");
return false; // return false;
} // }
if (timer?.startAt == null) { if (timer?.startAt == null) {
await Fluttertoast.showToast(msg: "Working Hours Required"); await Fluttertoast.showToast(msg: "Working Hours Required");
return false; return false;

@ -25,9 +25,9 @@ import '../../../../models/enums/user_types.dart';
import '../../../app_style/colors.dart'; import '../../../app_style/colors.dart';
class GasRefillDetails extends StatefulWidget { class GasRefillDetails extends StatefulWidget {
final GasRefillModel model; GasRefillModel model;
const GasRefillDetails({Key key, this.model}) : super(key: key); GasRefillDetails({Key key, this.model}) : super(key: key);
@override @override
State<GasRefillDetails> createState() => _GasRefillDetailsState(); State<GasRefillDetails> createState() => _GasRefillDetailsState();
@ -102,7 +102,9 @@ class _GasRefillDetailsState extends State<GasRefillDetails> {
padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 4), padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 4),
child: Row( child: Row(
children: [ children: [
const ABackButton(), ABackButton(onPressed: (){
Navigator.of(context).pop(_model);
},),
Expanded( Expanded(
child: Center( child: Center(
child: Text( child: Text(
@ -123,14 +125,17 @@ class _GasRefillDetailsState extends State<GasRefillDetails> {
_model.fromGasRefillModel(widget.model); _model.fromGasRefillModel(widget.model);
print(widget.model.startDate); print(widget.model.startDate);
// setState(() {}); // setState(() {});
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => RequestGasRefill( builder: (context) => RequestGasRefill(
gasRefillModel: widget.model, gasRefillModel: widget.model,
), ),
), ),
); ).then((value) {
_model.status= value;
});
setState(() {});
}, },
), ),
const SizedBox( const SizedBox(

@ -106,7 +106,8 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
Fluttertoast.showToast( Fluttertoast.showToast(
msg: _subtitle.requestCompleteSuccessfully, msg: _subtitle.requestCompleteSuccessfully,
); );
Navigator.of(context).pop(); Navigator.of(context).pop(_formModel.status);
setState(() { });
} else { } else {
String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle); String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle);
ScaffoldMessenger.of(context).showSnackBar(SnackBar( ScaffoldMessenger.of(context).showSnackBar(SnackBar(
@ -151,7 +152,7 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
_settingProvider = Provider.of<SettingProvider>(context); _settingProvider = Provider.of<SettingProvider>(context);
if (_gasRefillProvider == null) { if (_gasRefillProvider == null) {
_gasRefillProvider = Provider.of<GasRefillProvider>(context, listen: false); _gasRefillProvider = Provider.of<GasRefillProvider>(context, listen: false);
_gasRefillProvider.reset(); //_gasRefillProvider.reset();
} }
if (_firstTime) { if (_firstTime) {
if (widget.gasRefillModel != null) { if (widget.gasRefillModel != null) {
@ -298,27 +299,27 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
), ),
], ],
), ),
const SizedBox(height: 8), //const SizedBox(height: 8),
if (_userProvider.user?.type == UsersTypes.normal_user || widget.gasRefillModel != null) // if (_userProvider.user?.type == UsersTypes.normal_user || widget.gasRefillModel != null)
Column( // Column(
crossAxisAlignment: CrossAxisAlignment.stretch, // crossAxisAlignment: CrossAxisAlignment.stretch,
children: [ // children: [
const ASubTitle("Expected Date"), // const ASubTitle("Expected Date"),
SizedBox( // SizedBox(
height: 8 * AppStyle.getScaleFactor(context), // height: 8 * AppStyle.getScaleFactor(context),
), // ),
ADateTimePicker( // ADateTimePicker(
date: _gasRefillProvider.expectedDateTime, // date: _gasRefillProvider.expectedDateTime,
from: DateTime.now().subtract(const Duration(days: 365)), // from: DateTime.now().subtract(const Duration(days: 365)),
to: DateTime.now().add(const Duration(days: 365)), // to: DateTime.now().add(const Duration(days: 365)),
onDateTimePicker: (date) { // onDateTimePicker: (date) {
_gasRefillProvider.expectedDateTime = date; // _gasRefillProvider.expectedDateTime = date;
_formModel.expectedDate = _gasRefillProvider.expectedDateTime; // _formModel.expectedDate = _gasRefillProvider.expectedDateTime;
setState(() {}); // setState(() {});
}, // },
), // ),
], // ],
), // ),
// if (_userProvider.user?.type == UsersTypes.engineer) // if (_userProvider.user?.type == UsersTypes.engineer)
// Column( // Column(
// children: [ // children: [

@ -189,7 +189,7 @@ class CreateRequestPageState extends State<CreateRequestPage> {
height: 4, height: 4,
), ),
ServiceRequestPriorityMenu( ServiceRequestPriorityMenu(
initialValue: _serviceRequest.priority, initialValue: widget.serviceRequest?.priority,
onSelect: (status) { onSelect: (status) {
_serviceRequest.priority = status; _serviceRequest.priority = status;
}, },
@ -347,7 +347,7 @@ class CreateRequestPageState extends State<CreateRequestPage> {
return; return;
} }
if (_serviceRequest.firstAction?.name == "Need a visit" && _dateTime == null) { if (_serviceRequest.firstAction?.name == "Need a visit" && _dateTime == null) {
Fluttertoast.showToast(msg: _subtitle.noDateFound); Fluttertoast.showToast(msg: "first action is required");
return; return;
} }
if (widget.serviceRequest != null && (_serviceRequest?.engineerId == null || (_serviceRequest?.engineerId?.isEmpty ?? false))) { if (widget.serviceRequest != null && (_serviceRequest?.engineerId == null || (_serviceRequest?.engineerId?.isEmpty ?? false))) {

@ -391,12 +391,12 @@ class _CreateServiceReportState extends State<CreateServiceReport> with TickerPr
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
const ASubTitle("Return to Service"), const ASubTitle("Return to Service"),
_validate && _serviceReport.returnToService == null // _validate && _serviceReport.returnToService == null
? ASubTitle( // ? ASubTitle(
_subtitle.requiredWord, // _subtitle.requiredWord,
color: Colors.red, // color: Colors.red,
) // )
: const SizedBox.shrink(), // : const SizedBox.shrink(),
Row( Row(
children: [ children: [
Expanded( Expanded(

@ -7,37 +7,45 @@ 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_item_found.dart'; import 'package:test_sa/views/widgets/loaders/no_item_found.dart';
class GasRefillList extends StatelessWidget { 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;
const GasRefillList({Key key, this.items, this.nextPage, this.onLazyLoad}) : super(key: key); const GasRefillList({Key key, this.items, this.nextPage, this.onLazyLoad}) : super(key: key);
@override
State<GasRefillList> createState() => _GasRefillListState();
}
class _GasRefillListState extends State<GasRefillList> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (items.length == 0) { if (widget.items.length == 0) {
Subtitle subtitle = AppLocalization.of(context).subtitle; Subtitle subtitle = AppLocalization.of(context).subtitle;
return NoItemFound( return NoItemFound(
message: subtitle.noServiceRequestFound, message: subtitle.noServiceRequestFound,
); );
} }
return LazyLoading( return LazyLoading(
nextPage: nextPage, nextPage: widget.nextPage,
onLazyLoad: onLazyLoad, onLazyLoad: widget.onLazyLoad,
child: ListView.builder( child: ListView.builder(
//physics: const BouncingScrollPhysics(), //physics: const BouncingScrollPhysics(),
itemCount: 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: items[itemIndex], item: widget.items[itemIndex],
onPressed: (model) { onPressed: (model) {
Navigator.of(context).push(MaterialPageRoute( Navigator.of(context).push(MaterialPageRoute(
builder: (_) => GasRefillDetails( builder: (_) => GasRefillDetails(
model: model, model: model,
))); ))).then((value) {
model=value;
setState(() {});
});
}, },
); );
}), }),

@ -147,7 +147,7 @@ class _MultiFilesPickerState extends State<MultiFilesPicker> with TickerProvider
FilePickerResult result = await FilePicker.platform.pickFiles( FilePickerResult result = await FilePicker.platform.pickFiles(
type: FileType.custom, type: FileType.custom,
allowMultiple: true, allowMultiple: true,
allowedExtensions: ['jpg', 'png', 'pdf', 'doc', 'docx', 'xlsx', 'pptx'], allowedExtensions: ['jpg', 'jpeg', 'png', 'pdf', 'doc', 'docx', 'xlsx', 'pptx'],
); );
if (result != null) { if (result != null) {
for (var path in result.paths) { for (var path in result.paths) {

@ -13,7 +13,7 @@ class MultiFilesPickerItem extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var isImage = file.path.split(".").last.toLowerCase() == "png" || file.path.split(".").last.toLowerCase() == "jpg"; var isImage = file.path.split(".").last.toLowerCase() == "png" || file.path.split(".").last.toLowerCase() == "jpg" || file.path.split(".").last.toLowerCase() == "jpeg";
var isPdf = file.path.split(".").last.toLowerCase() == "pdf"; var isPdf = file.path.split(".").last.toLowerCase() == "pdf";
var isExcel = file.path.split(".").last.toLowerCase() == "xlsx"; var isExcel = file.path.split(".").last.toLowerCase() == "xlsx";
return Container( return Container(

@ -22,7 +22,7 @@ class ServiceReportFaultDescription extends StatelessWidget {
UserProvider userProvider = Provider.of<UserProvider>(context); UserProvider userProvider = Provider.of<UserProvider>(context);
ServiceRequestFaultDescriptionProvider menuProvider = Provider.of<ServiceRequestFaultDescriptionProvider>(context); ServiceRequestFaultDescriptionProvider menuProvider = Provider.of<ServiceRequestFaultDescriptionProvider>(context);
return LoadingManager( return LoadingManager(
isLoading: menuProvider.isLoading, isLoading: menuProvider.isLoading || (enabled && (menuProvider.items?.isEmpty ?? true) || (!enabled && (initialValue?.defectName?.isEmpty ?? true))),
isFailedLoading: menuProvider.items == null, isFailedLoading: menuProvider.items == null,
stateCode: menuProvider.stateCode, stateCode: menuProvider.stateCode,
onRefresh: () async { onRefresh: () async {

Loading…
Cancel
Save