Add run_template action

This commit is contained in:
Hillel Coren 2023-11-20 16:57:16 +02:00
parent 15a0daf596
commit 0ab3eb837b
2 changed files with 19 additions and 1 deletions

View File

@ -16,6 +16,7 @@ import 'package:invoiceninja_flutter/data/models/tax_model.dart';
import 'package:invoiceninja_flutter/main_app.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/client/client_selectors.dart';
import 'package:invoiceninja_flutter/redux/design/design_selectors.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart';
import 'package:invoiceninja_flutter/utils/money.dart';
import 'package:invoiceninja_flutter/utils/strings.dart';
@ -1051,6 +1052,13 @@ abstract class InvoiceEntity extends Object
}
}
if (!isDeleted!) {
if (hasDesignTemplatesForEntityType(
store.state.designState.map, entityType!)) {
actions.add(EntityAction.runTemplate);
}
}
if (userCompany.canEditEntity(this) && !isCancelledOrReversed) {
if (!isSent && !isRecurring) {
actions.add(EntityAction.markSent);

View File

@ -10,6 +10,7 @@ import 'package:built_collection/built_collection.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:http/http.dart';
import 'package:invoiceninja_flutter/constants.dart';
import 'package:invoiceninja_flutter/main_app.dart';
import 'package:invoiceninja_flutter/redux/client/client_selectors.dart';
import 'package:invoiceninja_flutter/redux/document/document_actions.dart';
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart';
@ -850,7 +851,7 @@ void handleInvoiceAction(BuildContext? context, List<BaseEntity> invoices,
break;
case EntityAction.bulkPrint:
store.dispatch(StartSaving());
final url = state.credentials.url+ '/invoices/bulk';
final url = state.credentials.url + '/invoices/bulk';
final data = json.encode(
{'ids': invoiceIds, 'action': EntityAction.bulkPrint.toApiParam()});
final http.Response? response = await WebClient()
@ -858,6 +859,15 @@ void handleInvoiceAction(BuildContext? context, List<BaseEntity> invoices,
store.dispatch(StopSaving());
await Printing.layoutPdf(onLayout: (_) => response!.bodyBytes);
break;
case EntityAction.runTemplate:
showDialog<void>(
context: navigatorKey.currentContext!,
builder: (context) => RunTemplateDialog(
entityType: EntityType.invoice,
entities: invoices,
),
);
break;
case EntityAction.more:
showEntityActionsDialog(
entities: [invoice],