Skip to content

[Settings]: General — Company Branding (logo, colors, fonts) #248

Closed

Description

@nielsdrost7

SMART Plan — Set invoice numbering prefix in General Settings

Specific

A TextInput field labelled "Invoice Number Prefix" in the General tab of the Company Settings page. Stores a short string (e.g. INV-) under the key invoice_number_prefix, scoped to the current company. The value is prepended to every auto-generated invoice number for this company.

Measurable

  • The field appears in the General section of the Company Settings page
  • Saving the form persists the value to the settings table with key invoice_number_prefix and company_id scope
  • The value is read back correctly on page reload

Achievable

  1. Create/extend Modules/Core/Filament/Company/Pages/CompanySettings.php (Filament page with tabs)
  2. Add a TextInput::make('invoice_number_prefix')->label('Invoice Number Prefix') field to the General tab section
  3. Add const INVOICE_NUMBER_PREFIX = 'invoice_number_prefix'; to Modules/Core/Models/Setting.php constants
  4. Register the page in CompanyPanelProvider

Relevant

Different companies operating under the same InvoicePlane instance may need distinct invoice number series (e.g. ACME-0001 vs XYZ-0001). A per-company prefix keeps sequences clearly separated and satisfies common accounting/audit requirements.

Time-bound

Sprint 6.


Arrange · Act · Assert

// Modules/Core/Tests/Feature/CompanySettingsTest.php

#[Test]
public function it_saves_invoice_number_prefix_setting(): void
{
    /* Arrange */
    $page = Livewire::actingAs($this->user)
        ->test(\Modules\Core\Filament\Company\Pages\CompanySettings::class);

    /* Act */
    $page->set('data.invoice_number_prefix', 'INV-')
         ->call('save');

    /* Assert */
    $page->assertSuccessful();
    $this->assertDatabaseHas('settings', [
        'company_id' => $this->company->id,
        'key'        => 'invoice_number_prefix',
        'value'      => 'INV-',
    ]);
}

Activity

  1. coderabbitai commented on Dec 28, 2025

    @coderabbitai
    Contributor

    📝 CodeRabbit Plan Mode

    Generate an implementation plan and prompts that you can use with your favorite coding agent.

    • Create Plan
    Examples

    🔗 Similar Issues

    Related Issues

    👤 Suggested Assignees

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  2. added this to the v2.0.0-alpha milestone on Dec 28, 2025
  3. changed the title [-]As an admin in the Company Panel, in the General Settings, I want to be able to set the Number of items in lists (maybe per entity)[/-] [+][Settings]: General — Company Branding (logo, colors, fonts)[/+] on Jun 13, 2026
  4. nielsdrost7 commented on Jul 24, 2026

    @nielsdrost7
    CollaboratorAuthor

    SMART Plan — Company panel — manage Company Branding

    Specific

    Within the Company panel Settings → General tab, add fields for company branding: logo upload, primary/accent colors, and fonts. These are stored in the settings table scoped to the company. Invoice/PDF/email templates use these colors and fonts.

    Measurable

    • Logo, color, and font selections are editable in CompanySettings.
    • Uploaded logo is stored and associated with the company.
    • Invoice PDFs/emails use the company's branding (colors, fonts).
    • Success message confirms branding was updated.

    Achievable

    1. Add settings keys for logo, primary_color, accent_color, font_family, font_size.
    2. Add FileUpload and color/select fields in CompanySettings.
    3. Update Blade templates and PDF generation to reference $company->setting('logo'), etc.

    Relevant

    Each company wants their brand to appear consistently on invoices and customer-facing documents. This lets them customize without code changes.

    Time-bound

    Sprint 6.

  5. nielsdrost7 commented on Jul 24, 2026

    @nielsdrost7
    CollaboratorAuthor

    Partial correction: the unmerged branch settings-cluster-2026-07-19 already has a company/invoice logo upload (Setting::KEY_INVOICE_LOGO, a FileUpload in the Invoices → PDF Settings section of CompanySettings.php) — though it's scoped as an invoice-PDF logo, not necessarily a general company-branding logo. Primary/accent colors and fonts described above are not implemented there. Worth checking whether the existing invoice-logo field can be reused/generalized before adding a new one.

  6. added a commit that references this issue on Aug 3, 2026
    efa9963
  7. added a commit that references this issue on Aug 5, 2026
    b541b65
  8. added a commit that references this issue on Aug 5, 2026
    9610a90
  9. added 2 commits that reference this issue on Aug 17, 2026
    57c9224
    5d60593
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    refinedRefined with SMART plan / test suggestions

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions