I have a web design firm and would love to setup my Drupal site to handle all client accounting, billing, and project management. Has anybody done this? I will share how it goes for me...


Suuch’s picture

There were a couple of modules that have come up in the past to do something like that. But we're in a similar situation and we use a system that's setup something like this:

Project Manager: case_tracker that's only open to staff
Support Website: 3rd-party email ticketing system that's open to both staff and customers (in theory case_tracker can do this too). Support tickets are only replicated on the project manager if they require extensive twiddling to close.
Accounting & Billing: custom module we developed for the Ghanaian market. It's changing all the time, but there's a 5.x port we made for the fun of it (we use 4.7.x in all instances above). Allows you to enter payments/receipts and is also available to customers to monitor their own accounts.

Suuch Solutions supports The GhanaThink Foundation

weblinq’s picture

Me too. Did you already found a solution? Or is there a solution? Maybe we can gather a group of different people who are interessed in this functionality and develop a new module. I am not a programmer, but I'm more a person who do the testing and make the documentation.

chuckienorton’s picture

I also have a web development company that I'm trying to find good CRM software - to integrate billing if possible. All the stuff I've seen is so stinking big, with a lot of focus on customer numbers, etc. I have fewer clients, with bigger projects. But some of the guys on my team couldn't use XRMS as is - it's just too overwhelming for a designer.

Using a drupal module would be a great solution, it's easy to integrate, and usually easy to use.

figover’s picture

We are going to launch a module with the name accounting system in drupal cms.

Plz discuss here



plazma’s picture

with some creative use of nodes this is possible.
basically i did and export from my accounting package (MYOB) and imported it into my database in a new table, then in a node created some php content to return a result and display the information, its quite easy when you break it down, the only problem is that you have to continually reimport the data into the the database but i have found that once a week is sufficient. it works very effectively,

Step 1: Export data from accounting package
Step 2: import data to a new table in the drupal database
Step 3: Create a field in the user profile section that points to the internal ID of the customer in the accounting database
Step 4: create a node that will display all the invoices, example code below, you can use the profile load function to load the users internal ID for the customer and filter the results accordingly

// Invoicing Code, Plexus Multimedia 2010.

  $header = array('Invoice #', 'Date', 'Amount','Amount Paid','Outstanding','');
  $rows = array();

  $sql = 'SELECT `Invoice #`,date_format(`Date`,"%W %D %M %Y")as formattedDate,(select sum(`Amount` + `GST Amount`) from servsale_csv where servsale_csv.`Invoice #` = t1.`Invoice #` ) as ttl,(select `Amount Paid` from servsale_csv where servsale_csv.`Invoice #` = t1.`Invoice #` LIMIT 1) as tt2 from servsale_csv t1 where `Record ID` = 8 group by `Invoice #`';
  $res = db_query($sql);
  while ($row = db_fetch_array($res)) {
    $rows[] = array($row['Invoice #'],$row['formattedDate'],'$'.number_format($row['ttl'],2),'$'.number_format($row['tt2'],2),'$'.number_format($row['ttl'] - $row['tt2'],2),'<a href="/central-plexus/my-invoices/view-invoice/'.$row['Invoice #'].'">View</a>');

  print theme('table', $header, $rows);

from there you can produce a list of invoices for each individual client, you can also take it to the next step by creating a new page node and call it invoices or something like that.
in that node create some code to load an individual invoice details.
so for instance, create a new node, the node for instance may be 35
create a view and filter it to load only node 35, and create a global variable which will allow you to pass a variable to the node.
in the node the some php code can get the view variable and filter out only the required invoice lines,

For my business this has added an extra level of professionalism and has reduced account related calls allowing me more time to work

hope this helps

Francewhoa’s picture

Have you tried:

Loving back your Drupal community result in multiple benefits for you