Skip to content

[Core]: While creating an invoice, if a client is not already in the system allow the user via the search box to add a new client on the go #67

Closed

Description

@nielsdrost7

Context


Especially in busy environments adding a client instantly would be time efficient.


Specific:

As a user, I want to be able to add a new client with minimal required information on a single screen.

Measurable:

The time taken to add a new client will be reduced by 50% compared to the current process.

Achievable:

Very should require minimal programming.
In essence create a link in
https://invoice.hhaufe.eu/index.php/clients/form
when searching and no clients are found text is displayed: (No results found)
This would change to: (No results found | Would you like to create a new client?)
This link would call the create_invoice invoice form and when completed return to create invoice.

Relevant:

This feature directly addresses the need for improved efficiency in client management, especially during peak periods.

Time-bound:

This feature will be implemented and tested within a two-week sprint.

Extra info:

In the file modal_create_invoice.php line 33 it is said it wil create a new client so perhaps part of the code is already there to avoid double work.
$('#invoice_create_confirm').click(function () { // Posts the data to validate and create the invoice; // will create the new client if necessar


Arrange:

// Create a user with the necessary permissions to add clients
$user = User::factory()->create(['role' => 'administrator']);
$this->actingAs($user);

// Define the minimal required client data
$clientData = [
'name' => 'Test Client',
'email' => 'test@example.com',
];

Act:

// Submit a POST request to the client creation endpoint with the minimal required data
$response = $this->post(route('clients.store'), $clientData);

Assert:

// Assert that the client was successfully created in the database
$response->assertRedirect(route('clients.index'));
$this->assertDatabaseHas('clients', $clientData);

// Assert that the form validation was successful by checking for no error messages
$response->assertSessionHasNoErrors();


@spacecabbie I'm assigning this one to you so you can keep an eye on it.
Each module will have this functionality: Add invoice, Client doesn't exist, create it right there on the spot.
Same for quotes, expenses, you name it

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions