1. Introduction

GR8 CRM is a set of Grails Web Application Framework plugins that makes it easy to develop web applications with CRM functionality.

You can find more information about GR8 CRM on the main documentation site http://gr8crm.github.io.

1.1. Customer Relationship Management

Customer relationship management (CRM) is a system for managing a company’s interactions with current and future customers. It involves using technology to organize, automate and synchronize sales, marketing, customer service, and technical support. Wikipedia

The GR8 CRM "Ecosystem" currently contains over 40 Grails plugins. For a complete list of plugins see http://gr8crm.github.io.

Each GR8 CRM plugin defines a Bounded Context that focus on one specific domain, for example contact, project or document.

2. Invoice Management User Interface Plugin

The crm-invoice-ui plugin is a companion plugin to the crm-invoice plugin. It provides a Twitter Bootstrap based user interface for invoice management.

2.1. Create invoices

In most application invoices are created programatically based on information from the database or external systems. But you can also create an invoice manually with the CrmInvoiceController.create() action.

Create invoice manually

2.2. Search invoices

To query for invoices you visit crmIndex/index which will show the query form.

The query form

You can enter query values in any field and then hit the Search button to search for invoices matching your query. If you don’t enter any query value all invoices will be included in the search result.

If the query result contains more than one invoice, an invoice list will be displayed. If the query result contains exactly one invoice, then details for that invoice will be displayed. I.e. it will skip the list view and go directly to the show view.

The invoice list

You can click on any invoice to show details for that invoice.

The Export button shows the print/export page but no layouts are provided by this plugin. You must add an event @Listener in an application service that listens for the crmInvoice.exportLayout event and return layout definitions. Look at the source for CrmInvoiceController#export() for more information.

2.3. Invoice details

The invoice details page crmInvoice/show show all details for an invoice. Here you will find invoice number, customer name, invoice and delivery addresses and more.

Invoice details

If the crm-tags plugin is installed you can see existing tags and add new tags to an invoice.

2.4. Edit invoice details

To edit invoice details you hit the Edit button. This will display the edit page crmInvoice/edit. Here you can alter values and then hit Save to store the new values in the database.

Edit invoice details

Invoice items are listed on a separate tab. Items can be edited, added and deleted from this tab.

Edit invoice items

3. Changes

2.4.1

Payment fields are now open for editing

2.4.0

First public release

4. License

This plugin is licensed with Apache License version 2.0

5. Source Code

The source code for this plugin is available at https://github.com/technipelago/grails-crm-invoice-ui

6. Contributing

Please report issues or suggestions.

Want to improve the plugin: Fork the repository and send a pull request.