Invoices
This commit is contained in:
parent
06b4a07ebe
commit
817f141100
|
|
@ -15,6 +15,7 @@ class EntityDropdown extends StatefulWidget {
|
||||||
@required this.entityMap,
|
@required this.entityMap,
|
||||||
@required this.onFilterChanged,
|
@required this.onFilterChanged,
|
||||||
@required this.onSelected,
|
@required this.onSelected,
|
||||||
|
this.validator,
|
||||||
this.initialValue,
|
this.initialValue,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -25,6 +26,7 @@ class EntityDropdown extends StatefulWidget {
|
||||||
final String initialValue;
|
final String initialValue;
|
||||||
final Function(String) onFilterChanged;
|
final Function(String) onFilterChanged;
|
||||||
final Function(int) onSelected;
|
final Function(int) onSelected;
|
||||||
|
final Function validator;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_EntityDropdownState createState() => _EntityDropdownState();
|
_EntityDropdownState createState() => _EntityDropdownState();
|
||||||
|
|
@ -138,6 +140,7 @@ class _EntityDropdownState extends State<EntityDropdown> {
|
||||||
onTap: () => _showOptions(),
|
onTap: () => _showOptions(),
|
||||||
child: IgnorePointer(
|
child: IgnorePointer(
|
||||||
child: TextFormField(
|
child: TextFormField(
|
||||||
|
validator: widget.validator,
|
||||||
controller: _textController,
|
controller: _textController,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
labelText: widget.labelText,
|
labelText: widget.labelText,
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class InvoiceEditDetails extends StatefulWidget {
|
||||||
InvoiceEditDetailsState createState() => new InvoiceEditDetailsState();
|
InvoiceEditDetailsState createState() => new InvoiceEditDetailsState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
|
class InvoiceEditDetailsState extends State<InvoiceEditDetails> with AutomaticKeepAliveClientMixin {
|
||||||
final _invoiceNumberController = TextEditingController();
|
final _invoiceNumberController = TextEditingController();
|
||||||
final _invoiceDateController = TextEditingController();
|
final _invoiceDateController = TextEditingController();
|
||||||
final _poNumberController = TextEditingController();
|
final _poNumberController = TextEditingController();
|
||||||
|
|
@ -29,6 +29,9 @@ class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
|
||||||
|
|
||||||
List _controllers = [];
|
List _controllers = [];
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool get wantKeepAlive => true;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void didChangeDependencies() {
|
void didChangeDependencies() {
|
||||||
_controllers = [
|
_controllers = [
|
||||||
|
|
@ -98,6 +101,9 @@ class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
|
||||||
viewModel.clientMap[invoice.clientId]?.displayName,
|
viewModel.clientMap[invoice.clientId]?.displayName,
|
||||||
entityList: viewModel.clientList,
|
entityList: viewModel.clientList,
|
||||||
entityMap: viewModel.clientMap,
|
entityMap: viewModel.clientMap,
|
||||||
|
validator: (String val) => val.trim().isEmpty
|
||||||
|
? AppLocalization.of(context).pleaseSelectAClient
|
||||||
|
: null,
|
||||||
onFilterChanged: viewModel.onEntityFilterChanged,
|
onFilterChanged: viewModel.onEntityFilterChanged,
|
||||||
onSelected: (clientId) {
|
onSelected: (clientId) {
|
||||||
viewModel.onChanged(
|
viewModel.onChanged(
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ class ItemEditDetails extends StatefulWidget {
|
||||||
ItemEditDetailsState createState() => ItemEditDetailsState();
|
ItemEditDetailsState createState() => ItemEditDetailsState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class ItemEditDetailsState extends State<ItemEditDetails> {
|
class ItemEditDetailsState extends State<ItemEditDetails> with AutomaticKeepAliveClientMixin {
|
||||||
final _productKeyController = TextEditingController();
|
final _productKeyController = TextEditingController();
|
||||||
final _notesController = TextEditingController();
|
final _notesController = TextEditingController();
|
||||||
final _costController = TextEditingController();
|
final _costController = TextEditingController();
|
||||||
|
|
@ -66,6 +66,9 @@ class ItemEditDetailsState extends State<ItemEditDetails> {
|
||||||
|
|
||||||
var _controllers = [];
|
var _controllers = [];
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool get wantKeepAlive => true;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void didChangeDependencies() {
|
void didChangeDependencies() {
|
||||||
_controllers = [
|
_controllers = [
|
||||||
|
|
|
||||||
|
|
@ -143,6 +143,7 @@ class AppLocalization {
|
||||||
'edit': 'Edit',
|
'edit': 'Edit',
|
||||||
'dismiss': 'Dismiss',
|
'dismiss': 'Dismiss',
|
||||||
'please_select_a_date': 'Please select a date',
|
'please_select_a_date': 'Please select a date',
|
||||||
|
'please_select_a_client': 'Please select a client',
|
||||||
|
|
||||||
'payment': 'Payment',
|
'payment': 'Payment',
|
||||||
'payments': 'Payments',
|
'payments': 'Payments',
|
||||||
|
|
@ -296,6 +297,7 @@ class AppLocalization {
|
||||||
String get edit => _localizedValues[locale.languageCode]['edit'];
|
String get edit => _localizedValues[locale.languageCode]['edit'];
|
||||||
String get dismiss => _localizedValues[locale.languageCode]['dismiss'];
|
String get dismiss => _localizedValues[locale.languageCode]['dismiss'];
|
||||||
String get pleaseSelectADate => _localizedValues[locale.languageCode]['please_select_a_date'];
|
String get pleaseSelectADate => _localizedValues[locale.languageCode]['please_select_a_date'];
|
||||||
|
String get pleaseSelectAClient => _localizedValues[locale.languageCode]['please_select_a_client'];
|
||||||
|
|
||||||
String get payment => _localizedValues[locale.languageCode]['payment'];
|
String get payment => _localizedValues[locale.languageCode]['payment'];
|
||||||
String get payments => _localizedValues[locale.languageCode]['payments'];
|
String get payments => _localizedValues[locale.languageCode]['payments'];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue