Payment terms
This commit is contained in:
parent
3e66f7ea24
commit
7a7c17be5a
|
|
@ -96,6 +96,7 @@ abstract class CompanyEntity extends Object
|
||||||
projects: BuiltList<ProjectEntity>(),
|
projects: BuiltList<ProjectEntity>(),
|
||||||
vendors: BuiltList<VendorEntity>(),
|
vendors: BuiltList<VendorEntity>(),
|
||||||
designs: BuiltList<DesignEntity>(),
|
designs: BuiltList<DesignEntity>(),
|
||||||
|
paymentTerms: BuiltList<PaymentTermEntity>(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -215,6 +216,8 @@ abstract class CompanyEntity extends Object
|
||||||
|
|
||||||
BuiltList<DesignEntity> get designs;
|
BuiltList<DesignEntity> get designs;
|
||||||
|
|
||||||
|
BuiltList<PaymentTermEntity> get paymentTerms;
|
||||||
|
|
||||||
BuiltMap<String, UserEntity> get userMap;
|
BuiltMap<String, UserEntity> get userMap;
|
||||||
|
|
||||||
@BuiltValueField(wireName: 'custom_fields')
|
@BuiltValueField(wireName: 'custom_fields')
|
||||||
|
|
|
||||||
|
|
@ -173,6 +173,10 @@ class _$CompanyEntitySerializer implements StructuredSerializer<CompanyEntity> {
|
||||||
serializers.serialize(object.designs,
|
serializers.serialize(object.designs,
|
||||||
specifiedType:
|
specifiedType:
|
||||||
const FullType(BuiltList, const [const FullType(DesignEntity)])),
|
const FullType(BuiltList, const [const FullType(DesignEntity)])),
|
||||||
|
'paymentTerms',
|
||||||
|
serializers.serialize(object.paymentTerms,
|
||||||
|
specifiedType: const FullType(
|
||||||
|
BuiltList, const [const FullType(PaymentTermEntity)])),
|
||||||
'userMap',
|
'userMap',
|
||||||
serializers.serialize(object.userMap,
|
serializers.serialize(object.userMap,
|
||||||
specifiedType: const FullType(BuiltMap,
|
specifiedType: const FullType(BuiltMap,
|
||||||
|
|
@ -484,6 +488,12 @@ class _$CompanyEntitySerializer implements StructuredSerializer<CompanyEntity> {
|
||||||
BuiltList, const [const FullType(DesignEntity)]))
|
BuiltList, const [const FullType(DesignEntity)]))
|
||||||
as BuiltList<Object>);
|
as BuiltList<Object>);
|
||||||
break;
|
break;
|
||||||
|
case 'paymentTerms':
|
||||||
|
result.paymentTerms.replace(serializers.deserialize(value,
|
||||||
|
specifiedType: const FullType(
|
||||||
|
BuiltList, const [const FullType(PaymentTermEntity)]))
|
||||||
|
as BuiltList<Object>);
|
||||||
|
break;
|
||||||
case 'userMap':
|
case 'userMap':
|
||||||
result.userMap.replace(serializers.deserialize(value,
|
result.userMap.replace(serializers.deserialize(value,
|
||||||
specifiedType: const FullType(BuiltMap,
|
specifiedType: const FullType(BuiltMap,
|
||||||
|
|
@ -2726,6 +2736,8 @@ class _$CompanyEntity extends CompanyEntity {
|
||||||
@override
|
@override
|
||||||
final BuiltList<DesignEntity> designs;
|
final BuiltList<DesignEntity> designs;
|
||||||
@override
|
@override
|
||||||
|
final BuiltList<PaymentTermEntity> paymentTerms;
|
||||||
|
@override
|
||||||
final BuiltMap<String, UserEntity> userMap;
|
final BuiltMap<String, UserEntity> userMap;
|
||||||
@override
|
@override
|
||||||
final BuiltMap<String, String> customFields;
|
final BuiltMap<String, String> customFields;
|
||||||
|
|
@ -2801,6 +2813,7 @@ class _$CompanyEntity extends CompanyEntity {
|
||||||
this.expenses,
|
this.expenses,
|
||||||
this.vendors,
|
this.vendors,
|
||||||
this.designs,
|
this.designs,
|
||||||
|
this.paymentTerms,
|
||||||
this.userMap,
|
this.userMap,
|
||||||
this.customFields,
|
this.customFields,
|
||||||
this.slackWebhookUrl,
|
this.slackWebhookUrl,
|
||||||
|
|
@ -2940,6 +2953,9 @@ class _$CompanyEntity extends CompanyEntity {
|
||||||
if (designs == null) {
|
if (designs == null) {
|
||||||
throw new BuiltValueNullFieldError('CompanyEntity', 'designs');
|
throw new BuiltValueNullFieldError('CompanyEntity', 'designs');
|
||||||
}
|
}
|
||||||
|
if (paymentTerms == null) {
|
||||||
|
throw new BuiltValueNullFieldError('CompanyEntity', 'paymentTerms');
|
||||||
|
}
|
||||||
if (userMap == null) {
|
if (userMap == null) {
|
||||||
throw new BuiltValueNullFieldError('CompanyEntity', 'userMap');
|
throw new BuiltValueNullFieldError('CompanyEntity', 'userMap');
|
||||||
}
|
}
|
||||||
|
|
@ -3009,6 +3025,7 @@ class _$CompanyEntity extends CompanyEntity {
|
||||||
expenses == other.expenses &&
|
expenses == other.expenses &&
|
||||||
vendors == other.vendors &&
|
vendors == other.vendors &&
|
||||||
designs == other.designs &&
|
designs == other.designs &&
|
||||||
|
paymentTerms == other.paymentTerms &&
|
||||||
userMap == other.userMap &&
|
userMap == other.userMap &&
|
||||||
customFields == other.customFields &&
|
customFields == other.customFields &&
|
||||||
slackWebhookUrl == other.slackWebhookUrl &&
|
slackWebhookUrl == other.slackWebhookUrl &&
|
||||||
|
|
@ -3047,11 +3064,11 @@ class _$CompanyEntity extends CompanyEntity {
|
||||||
$jc(
|
$jc(
|
||||||
$jc(
|
$jc(
|
||||||
$jc(
|
$jc(
|
||||||
$jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc(0, enableCustomSurchargeTaxes1.hashCode), enableCustomSurchargeTaxes2.hashCode), enableCustomSurchargeTaxes3.hashCode), enableCustomSurchargeTaxes4.hashCode), sizeId.hashCode), industryId.hashCode), subdomain.hashCode), portalMode.hashCode), portalDomain.hashCode), updateProducts.hashCode), convertProductExchangeRate.hashCode), fillProducts.hashCode), enableProductCost.hashCode), enableProductQuantity.hashCode), defaultQuantity.hashCode), showProductDetails.hashCode), plan.hashCode), companyKey.hashCode), appUrl.hashCode), firstDayOfWeek.hashCode), firstMonthOfYear.hashCode), groups.hashCode), activities.hashCode), taxRates.hashCode), taskStatuses.hashCode), taskStatusMap.hashCode), companyGateways.hashCode), expenseCategories.hashCode), expenseCategoryMap.hashCode), users.hashCode), clients.hashCode), products.hashCode), invoices.hashCode), payments.hashCode), quotes.hashCode), credits.hashCode), tasks.hashCode),
|
$jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc(0, enableCustomSurchargeTaxes1.hashCode), enableCustomSurchargeTaxes2.hashCode), enableCustomSurchargeTaxes3.hashCode), enableCustomSurchargeTaxes4.hashCode), sizeId.hashCode), industryId.hashCode), subdomain.hashCode), portalMode.hashCode), portalDomain.hashCode), updateProducts.hashCode), convertProductExchangeRate.hashCode), fillProducts.hashCode), enableProductCost.hashCode), enableProductQuantity.hashCode), defaultQuantity.hashCode), showProductDetails.hashCode), plan.hashCode), companyKey.hashCode), appUrl.hashCode), firstDayOfWeek.hashCode), firstMonthOfYear.hashCode), groups.hashCode), activities.hashCode), taxRates.hashCode), taskStatuses.hashCode), taskStatusMap.hashCode), companyGateways.hashCode), expenseCategories.hashCode), expenseCategoryMap.hashCode), users.hashCode), clients.hashCode), products.hashCode), invoices.hashCode), payments.hashCode), quotes.hashCode), credits.hashCode), tasks.hashCode), projects.hashCode),
|
||||||
projects.hashCode),
|
expenses.hashCode),
|
||||||
expenses.hashCode),
|
vendors.hashCode),
|
||||||
vendors.hashCode),
|
designs.hashCode),
|
||||||
designs.hashCode),
|
paymentTerms.hashCode),
|
||||||
userMap.hashCode),
|
userMap.hashCode),
|
||||||
customFields.hashCode),
|
customFields.hashCode),
|
||||||
slackWebhookUrl.hashCode),
|
slackWebhookUrl.hashCode),
|
||||||
|
|
@ -3113,6 +3130,7 @@ class _$CompanyEntity extends CompanyEntity {
|
||||||
..add('expenses', expenses)
|
..add('expenses', expenses)
|
||||||
..add('vendors', vendors)
|
..add('vendors', vendors)
|
||||||
..add('designs', designs)
|
..add('designs', designs)
|
||||||
|
..add('paymentTerms', paymentTerms)
|
||||||
..add('userMap', userMap)
|
..add('userMap', userMap)
|
||||||
..add('customFields', customFields)
|
..add('customFields', customFields)
|
||||||
..add('slackWebhookUrl', slackWebhookUrl)
|
..add('slackWebhookUrl', slackWebhookUrl)
|
||||||
|
|
@ -3346,6 +3364,12 @@ class CompanyEntityBuilder
|
||||||
_$this._designs ??= new ListBuilder<DesignEntity>();
|
_$this._designs ??= new ListBuilder<DesignEntity>();
|
||||||
set designs(ListBuilder<DesignEntity> designs) => _$this._designs = designs;
|
set designs(ListBuilder<DesignEntity> designs) => _$this._designs = designs;
|
||||||
|
|
||||||
|
ListBuilder<PaymentTermEntity> _paymentTerms;
|
||||||
|
ListBuilder<PaymentTermEntity> get paymentTerms =>
|
||||||
|
_$this._paymentTerms ??= new ListBuilder<PaymentTermEntity>();
|
||||||
|
set paymentTerms(ListBuilder<PaymentTermEntity> paymentTerms) =>
|
||||||
|
_$this._paymentTerms = paymentTerms;
|
||||||
|
|
||||||
MapBuilder<String, UserEntity> _userMap;
|
MapBuilder<String, UserEntity> _userMap;
|
||||||
MapBuilder<String, UserEntity> get userMap =>
|
MapBuilder<String, UserEntity> get userMap =>
|
||||||
_$this._userMap ??= new MapBuilder<String, UserEntity>();
|
_$this._userMap ??= new MapBuilder<String, UserEntity>();
|
||||||
|
|
@ -3462,6 +3486,7 @@ class CompanyEntityBuilder
|
||||||
_expenses = _$v.expenses?.toBuilder();
|
_expenses = _$v.expenses?.toBuilder();
|
||||||
_vendors = _$v.vendors?.toBuilder();
|
_vendors = _$v.vendors?.toBuilder();
|
||||||
_designs = _$v.designs?.toBuilder();
|
_designs = _$v.designs?.toBuilder();
|
||||||
|
_paymentTerms = _$v.paymentTerms?.toBuilder();
|
||||||
_userMap = _$v.userMap?.toBuilder();
|
_userMap = _$v.userMap?.toBuilder();
|
||||||
_customFields = _$v.customFields?.toBuilder();
|
_customFields = _$v.customFields?.toBuilder();
|
||||||
_slackWebhookUrl = _$v.slackWebhookUrl;
|
_slackWebhookUrl = _$v.slackWebhookUrl;
|
||||||
|
|
@ -3542,6 +3567,7 @@ class CompanyEntityBuilder
|
||||||
expenses: expenses.build(),
|
expenses: expenses.build(),
|
||||||
vendors: vendors.build(),
|
vendors: vendors.build(),
|
||||||
designs: designs.build(),
|
designs: designs.build(),
|
||||||
|
paymentTerms: paymentTerms.build(),
|
||||||
userMap: userMap.build(),
|
userMap: userMap.build(),
|
||||||
customFields: customFields.build(),
|
customFields: customFields.build(),
|
||||||
slackWebhookUrl: slackWebhookUrl,
|
slackWebhookUrl: slackWebhookUrl,
|
||||||
|
|
@ -3600,6 +3626,8 @@ class CompanyEntityBuilder
|
||||||
vendors.build();
|
vendors.build();
|
||||||
_$failedField = 'designs';
|
_$failedField = 'designs';
|
||||||
designs.build();
|
designs.build();
|
||||||
|
_$failedField = 'paymentTerms';
|
||||||
|
paymentTerms.build();
|
||||||
_$failedField = 'userMap';
|
_$failedField = 'userMap';
|
||||||
userMap.build();
|
userMap.build();
|
||||||
_$failedField = 'customFields';
|
_$failedField = 'customFields';
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,7 @@ class EntityType extends EnumClass {
|
||||||
EntityType.companyGateway,
|
EntityType.companyGateway,
|
||||||
EntityType.user,
|
EntityType.user,
|
||||||
EntityType.group,
|
EntityType.group,
|
||||||
|
EntityType.design,
|
||||||
].contains(this);
|
].contains(this);
|
||||||
|
|
||||||
List<EntityType> get relatedTypes {
|
List<EntityType> get relatedTypes {
|
||||||
|
|
|
||||||
|
|
@ -292,8 +292,10 @@ Serializers _$serializers = (new Serializers().toBuilder()
|
||||||
BuiltList, const [const FullType(ExpenseCategoryEntity)]),
|
BuiltList, const [const FullType(ExpenseCategoryEntity)]),
|
||||||
() => new ListBuilder<ExpenseCategoryEntity>())
|
() => new ListBuilder<ExpenseCategoryEntity>())
|
||||||
..addBuilderFactory(
|
..addBuilderFactory(
|
||||||
const FullType(BuiltMap,
|
const FullType(BuiltMap, const [
|
||||||
const [const FullType(String), const FullType(ExpenseCategoryEntity)]),
|
const FullType(String),
|
||||||
|
const FullType(ExpenseCategoryEntity)
|
||||||
|
]),
|
||||||
() => new MapBuilder<String, ExpenseCategoryEntity>())
|
() => new MapBuilder<String, ExpenseCategoryEntity>())
|
||||||
..addBuilderFactory(
|
..addBuilderFactory(
|
||||||
const FullType(BuiltList, const [const FullType(UserEntity)]),
|
const FullType(BuiltList, const [const FullType(UserEntity)]),
|
||||||
|
|
@ -331,6 +333,9 @@ Serializers _$serializers = (new Serializers().toBuilder()
|
||||||
..addBuilderFactory(
|
..addBuilderFactory(
|
||||||
const FullType(BuiltList, const [const FullType(DesignEntity)]),
|
const FullType(BuiltList, const [const FullType(DesignEntity)]),
|
||||||
() => new ListBuilder<DesignEntity>())
|
() => new ListBuilder<DesignEntity>())
|
||||||
|
..addBuilderFactory(
|
||||||
|
const FullType(BuiltList, const [const FullType(PaymentTermEntity)]),
|
||||||
|
() => new ListBuilder<PaymentTermEntity>())
|
||||||
..addBuilderFactory(
|
..addBuilderFactory(
|
||||||
const FullType(BuiltMap,
|
const FullType(BuiltMap,
|
||||||
const [const FullType(String), const FullType(UserEntity)]),
|
const [const FullType(String), const FullType(UserEntity)]),
|
||||||
|
|
@ -355,10 +360,8 @@ Serializers _$serializers = (new Serializers().toBuilder()
|
||||||
const FullType(BuiltList, const [const FullType(InvoiceItemEntity)]),
|
const FullType(BuiltList, const [const FullType(InvoiceItemEntity)]),
|
||||||
() => new ListBuilder<InvoiceItemEntity>())
|
() => new ListBuilder<InvoiceItemEntity>())
|
||||||
..addBuilderFactory(
|
..addBuilderFactory(
|
||||||
const FullType(BuiltList, const [const FullType(InvitationEntity)]),
|
const FullType(BuiltList, const [const FullType(InvitationEntity)]), () => new ListBuilder<InvitationEntity>())
|
||||||
() => new ListBuilder<InvitationEntity>())
|
..addBuilderFactory(const FullType(BuiltList, const [const FullType(LanguageEntity)]), () => new ListBuilder<LanguageEntity>())
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(LanguageEntity)]), () => new ListBuilder<LanguageEntity>())
|
|
||||||
..addBuilderFactory(const FullType(BuiltList, const [const FullType(PaymentEntity)]), () => new ListBuilder<PaymentEntity>())
|
..addBuilderFactory(const FullType(BuiltList, const [const FullType(PaymentEntity)]), () => new ListBuilder<PaymentEntity>())
|
||||||
..addBuilderFactory(const FullType(BuiltList, const [const FullType(PaymentTermEntity)]), () => new ListBuilder<PaymentTermEntity>())
|
..addBuilderFactory(const FullType(BuiltList, const [const FullType(PaymentTermEntity)]), () => new ListBuilder<PaymentTermEntity>())
|
||||||
..addBuilderFactory(const FullType(BuiltList, const [const FullType(PaymentTypeEntity)]), () => new ListBuilder<PaymentTypeEntity>())
|
..addBuilderFactory(const FullType(BuiltList, const [const FullType(PaymentTypeEntity)]), () => new ListBuilder<PaymentTypeEntity>())
|
||||||
|
|
|
||||||
|
|
@ -411,7 +411,7 @@ Middleware<AppState> _createAccountLoaded() {
|
||||||
store.dispatch(SelectCompany(i));
|
store.dispatch(SelectCompany(i));
|
||||||
store.dispatch(LoadCompanySuccess(userCompany));
|
store.dispatch(LoadCompanySuccess(userCompany));
|
||||||
|
|
||||||
// TODO remove this code
|
// TODO remove this code/use reducers instead
|
||||||
final company = userCompany.company;
|
final company = userCompany.company;
|
||||||
if (company.clients.isNotEmpty) {
|
if (company.clients.isNotEmpty) {
|
||||||
store.dispatch(LoadClientsSuccess(company.clients));
|
store.dispatch(LoadClientsSuccess(company.clients));
|
||||||
|
|
|
||||||
|
|
@ -561,6 +561,7 @@ abstract class AppState implements Built<AppState, AppStateBuilder> {
|
||||||
//return 'PLAN: ${account.plan}';
|
//return 'PLAN: ${account.plan}';
|
||||||
//return 'Invoice ${invoiceUIState.editing}';
|
//return 'Invoice ${invoiceUIState.editing}';
|
||||||
//return 'Account: $account';
|
//return 'Account: $account';
|
||||||
|
return 'Payment Terms: ${paymentTermState.map}';
|
||||||
return 'Selected client: ${uiState.clientUIState.selectedId}, Filter: ${uiState.filterEntityType} ${uiState.filterEntityId}';
|
return 'Selected client: ${uiState.clientUIState.selectedId}, Filter: ${uiState.filterEntityType} ${uiState.filterEntityId}';
|
||||||
return 'Layout: ${prefState.appLayout}, Route: ${uiState.currentRoute} Prev: ${uiState.previousRoute}';
|
return 'Layout: ${prefState.appLayout}, Route: ${uiState.currentRoute} Prev: ${uiState.previousRoute}';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -160,6 +160,7 @@ final paymentTermsReducer = combineReducers<PaymentTermState>([
|
||||||
TypedReducer<PaymentTermState, LoadPaymentTermsSuccess>(
|
TypedReducer<PaymentTermState, LoadPaymentTermsSuccess>(
|
||||||
_setLoadedPaymentTerms),
|
_setLoadedPaymentTerms),
|
||||||
TypedReducer<PaymentTermState, LoadPaymentTermSuccess>(_setLoadedPaymentTerm),
|
TypedReducer<PaymentTermState, LoadPaymentTermSuccess>(_setLoadedPaymentTerm),
|
||||||
|
TypedReducer<PaymentTermState, LoadCompanySuccess>(_setLoadedCompany),
|
||||||
TypedReducer<PaymentTermState, ArchivePaymentTermsRequest>(
|
TypedReducer<PaymentTermState, ArchivePaymentTermsRequest>(
|
||||||
_archivePaymentTermRequest),
|
_archivePaymentTermRequest),
|
||||||
TypedReducer<PaymentTermState, ArchivePaymentTermsSuccess>(
|
TypedReducer<PaymentTermState, ArchivePaymentTermsSuccess>(
|
||||||
|
|
@ -306,3 +307,16 @@ PaymentTermState _setLoadedPaymentTerm(
|
||||||
PaymentTermState _setLoadedPaymentTerms(
|
PaymentTermState _setLoadedPaymentTerms(
|
||||||
PaymentTermState paymentTermState, LoadPaymentTermsSuccess action) =>
|
PaymentTermState paymentTermState, LoadPaymentTermsSuccess action) =>
|
||||||
paymentTermState.loadPaymentTerms(action.paymentTerms);
|
paymentTermState.loadPaymentTerms(action.paymentTerms);
|
||||||
|
|
||||||
|
PaymentTermState _setLoadedCompany(
|
||||||
|
PaymentTermState paymentTermState, LoadCompanySuccess action) {
|
||||||
|
final state = paymentTermState.rebuild((b) => b
|
||||||
|
..lastUpdated = DateTime.now().millisecondsSinceEpoch
|
||||||
|
..map.addAll(Map.fromIterable(
|
||||||
|
action.userCompany.company.paymentTerms,
|
||||||
|
key: (dynamic item) => item.id,
|
||||||
|
value: (dynamic item) => item,
|
||||||
|
)));
|
||||||
|
|
||||||
|
return state.rebuild((b) => b..list.replace(state.map.keys));
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ class ListScaffold extends StatelessWidget {
|
||||||
const ListScaffold({
|
const ListScaffold({
|
||||||
@required this.appBarTitle,
|
@required this.appBarTitle,
|
||||||
@required this.body,
|
@required this.body,
|
||||||
this.entityType,
|
@required this.entityType,
|
||||||
this.appBarActions,
|
this.appBarActions,
|
||||||
this.bottomNavigationBar,
|
this.bottomNavigationBar,
|
||||||
this.floatingActionButton,
|
this.floatingActionButton,
|
||||||
|
|
@ -24,7 +24,6 @@ class ListScaffold extends StatelessWidget {
|
||||||
this.onCheckboxChanged,
|
this.onCheckboxChanged,
|
||||||
this.onHamburgerLongPress,
|
this.onHamburgerLongPress,
|
||||||
this.onBackPressed,
|
this.onBackPressed,
|
||||||
this.isSettings = false,
|
|
||||||
this.showCheckbox = false,
|
this.showCheckbox = false,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -34,7 +33,6 @@ class ListScaffold extends StatelessWidget {
|
||||||
final FloatingActionButton floatingActionButton;
|
final FloatingActionButton floatingActionButton;
|
||||||
final Widget appBarTitle;
|
final Widget appBarTitle;
|
||||||
final List<Widget> appBarActions;
|
final List<Widget> appBarActions;
|
||||||
final bool isSettings;
|
|
||||||
final bool showCheckbox;
|
final bool showCheckbox;
|
||||||
final Function(bool) onCheckboxChanged;
|
final Function(bool) onCheckboxChanged;
|
||||||
final Function() onHamburgerLongPress;
|
final Function() onHamburgerLongPress;
|
||||||
|
|
@ -46,6 +44,7 @@ class ListScaffold extends StatelessWidget {
|
||||||
final store = StoreProvider.of<AppState>(context);
|
final store = StoreProvider.of<AppState>(context);
|
||||||
final state = store.state;
|
final state = store.state;
|
||||||
final localization = AppLocalization.of(context);
|
final localization = AppLocalization.of(context);
|
||||||
|
final isSettings = entityType.isSetting;
|
||||||
|
|
||||||
Widget leading = SizedBox();
|
Widget leading = SizedBox();
|
||||||
if (showCheckbox && state.prefState.isModuleList) {
|
if (showCheckbox && state.prefState.isModuleList) {
|
||||||
|
|
|
||||||
|
|
@ -17,12 +17,10 @@ class ViewScaffold extends StatelessWidget {
|
||||||
this.title,
|
this.title,
|
||||||
this.floatingActionButton,
|
this.floatingActionButton,
|
||||||
this.appBarBottom,
|
this.appBarBottom,
|
||||||
this.isSettings = false,
|
|
||||||
this.isFilter = false,
|
this.isFilter = false,
|
||||||
this.onBackPressed,
|
this.onBackPressed,
|
||||||
});
|
});
|
||||||
|
|
||||||
final bool isSettings;
|
|
||||||
final bool isFilter;
|
final bool isFilter;
|
||||||
final BaseEntity entity;
|
final BaseEntity entity;
|
||||||
final String title;
|
final String title;
|
||||||
|
|
@ -36,6 +34,7 @@ class ViewScaffold extends StatelessWidget {
|
||||||
final store = StoreProvider.of<AppState>(context);
|
final store = StoreProvider.of<AppState>(context);
|
||||||
final state = store.state;
|
final state = store.state;
|
||||||
final userCompany = state.userCompany;
|
final userCompany = state.userCompany;
|
||||||
|
final isSettings = entity.entityType.isSetting;
|
||||||
|
|
||||||
Widget leading;
|
Widget leading;
|
||||||
if (!isMobile(context)) {
|
if (!isMobile(context)) {
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,6 @@ class CompanyGatewayScreen extends StatelessWidget {
|
||||||
handleCompanyGatewayAction(
|
handleCompanyGatewayAction(
|
||||||
context, companyGateways, EntityAction.toggleMultiselect);
|
context, companyGateways, EntityAction.toggleMultiselect);
|
||||||
},
|
},
|
||||||
isSettings: true,
|
|
||||||
appBarTitle: Text(localization.companyGateways),
|
appBarTitle: Text(localization.companyGateways),
|
||||||
appBarActions: [
|
appBarActions: [
|
||||||
if (viewModel.isInMultiselect)
|
if (viewModel.isInMultiselect)
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,6 @@ class _CompanyGatewayViewState extends State<CompanyGatewayView> {
|
||||||
isFilter: widget.isFilter,
|
isFilter: widget.isFilter,
|
||||||
entity: companyGateway,
|
entity: companyGateway,
|
||||||
onBackPressed: () => viewModel.onBackPressed(),
|
onBackPressed: () => viewModel.onBackPressed(),
|
||||||
isSettings: true,
|
|
||||||
body: ListView(
|
body: ListView(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,6 @@ class DesignScreen extends StatelessWidget {
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
entityType: EntityType.design,
|
entityType: EntityType.design,
|
||||||
isSettings: true,
|
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.designList.length,
|
listUIState.selectedIds.length == viewModel.designList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ class _DesignViewState extends State<DesignView> {
|
||||||
return ViewScaffold(
|
return ViewScaffold(
|
||||||
isFilter: widget.isFilter,
|
isFilter: widget.isFilter,
|
||||||
entity: design,
|
entity: design,
|
||||||
isSettings: true,
|
|
||||||
onBackPressed: () => viewModel.onBackPressed(),
|
onBackPressed: () => viewModel.onBackPressed(),
|
||||||
body: Placeholder(),
|
body: Placeholder(),
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,6 @@ class GroupSettingsScreen extends StatelessWidget {
|
||||||
|
|
||||||
handleGroupAction(context, groups, EntityAction.toggleMultiselect);
|
handleGroupAction(context, groups, EntityAction.toggleMultiselect);
|
||||||
},
|
},
|
||||||
isSettings: true,
|
|
||||||
appBarTitle: ListFilter(
|
appBarTitle: ListFilter(
|
||||||
placeholder: localization.searchGroups,
|
placeholder: localization.searchGroups,
|
||||||
filter: state.groupListState.filter,
|
filter: state.groupListState.filter,
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ class _GroupViewState extends State<GroupView> {
|
||||||
return ViewScaffold(
|
return ViewScaffold(
|
||||||
isFilter: widget.isFilter,
|
isFilter: widget.isFilter,
|
||||||
entity: group,
|
entity: group,
|
||||||
isSettings: true,
|
|
||||||
onBackPressed: () => viewModel.onBackPressed(),
|
onBackPressed: () => viewModel.onBackPressed(),
|
||||||
body: ListView(
|
body: ListView(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ class PaymentTermScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.paymentTerm,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.paymentTermList.length,
|
listUIState.selectedIds.length == viewModel.paymentTermList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart';
|
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/list_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/app/list_scaffold.dart';
|
||||||
|
|
@ -25,6 +26,7 @@ class SettingsScreen extends StatelessWidget {
|
||||||
final state = store.state;
|
final state = store.state;
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.settings,
|
||||||
appBarTitle: ListFilter(
|
appBarTitle: ListFilter(
|
||||||
placeholder: localization.searchSettings,
|
placeholder: localization.searchSettings,
|
||||||
filter: state.settingsUIState.filter,
|
filter: state.settingsUIState.filter,
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@ class TaxRateSettingsScreen extends StatelessWidget {
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
entityType: EntityType.taxRate,
|
entityType: EntityType.taxRate,
|
||||||
isSettings: true,
|
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.taxRateList.length,
|
listUIState.selectedIds.length == viewModel.taxRateList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,6 @@ class _TaxRateViewState extends State<TaxRateView> {
|
||||||
return ViewScaffold(
|
return ViewScaffold(
|
||||||
isFilter: widget.isFilter,
|
isFilter: widget.isFilter,
|
||||||
entity: taxRate,
|
entity: taxRate,
|
||||||
isSettings: true,
|
|
||||||
onBackPressed: () => viewModel.onBackPressed(),
|
onBackPressed: () => viewModel.onBackPressed(),
|
||||||
body: ListView(children: [
|
body: ListView(children: [
|
||||||
EntityHeader(
|
EntityHeader(
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,6 @@ class UserScreen extends StatelessWidget {
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
entityType: EntityType.user,
|
entityType: EntityType.user,
|
||||||
isSettings: true,
|
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.userList.length,
|
listUIState.selectedIds.length == viewModel.userList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,6 @@ class UserView extends StatelessWidget {
|
||||||
return ViewScaffold(
|
return ViewScaffold(
|
||||||
isFilter: isFilter,
|
isFilter: isFilter,
|
||||||
entity: user,
|
entity: user,
|
||||||
isSettings: true,
|
|
||||||
onBackPressed: () => viewModel.onBackPressed(),
|
onBackPressed: () => viewModel.onBackPressed(),
|
||||||
body: ListView(
|
body: ListView(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ class StubScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.stub,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.stubList.length,
|
listUIState.selectedIds.length == viewModel.stubList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue