work order

pull/2/head
nextwo 2 years ago
parent 27d3a74d3b
commit 8646b8f1e9

@ -6,6 +6,7 @@ import 'package:test_sa/models/engineer.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/service_request/search_work_order.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/pages/sub_workorder/workorder_list.dart';
import 'package:test_sa/views/widgets/app_text_form_field.dart';
import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
@ -185,13 +186,37 @@ class _SubWorkOrderPageState extends State<SubWorkOrderPage> {
context,
MaterialPageRoute(
builder: (context) => Scaffold(
body: ListView.builder(
itemCount: woList.length,
shrinkWrap: true,
itemBuilder: (context, index) => Text(
woList[index].id?.toString(),
),
),
body: SafeArea(
child: Column(
children: [
Container(
color: AColors.primaryColor,
padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 4),
child: Column(
children: [
Row(
children: [
ABackButton(),
Expanded(
child: Center(
child: Text(
"Work Order List",
style: Theme.of(context).textTheme.headline6.copyWith(color: AColors.white, fontStyle: FontStyle.italic),
),
),
),
const SizedBox(
width: 48,
)
],
),
],
),
),
Expanded(child: WorkOrderList(items: woList, nextPage: true, onLazyLoad: (){}, )),
],
),
)
),
),
);

@ -0,0 +1,63 @@
import 'package:flutter/material.dart';
import '../../../models/service_request/search_work_order.dart';
import '../../app_style/colors.dart';
import '../../app_style/sizing.dart';
class WorkOrderDetails extends StatelessWidget {
final SearchWorkOrders item;
const WorkOrderDetails({@required this.item,Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
padding: EdgeInsets.all(10),
margin: EdgeInsets.all(10),
decoration: BoxDecoration(
color: AColors.inputFieldBackgroundColor,
border: Border.all(
color: Color(0xffefefef),
),
borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)),
// boxShadow: const [
// AppStyle.boxShadow
// ]
),
child: Column(
children: [
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
],
),
),
Container(child: _buildRow("call id", "", context),)
],
);
}
Widget _buildRow(String title, String value, BuildContext context){
return Row(
children: [
Expanded(
child: Text(
"Call Id",
style: Theme.of(context).textTheme.subtitle2.copyWith(),
),
),
//if (item.clientName != null)
Text(
'',
style: Theme.of(context).textTheme.subtitle2.copyWith(),
),
],
);
}
}

@ -0,0 +1,106 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
import '../../../models/service_request/search_work_order.dart';
class WorkOrderItem extends StatelessWidget {
final int index;
final SearchWorkOrders item;
final Function(SearchWorkOrders) onPressed;
const WorkOrderItem({Key key, this.item, this.onPressed, this.index}) : super(key: key);
@override
Widget build(BuildContext context) {
Subtitle _subtitle = AppLocalization.of(context).subtitle;
Color itemColor = index % 2 == 0 ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.onPrimary;
Color onItemColor = index % 2 != 0 ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.onPrimary;
return Padding(
padding: const EdgeInsets.symmetric(vertical: 4),
child: ElevatedButton(
style: ElevatedButton.styleFrom(
padding: EdgeInsets.symmetric(vertical: 8, horizontal: 8),
backgroundColor: itemColor,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(AppStyle.getBorderRadius(context)),
),
),
onPressed: () {
onPressed(item);
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
item.callRequest.callNo ?? "-----",
style: Theme.of(context).textTheme.headline6.copyWith(color: onItemColor, fontSize: 16, fontWeight: FontWeight.bold),
),
Text(
item.callRequest.asset.id.toString(),
style: Theme.of(context).textTheme.subtitle2.copyWith(
color: onItemColor,
),
),
Row(
children: [
Expanded(
child: Text(
_subtitle.assetName,
style: Theme.of(context).textTheme.subtitle2.copyWith(
color: onItemColor,
),
),
),
//if (item.clientName != null)
Text(
item.callRequest.asset.assetNumber,
style: Theme.of(context).textTheme.subtitle2.copyWith(
color: onItemColor,
),
),
],
),
Text(
item.calllastSituation.name,
style: Theme.of(context).textTheme.subtitle2.copyWith(
color: onItemColor,
),
),
Divider(
color: onItemColor,
),
Row(
children: [
Expanded(
child: Text(
_subtitle.status,
style: Theme.of(context).textTheme.subtitle2.copyWith(
color: onItemColor,
),
),
),
if (item.callRequest.status?.id != null) StatusLabel(label: item.callRequest.status.name, color: AColors.getGasStatusColor(item.callRequest.status.id)),
],
),
],
),
),
],
),
],
),
),
);
}
}

@ -0,0 +1,40 @@
import 'package:flutter/material.dart';
import 'package:test_sa/views/pages/sub_workorder/workorder_update.dart';
import 'package:test_sa/views/pages/sub_workorder/workorder_item.dart';
import '../../../controllers/localization/localization.dart';
import '../../../models/service_request/search_work_order.dart';
import '../../../models/subtitle.dart';
import '../../widgets/loaders/lazy_loading.dart';
import '../../widgets/loaders/no_item_found.dart';
class WorkOrderList extends StatelessWidget {
final List<SearchWorkOrders> items;
final bool nextPage;
final Future<void> Function() onLazyLoad;
WorkOrderList({Key key, this.items, this.nextPage, this.onLazyLoad}) : super(key: key);
@override
Widget build(BuildContext context) {
if (items.length == 0) {
Subtitle subtitle = AppLocalization.of(context).subtitle;
return NoItemFound(
message: subtitle.noServiceRequestFound,
);
}
return LazyLoading(
nextPage: nextPage,
onLazyLoad: onLazyLoad,
child: ListView.builder(
itemCount: items.length,
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
itemBuilder: (context, itemIndex) {
return WorkOrderItem(index: itemIndex, onPressed: (model){
Navigator.of(context).push(MaterialPageRoute(
builder: (_) => WorkOrderUpdate(item: model,)));
}, item: items[itemIndex], );
}),
);
}
}

@ -0,0 +1,66 @@
import 'package:flutter/material.dart';
import 'package:test_sa/views/pages/sub_workorder/workorder_details.dart';
import '../../../controllers/localization/localization.dart';
import '../../../models/service_request/search_work_order.dart';
import '../../../models/subtitle.dart';
import '../../app_style/colors.dart';
import '../../widgets/buttons/app_back_button.dart';
import '../../widgets/loaders/loading_manager.dart';
class WorkOrderUpdate extends StatefulWidget {
final SearchWorkOrders item;
const WorkOrderUpdate({@required this.item,Key key}) : super(key: key);
@override
State<WorkOrderUpdate> createState() => _WorkOrderUpdateState();
}
class _WorkOrderUpdateState extends State<WorkOrderUpdate> {
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
Subtitle _subtitle;
bool _isLoading = false;
@override
Widget build(BuildContext context) {
_subtitle = AppLocalization.of(context).subtitle;
return Scaffold(
body: SafeArea(
child: Form(
key: _formKey,
child: LoadingManager(
isLoading: _isLoading,
isFailedLoading: false,
stateCode: 200,
onRefresh: () async {},
child: Column(
children: [
Container(
color: Theme.of(context).colorScheme.primary,
padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 4),
child: Row(
children: [
const ABackButton(),
Expanded(
child: Center(
child: Text(
"Work Order",
style: Theme.of(context).textTheme.headline6.copyWith(color: AColors.white, fontStyle: FontStyle.italic),
),
),
),
const SizedBox(width: 58),
],
),
),
WorkOrderDetails(item: widget.item,)
],
),
),
),
),
);
}
}
Loading…
Cancel
Save