point 39 & 40 done.

main_design2.0
Sikander Saleem 2 years ago
parent 981f5f8200
commit afd69b6c83

@ -113,6 +113,7 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
initialSupplier = subWoDetails.supplier; initialSupplier = subWoDetails.supplier;
_serviceReport.faultDescription = subWoDetails.faultDescription; _serviceReport.faultDescription = subWoDetails.faultDescription;
_subWorkOrders.visitDate = subWoDetails.visitDate; _subWorkOrders.visitDate = subWoDetails.visitDate;
_subWorkOrders.sparePartsWorkOrders = subWoDetails.sparePartsWorkOrders;
} }
await assetTypesProvider.getTypes(); await assetTypesProvider.getTypes();
_subWorkOrders?.assetType = assetTypesProvider.statuses?.firstWhere( _subWorkOrders?.assetType = assetTypesProvider.statuses?.firstWhere(
@ -149,12 +150,13 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
// _subWorkOrders.assistantEmployees = [widget.workOrder.assistantEmployees?.first?.copyWith(id: 0)]; // _subWorkOrders.assistantEmployees = [widget.workOrder.assistantEmployees?.first?.copyWith(id: 0)];
_subWorkOrders.assistantEmployees = [AssistantEmployees(id: 0, user: AssignedEmployee(id: user.userID, name: user.username))]; _subWorkOrders.assistantEmployees = [AssistantEmployees(id: 0, user: AssignedEmployee(id: user.userID, name: user.username))];
} else {} } else {}
print("isCurrentUserIsAssistantEmp:$isCurrentUserIsAssistantEmp:${widget.workOrder.assistantEmployees?.length}");
if (_callRequestForWorkOrder == null) { if (_callRequestForWorkOrder == null) {
_partsProvider = Provider.of<PartsProvider>(context); _partsProvider = Provider.of<PartsProvider>(context);
getAssetType(); getAssetType();
} }
bool disablePart = _subWorkOrders.calllastSituation?.value == 12;
return Scaffold( return Scaffold(
appBar: DefaultAppBar(title: context.translation.createSubWorkOrder), appBar: DefaultAppBar(title: context.translation.createSubWorkOrder),
body: SafeArea( body: SafeArea(
@ -421,6 +423,7 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
PartNoButton( PartNoButton(
controller: _partQtyController, controller: _partQtyController,
spareParts: _spareParts, spareParts: _spareParts,
disablePartEdit: disablePart,
initialList: _subWorkOrders.sparePartsWorkOrders, initialList: _subWorkOrders.sparePartsWorkOrders,
onChange: (parts) { onChange: (parts) {
_subWorkOrders.sparePartsWorkOrders = parts; _subWorkOrders.sparePartsWorkOrders = parts;

@ -16,9 +16,10 @@ class PartNoButton extends StatefulWidget {
final List<SparePart> spareParts; final List<SparePart> spareParts;
final List<SparePartsWorkOrders> initialList; final List<SparePartsWorkOrders> initialList;
final TextEditingController controller; final TextEditingController controller;
final bool disablePartEdit;
final Function(List<SparePartsWorkOrders> sparePart) onChange; final Function(List<SparePartsWorkOrders> sparePart) onChange;
const PartNoButton({@required this.spareParts, @required this.controller, this.initialList, this.onChange, Key key}) : super(key: key); const PartNoButton({@required this.spareParts, @required this.controller, this.initialList, this.onChange, this.disablePartEdit = false, Key key}) : super(key: key);
@override @override
State<PartNoButton> createState() => _PartNoButtonState(); State<PartNoButton> createState() => _PartNoButtonState();
@ -93,17 +94,19 @@ class _PartNoButtonState extends State<PartNoButton> {
label: context.translation.add, label: context.translation.add,
maxWidth: true, maxWidth: true,
textColor: Colors.white, textColor: Colors.white,
buttonColor: AppColor.neutral50, buttonColor: widget.disablePartEdit ? AppColor.neutral20 : AppColor.neutral50,
onPressed: () { onPressed: widget.disablePartEdit
if (current != null && _formKey.currentState.validate()) { ? null
_formKey.currentState.save(); : () {
list.add(current); if (current != null && _formKey.currentState.validate()) {
if (widget.onChange != null) widget.onChange(list); _formKey.currentState.save();
current = SparePartsWorkOrders(); list.add(current);
widget.controller.text = ""; if (widget.onChange != null) widget.onChange(list);
setState(() {}); current = SparePartsWorkOrders();
} widget.controller.text = "";
}, setState(() {});
}
},
), ),
16.height, 16.height,
const Divider().defaultStyle(context), const Divider().defaultStyle(context),
@ -114,17 +117,70 @@ class _PartNoButtonState extends State<PartNoButton> {
itemCount: list.length, itemCount: list.length,
padding: EdgeInsets.only(bottom: 16.toScreenHeight), padding: EdgeInsets.only(bottom: 16.toScreenHeight),
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
itemBuilder: (context, index) => Row( itemBuilder: (context, index) => Column(
crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min,
children: [ children: [
"${list[index].sparePart.partNo} / ${list[index].sparePart.partName}".bodyText(context).expanded, Row(
list[index].qty.toString().bodyText(context), crossAxisAlignment: CrossAxisAlignment.start,
32.width, children: [
"trash".toSvgAsset().onPress(() { "${list[index].sparePart.partNo} / ${list[index].sparePart.partName}".bodyText(context).expanded,
list.remove(list[index]); list[index].qty.toString().bodyText(context),
if (widget.onChange != null) widget.onChange(list); 32.width,
setState(() {}); "trash".toSvgAsset(color: widget.disablePartEdit ? Colors.grey : null).onPress(widget.disablePartEdit
}), ? null
: () {
list.remove(list[index]);
if (widget.onChange != null) widget.onChange(list);
setState(() {});
}),
],
),
if (widget.disablePartEdit)
Row(
children: [
AppTextFormField(
controller: TextEditingController(),
labelText: "Installed Qty",
textInputType: TextInputType.number,
backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral30,
enable: true,
initialValue: list[index].installQty?.toInt()?.toString() ?? "",
validator: (value) => value == null || value.isEmpty
? context.translation.requiredField
: Validator.isNumeric(value)
? null
: context.translation.onlyNumbers,
onChange: (text) {
list[index].installQty = num.tryParse(text ?? "");
if (widget.onChange != null) widget.onChange(list);
},
onSaved: (text) {
list[index].installQty = num.tryParse(text ?? "");
},
).expanded,
8.width,
AppTextFormField(
controller: TextEditingController(),
labelText: "Returned Qty",
textInputType: TextInputType.number,
backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral30,
enable: true,
initialValue: list[index].returnQty?.toInt()?.toString() ?? "",
validator: (value) => value == null || value.isEmpty
? context.translation.requiredField
: Validator.isNumeric(value)
? null
: context.translation.onlyNumbers,
onChange: (text) {
list[index].returnQty = num.tryParse(text ?? "");
if (widget.onChange != null) widget.onChange(list);
},
onSaved: (text) {
list[index].returnQty = num.tryParse(text ?? "");
},
).expanded,
],
).paddingOnly(top: 4, bottom: 4),
], ],
).paddingOnly(top: 4, bottom: 4), ).paddingOnly(top: 4, bottom: 4),
separatorBuilder: (context, index) => 8.height, separatorBuilder: (context, index) => 8.height,

Loading…
Cancel
Save