|
|
|
@ -26,133 +26,66 @@ class _PentryPMKitFormState extends State<PentryPMKitForm> {
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
final subtitle = AppLocalization.of(context).subtitle;
|
|
|
|
|
return ListView.builder(
|
|
|
|
|
padding: EdgeInsets.only(
|
|
|
|
|
top: 12 * AppStyle.getScaleFactor(context), left: 12 * AppStyle.getScaleFactor(context), right: 12 * AppStyle.getScaleFactor(context), bottom: 80 * AppStyle.getScaleFactor(context)),
|
|
|
|
|
itemCount: widget.models.length + 1,
|
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
|
if (index == widget.models.length) {
|
|
|
|
|
return AButton(
|
|
|
|
|
text: subtitle.add,
|
|
|
|
|
onPressed: () {
|
|
|
|
|
widget.models.add(PMKit());
|
|
|
|
|
setState(() {});
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
final model = widget.models[index];
|
|
|
|
|
return ListView(
|
|
|
|
|
shrinkWrap: true,
|
|
|
|
|
physics: const ClampingScrollPhysics(),
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
|
children: [
|
|
|
|
|
ASubTitle("#${index + 1}"),
|
|
|
|
|
if (index != 0)
|
|
|
|
|
ASmallButton(
|
|
|
|
|
color: Theme.of(context).colorScheme.error,
|
|
|
|
|
text: subtitle.delete,
|
|
|
|
|
onPressed: () {
|
|
|
|
|
widget.models.remove(model);
|
|
|
|
|
setState(() {});
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
const SizedBox(
|
|
|
|
|
height: 8,
|
|
|
|
|
),
|
|
|
|
|
const ASubTitle("Item Code"),
|
|
|
|
|
const SizedBox(
|
|
|
|
|
height: 4,
|
|
|
|
|
),
|
|
|
|
|
AutoCompletePartsField(
|
|
|
|
|
clearAfterPick: false,
|
|
|
|
|
initialValue: (model.itemCode?.name ?? "").toString(),
|
|
|
|
|
onPick: (part) {
|
|
|
|
|
model.itemCode = Lookup(id: part.id, name: part.code);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
const SizedBox(
|
|
|
|
|
height: 8,
|
|
|
|
|
),
|
|
|
|
|
// const ASubTitle("Item Name"),
|
|
|
|
|
// const SizedBox(height: 4,),
|
|
|
|
|
// ATextFormField(
|
|
|
|
|
// initialValue: (model.itemName ?? "").toString(),
|
|
|
|
|
// textAlign: TextAlign.center,
|
|
|
|
|
// style: Theme.of(context).textTheme.subtitle1,
|
|
|
|
|
// textInputType: TextInputType.text,
|
|
|
|
|
// onChange: (value){
|
|
|
|
|
// model.itemName = value;
|
|
|
|
|
// },
|
|
|
|
|
// ),
|
|
|
|
|
// const SizedBox(height: 8,),
|
|
|
|
|
// const ASubTitle("Preparation Time Frame"),
|
|
|
|
|
// const SizedBox(height: 4,),
|
|
|
|
|
// ATextFormField(
|
|
|
|
|
// initialValue: (model.preparationTimeFrame ?? "").toString(),
|
|
|
|
|
// textAlign: TextAlign.center,
|
|
|
|
|
// style: Theme.of(context).textTheme.subtitle1,
|
|
|
|
|
// textInputType: TextInputType.text,
|
|
|
|
|
// onChange: (value){
|
|
|
|
|
// model.preparationTimeFrame = value;
|
|
|
|
|
// },
|
|
|
|
|
// ),
|
|
|
|
|
// const SizedBox(height: 8,),
|
|
|
|
|
// const ASubTitle("kit Frequency Demand"),
|
|
|
|
|
// const SizedBox(height: 4,),
|
|
|
|
|
// ATextFormField(
|
|
|
|
|
// initialValue: (model.kitFrequencyDemand ?? "").toString(),
|
|
|
|
|
// textAlign: TextAlign.center,
|
|
|
|
|
// style: Theme.of(context).textTheme.subtitle1,
|
|
|
|
|
// textInputType: TextInputType.text,
|
|
|
|
|
// onChange: (value){
|
|
|
|
|
// model.kitFrequencyDemand = value;
|
|
|
|
|
// },
|
|
|
|
|
// ),
|
|
|
|
|
// const SizedBox(height: 8,),
|
|
|
|
|
// const ASubTitle("Availability"),
|
|
|
|
|
// const SizedBox(height: 4,),
|
|
|
|
|
// ATextFormField(
|
|
|
|
|
// initialValue: (model.availability ?? "").toString(),
|
|
|
|
|
// textAlign: TextAlign.center,
|
|
|
|
|
// style: Theme.of(context).textTheme.subtitle1,
|
|
|
|
|
// textInputType: TextInputType.text,
|
|
|
|
|
// onChange: (value){
|
|
|
|
|
// model.availability = value;
|
|
|
|
|
// },
|
|
|
|
|
// ),
|
|
|
|
|
// const SizedBox(height: 8,),
|
|
|
|
|
// const ASubTitle("Quantity Needed"),
|
|
|
|
|
// const SizedBox(height: 4,),
|
|
|
|
|
// ATextFormField(
|
|
|
|
|
// initialValue: (model.quantityNeeded ?? "").toString(),
|
|
|
|
|
// textAlign: TextAlign.center,
|
|
|
|
|
// style: Theme.of(context).textTheme.subtitle1,
|
|
|
|
|
// textInputType: TextInputType.number,
|
|
|
|
|
// onChange: (value){
|
|
|
|
|
// model.quantityNeeded = value;
|
|
|
|
|
// },
|
|
|
|
|
// ),
|
|
|
|
|
// const SizedBox(height: 8,),
|
|
|
|
|
// const ASubTitle("Quantity Reserved"),
|
|
|
|
|
// const SizedBox(height: 4,),
|
|
|
|
|
// ATextFormField(
|
|
|
|
|
// initialValue: (model.quantityReserved ?? "").toString(),
|
|
|
|
|
// textAlign: TextAlign.center,
|
|
|
|
|
// style: Theme.of(context).textTheme.subtitle1,
|
|
|
|
|
// textInputType: TextInputType.number,
|
|
|
|
|
// onChange: (value){
|
|
|
|
|
// model.quantityReserved = value;
|
|
|
|
|
// },
|
|
|
|
|
// ),
|
|
|
|
|
// const SizedBox(height: 8,),
|
|
|
|
|
Divider(
|
|
|
|
|
color: Theme.of(context).textTheme.titleMedium.color,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
padding: EdgeInsets.only(
|
|
|
|
|
top: 12 * AppStyle.getScaleFactor(context),
|
|
|
|
|
left: 12 * AppStyle.getScaleFactor(context),
|
|
|
|
|
right: 12 * AppStyle.getScaleFactor(context),
|
|
|
|
|
bottom: 100 * AppStyle.getScaleFactor(context) + MediaQuery.of(context).padding.bottom,
|
|
|
|
|
),
|
|
|
|
|
itemCount: widget.models.length + 1,
|
|
|
|
|
shrinkWrap: true,
|
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
|
if (index == widget.models.length) {
|
|
|
|
|
return AButton(
|
|
|
|
|
text: subtitle.add,
|
|
|
|
|
onPressed: () {
|
|
|
|
|
widget.models.add(PMKit());
|
|
|
|
|
setState(() {});
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
final model = widget.models[index];
|
|
|
|
|
return Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
|
children: [
|
|
|
|
|
ASubTitle("#${index + 1}"),
|
|
|
|
|
if (index != 0)
|
|
|
|
|
ASmallButton(
|
|
|
|
|
color: Theme.of(context).colorScheme.error,
|
|
|
|
|
text: subtitle.delete,
|
|
|
|
|
onPressed: () {
|
|
|
|
|
widget.models.remove(model);
|
|
|
|
|
setState(() {});
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
const SizedBox(
|
|
|
|
|
height: 8,
|
|
|
|
|
),
|
|
|
|
|
const ASubTitle("Item Code"),
|
|
|
|
|
const SizedBox(
|
|
|
|
|
height: 4,
|
|
|
|
|
),
|
|
|
|
|
AutoCompletePartsField(
|
|
|
|
|
clearAfterPick: false,
|
|
|
|
|
initialValue: (model.itemCode?.name ?? "").toString(),
|
|
|
|
|
onPick: (part) {
|
|
|
|
|
model.itemCode = Lookup(id: part.id, name: part.code);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
const SizedBox(
|
|
|
|
|
height: 8,
|
|
|
|
|
),
|
|
|
|
|
Divider(
|
|
|
|
|
color: Theme.of(context).textTheme.titleMedium.color,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|