179 lines
5.2 KiB
Dart
179 lines
5.2 KiB
Dart
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:intl/intl.dart';
|
|
|
|
import '../../../domain/vo/local_step.dart';
|
|
import '../../../helpers/theme.dart';
|
|
import '../../widgets/local_text.dart';
|
|
import '../../widgets/progress.dart';
|
|
import '../../widgets/step_widget.dart';
|
|
import 'type_widget.dart';
|
|
|
|
class MixCartonEditor extends StatefulWidget {
|
|
const MixCartonEditor({
|
|
Key? key,
|
|
}) : super(key: key);
|
|
|
|
@override
|
|
State<MixCartonEditor> createState() => _MixCartonEditorState();
|
|
}
|
|
|
|
class _MixCartonEditorState extends State<MixCartonEditor> {
|
|
var dateFormatter = DateFormat('dd MMM yyyy');
|
|
final NumberFormat numberFormatter = NumberFormat("#,###");
|
|
List<LocalStep> steps = [
|
|
LocalStep(lable: 'Type', stepType: StepType.TYPE),
|
|
LocalStep(lable: 'Cartons', stepType: StepType.CARTONS),
|
|
LocalStep(lable: 'Submit', stepType: StepType.SUBMIT)
|
|
];
|
|
|
|
bool _isLoading = false;
|
|
int currentStep = 0;
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return WillPopScope(
|
|
onWillPop: () {
|
|
if (currentStep == 0) {
|
|
Navigator.of(context).pop();
|
|
}
|
|
if (currentStep > 0) {
|
|
setState(() {
|
|
currentStep -= 1;
|
|
});
|
|
}
|
|
|
|
return Future.value(false);
|
|
},
|
|
child: LocalProgress(
|
|
inAsyncCall: _isLoading,
|
|
child: Scaffold(
|
|
appBar: AppBar(
|
|
elevation: 0,
|
|
centerTitle: true,
|
|
leading: IconButton(
|
|
icon: const Icon(CupertinoIcons.back,
|
|
color: primaryColor, size: 25),
|
|
onPressed: () {
|
|
if (currentStep == 0) {
|
|
Navigator.of(context).pop();
|
|
}
|
|
if (currentStep > 0) {
|
|
setState(() {
|
|
currentStep -= 1;
|
|
});
|
|
}
|
|
},
|
|
),
|
|
backgroundColor: Colors.white,
|
|
title: LocalText(context, 'boxes.new',
|
|
color: primaryColor, fontSize: 20),
|
|
),
|
|
body: Column(
|
|
children: [
|
|
StepperWidget(
|
|
labels: steps.map((e) => e.lable).toList(),
|
|
currentStep: currentStep,
|
|
eachStepWidth: 120,
|
|
onChange: (index) {
|
|
if (index > currentStep) {
|
|
return;
|
|
}
|
|
setState(() {
|
|
currentStep = index;
|
|
});
|
|
},
|
|
),
|
|
getContent(currentStep)
|
|
],
|
|
))),
|
|
);
|
|
}
|
|
|
|
Widget getContent(int index) {
|
|
var step = steps[index];
|
|
if (step.stepType == StepType.TYPE) {
|
|
return Expanded(child: TypeWidget(
|
|
onPrevious: () {
|
|
Navigator.pop(context);
|
|
},
|
|
// warehouse: _warehouse,
|
|
// onSelectWarehouse: (w) {
|
|
// setState(() {
|
|
// _warehouse = w;
|
|
// currentStep += 1;
|
|
// });
|
|
// },
|
|
));
|
|
} else if (step.stepType == StepType.CARTONS) {
|
|
return Expanded(
|
|
child: Text("cartons"),
|
|
// child: StockAdjustmentProducts(
|
|
// products: products,
|
|
// onAdd: (ps) {
|
|
// setState(() {
|
|
// products = List.from(ps);
|
|
// });
|
|
// },
|
|
// onRemove: (p) {
|
|
// setState(() {
|
|
// products.removeWhere((e) => e.id == p.id);
|
|
// });
|
|
// },
|
|
// onRemoveAll: (ps) {
|
|
// for (var e in ps) {
|
|
// setState(() {
|
|
// products.removeWhere((p) => p.id == e.id);
|
|
// });
|
|
// }
|
|
// },
|
|
// onContinue: (ps) {
|
|
// if (products.isEmpty) {
|
|
// showMsgDialog(context, 'Error', "Please select product");
|
|
// return false;
|
|
// }
|
|
// setState(() {
|
|
// products = List.from(ps);
|
|
// currentStep += 1;
|
|
// });
|
|
// },
|
|
// onPrevious: (ps) {
|
|
// setState(() {
|
|
// products = List.from(ps);
|
|
// currentStep -= 1;
|
|
// });
|
|
// },
|
|
// ),
|
|
);
|
|
} else {
|
|
return Expanded(
|
|
child: Text("Submit"),
|
|
// child: StockAdjustmentSubmit(
|
|
// warehouse: _warehouse?.name,
|
|
// products: products,
|
|
// onCreate: () {
|
|
// if (user != null && user.hasInventoryCreate()) {
|
|
// showConfirmDialog(context, 'stock_adjustment_confirm', _create);
|
|
// } else {
|
|
// showDialog(
|
|
// context: context,
|
|
// builder: (BuildContext context) => const AuthorizedDialog(
|
|
// uiFunction: funcInventoriesCreate));
|
|
// }
|
|
// },
|
|
// onPrevious: () {
|
|
// setState(() {
|
|
// currentStep -= 1;
|
|
// });
|
|
// },
|
|
// ),
|
|
);
|
|
}
|
|
}
|
|
}
|