diff --git a/src/common/hooks/permissions/useHasPermission.ts b/src/common/hooks/permissions/useHasPermission.ts index 8b4a6116d7..cd929fc301 100644 --- a/src/common/hooks/permissions/useHasPermission.ts +++ b/src/common/hooks/permissions/useHasPermission.ts @@ -37,6 +37,7 @@ type PurchaseOrderPermissions = | 'create_purchase_order' | 'view_purchase_order' | 'edit_purchase_order'; +type ReportPermissions = 'view_reports'; export type Permissions = | AllPermissions @@ -53,7 +54,8 @@ export type Permissions = | ExpensePermissions | RecurringExpensePermissions | BankTransactionsPermissions - | PurchaseOrderPermissions; + | PurchaseOrderPermissions + | ReportPermissions; export function useHasPermission() { const user = useCurrentCompanyUser(); diff --git a/src/components/layouts/Default.tsx b/src/components/layouts/Default.tsx index 35db7e85e1..e0ec6a08ef 100644 --- a/src/components/layouts/Default.tsx +++ b/src/components/layouts/Default.tsx @@ -315,7 +315,7 @@ export function Default(props: Props) { href: '/reports', icon: PieChart, current: location.pathname.startsWith('/reports'), - visible: companyUser?.is_admin || companyUser?.is_owner || false, + visible: hasPermission('view_reports'), }, { name: t('transactions'), diff --git a/src/pages/clients/index/Clients.tsx b/src/pages/clients/index/Clients.tsx index 6c3b1a7c11..136dbe2e56 100644 --- a/src/pages/clients/index/Clients.tsx +++ b/src/pages/clients/index/Clients.tsx @@ -58,6 +58,7 @@ export function Clients() { { + purchaseOrder && + purchaseOrder.vendor_id && + vendorResolver.find(purchaseOrder.vendor_id).then((vendor) => { + const invitations: Invitation[] = []; + + vendor.contacts.map((contact) => { + if (contact.send_email) { + const invitation = cloneDeep( + blankInvitation + ) as unknown as Invitation; + + invitation.vendor_contact_id = contact.id; + invitations.push(invitation); + } + }); + + handleChange('invitations', invitations); + }); + }, [purchaseOrder?.vendor_id]); + return ( Rechnungssteuer<\/strong>","enable_line_item_tax":"Ermögliche das Bestimmen von Steuern für Belegpositionen<\/strong>","dashboard":"Übersicht","dashboard_totals_in_all_currencies_help":"Hinweis: Fügen Sie einen :link namens \":name\" hinzu, um die Summen in einer einzigen Basiswährung anzuzeigen.","clients":"Kunden","invoices":"Rechnungen","payments":"Zahlungen","credits":"Gutschrift","history":"Verlauf","search":"Suche","sign_up":"Anmeldung","guest":"Gast","company_details":"Firmendaten","online_payments":"Online-Zahlungen","notifications":"Benachrichtigungen","import_export":"Import\/Export","done":"Erledigt","save":"Speichern","create":"Erstellen","upload":"Hochladen","import":"Importieren","download":"Herunterladen","cancel":"Abbrechen","close":"Schließen","provide_email":"Bitte geben Sie eine gültige E-Mail-Adresse an","powered_by":"Unterstützt durch","no_items":"Keine Elemente","recurring_invoices":"Wiederkehrende Rechnungen","recurring_help":"

Senden Sie Ihren Kunden automatisch die gleichen Rechnungen wöchentlich, zweimonatlich, monatlich, vierteljährlich oder jährlich zu.<\/p> \n

Verwenden Sie :MONTH, :QUARTER oder :YEAR für dynamische Daten. Grundlegende Mathematik funktioniert auch, zum Beispiel :MONTH-1.<\/p>\n

Beispiele für dynamische Rechnungsvariablen:<\/p>\n