\documentclass{article}
\usepackage{ulem}
\usepackage{graphicx}
\usepackage{hyperref}
\pagestyle{headings}
\begin{document}
\part{Minerva}
Minerva is an on-line invoicing application. The aim is to provide an complete standalone invoiceing system and provide invoicing functionality to other applications.

\section{General futures}
\begin{itemize}
\item Custom invoice types (proforma, invoice, delivery note, ...)


\item Custom invoice statuses (paid, unpaid, rejected..)


\item Recurrence, automatic periodic invoice generation


\item Export invoice in XML (single invoice or multiply)


\item Export invoice list in CSV file


\item Reseller, tracking resellers revenue and resellers


\item Email drafts


\item Bank accounts list


\item Invoice drafts


\item Send custom text document to all/selected clients


\item Print several invoices at once


\item Mass download (in a zipfile)


\item Mass status change


\item Detailed advanced serach


\item Api to provide invoices for other modules


\end{itemize}
\section{Outcome}
\begin{itemize}
\item tracking of outgoing money from your company (when, to who...) display outcome dues in calendar


\item Bank accounts, track from which account the bill was paid


\end{itemize}
\section{Statistics with graphs}
\begin{itemize}
\item Expired invoices, List and send notifications for expired invoices and send notify emails to client


\item Revenue, Calculate income and outcome in certain period confront the two calculation


\item Taxes, calculate taxes from selected invoices


\end{itemize}
\section{Permissions}
\begin{itemize}
\item for every invoice type you can set edit, delete, show permission


\item for every invoice status you can set edit, delete, show permission


\item recurrence access and generation


\end{itemize}
\section{Requirements}
\begin{itemize}
\item PHP 5.1


\item recent Horde CVS snapshot


\item Horde\_Currencies from incubator


\item Horde\_Taxes from incubator


\item Horde\_Helper\_* from incubator


\item Horde 4.0+


\end{itemize}
\section{Types}
Additional to the default ones (proforma, invoice) you can create your own invoice/document type. For example if you manage goods. You first send items and wait delivery confirmation then issue the invoice. To track this, you can create a document type called delivery note. Send the created delivery note along with the items, and when the customer returns the signed paper, you just convert the delivery to the normal invoice with one click.

The first ordered one is the default.

Every document type has its own counter, restarted every year. The next document id is passed to preference invoice\_name to create document name (human redable unique id). You can provide an id offset if you did not start with zero.

\section{Statuses}
Like for types, you can create your own invoice statuses (default are Pending and Paid). And assign them to different invoice types by the statuses matrix in the the status administration form.

\section{Templates}
Templates are used to convert invoice data in a document pritable form. For every type there must be a corresponding template in /templates/convert/<type ID>.html. The temaplte file is processed with Horde\_View.

You can have a file named footer.html and header.html which will be added on the top/bottom of the page. If header/footer fill be found, it will search for them in the main tempaltes folder. So you can have a general header/footer for all tempaltes.

\section{Permissions}
You can assign access permission per ever status, type or outcome with the Horde Permission user interface. This allows you to limit the usage or access to different program parts or document statuses/types. For example you marketing department can create only proformas, but only the director can create the final invoice. Or for example your secretary can only update the status of the invoice to paid, but she can edit the invoice itself.

\section{Locks}
When an invoice is edited, the invoice is locked. The lock is held for 30 minutes or until the editing user exits the invoice editing page.

\section{Recurrences}
Recurrences has two main missons. The first is Favorites functionality.  If you often create a new invoice with the same articles etc. You not need to search it in the invoice list. You can just click the create new invoice button from the reoccurence list and you will be redirected to the new invoice forum filled with the old invoice data.

The second feature is automatic invoice creation by a recurrence.php script. This script should be added to your cron job.

\section{Clients}
Minerva has not his own clients container. The invoice fields are free for typing everything you want.<br />
But if Minerva detects the instalation of Turba Address book, you will see an Add client icon next to the client name filed. It will opens an pop-up with a simple browsing of your clients address book. Click on the client name, and the client data will fill the invoice form and the pop-up will close. The data are transferred to the invoice. And will remain unchanged, if you change or delete client data.

\section{Articles}
Nearly the same as for clients, articles can be added directly in the invoice or in imported from any application that has the listCostObject method (Merk, Whups, Nag etc) The required fields are: name, price, tax. All the other fields are optional. You can add any article detail only by altering the template and add column in the database table. Minerva will automatically check the table structure and dinamicaly fix its queries.

\end{document}
