Marketcircle Home Products Support Blog Forums Partners Store
Marketcircle    Forums  Hop To Forum Categories  Billings  Hop To Forums  Using Billings    A very basic question
Page 1 2 
Go
New
Find
Notify
Tools
Reply
  
5-star Rating (1 Vote) Rate It!  Login/Join 
Apprentice
Posted
A client failed to pay on a previous bill. Now I would like to send him a bill that includes this month's work, and also carries forward the outstanding balance. Is there a way to get the outstanding balance and the slip for current work on a single bill?
 
Posts: 3 | Location: San Francisco, CA | Registered: September 25, 2007Reply With QuoteEdit or Delete MessageReport This Post
RBP
Apprentice
Posted Hide Post
Hey MarketCircle!

This BASIC question has been asked ad nauseum on this forum. You guys acknowledge the issue is important, you promised LONG ago that it's on your radar, and still nothing gets done. When are you going to program Billings invoices to automatically carry forward outstanding balances??!! Please -- I don't want to get another product, but I will if this BASIC billing issue isn't addressed very soon.
 
Posts: 1 | Registered: December 11, 2007Reply With QuoteEdit or Delete MessageReport This Post
Journeyman
Posted Hide Post
Haven't looked at this, but it should be possible to take elements from the Unpaid Invoices report and insert them as a strip on your invoice template, with your "total outstanding balance" showing.

Or else just send the "Unpaid Invoices" report along with your invoice as a credit memo. To me that would make more sense: why confuse the balance of two separate invoices on one document?
 
Posts: 64 | Registered: December 04, 2007Reply With QuoteEdit or Delete MessageReport This Post
Apprentice
Posted Hide Post
I looked into this, but it seems like the only way to print out a single client's unpaid invoices (assuming you have multiple clients) is to edit the script in the Report Editor. Here's what I did:

1) Create a new report (Design -> New Report).

2) Name it for your specific client (for example "Unpaid - MyClient Inc.") and leave the top popup menu reading "Clients". Go to the next screen.

3) Pick the "Use an existing..." option at the top, and select "Unpaid Invoices" as the layout to use. Go through the next screens until you're at the report layout window.

4) Click on the "Client Name" text area in the layout.

5) At the bottom of the window will be the object "path", starting with "REReport" and ending with "TEClientName" (which should be highlighted). Click on "TAClients".

6) On the right side at the bottom of the inspector is an area called "Data". If it's not already toggled open, do so. You'll see one item in the list: "Script Client". Double-click that to open it.

7) The sheet that pops down has two tabs: F-Script and Resulting Fields.

8) On the F-Script tab, scroll down in the code and replace this chunk:

( anInvoice balance intValue ~= 0 ) ifTrue:
[
	"sys log:aClient firstName."
	"sys log:aProject name."
	unpaidClients addObject:aClient.			
].


with this chunk (substituting your client's name for "MyClient Inc.":

( anInvoice balance intValue ~= 0 ) ifTrue:
[
	( aClient company = 'MyClient Inc.' ) ifTrue:
	[
		"sys log:aClient firstName."
		"sys log:aProject name."
		unpaidClients addObject:aClient.			
	]
]. 


9) Click OK to get back to the main layout window and click "Preview" in the toolbar. If the client you identified has any outstanding invoices, they will be listed in the preview, and no other clients' invoices will be listed.

10) Close and save your layout.

Of course you can make other changes, but this should get you started. Unfortunately you have to make one for each client, but they will all show up in the Reports window when you choose File -> Reports... so you can quickly see which one(s) you need to print.

I agree this is really something critical that Marketcircle should put into Billings, especially since there's almost no examples of making Billings-specific reports in the available developer downloads.

Anyway, hope this helps.

Ken
 
Posts: 29 | Registered: August 02, 2006Reply With QuoteEdit or Delete MessageReport This Post
Apprentice
Posted Hide Post
Actually, I found a way to be able to make a single report where you can specify the client so you don't have to make multiple individual reports for each client.

Here's how you do it (ignore my previous post and use this one):

1) Create a new report (Design -> New Report).

2) Name it something like "Unpaid Invoices By Client" and leave the top popup menu reading "Clients". Go to the next screen.

3) Pick the "Use an existing..." option at the top, and select "Unpaid Invoices" as the layout to use. Go through the next screens until you're at the report layout window.

4) At the bottom of the window will be the object "path", starting with "REReport" and ending with "TEClientName" (which should be highlighted). Click on "REReport".

5)

4) Click on the "Client Name" text area in the layout.

5) At the bottom of the window will be the object "path", starting with "REReport" and ending with "TEClientName" (which should be highlighted). Click on "TAClients".

6) On the right side near the bottom of the inspector is an area called "User Input". If it's not already toggled open, do so.

7) Click the plus button, and choose "Popup Menu". In the resulting sheet, set the window to have the following settings:

Mandatory = checked
Label = "Client:"
Key = "client"
Kind = "Objects"
Menu Title Key = "name"
Value Key = "self"
Script =
clients := objectContext objectsForEntityNamed:'Client'.

"sort by name"
sort := (((NSSortDescriptor alloc) initWithKey:'name' ascending:true) autorelease).
sortings := {sort}.

sorted := clients sortedArrayUsingDescriptors:sortings.

sorted


Click the Close button.

8) Click on the "Client Name" text area in the layout. This will change the path at the bottom of the layout window with "TEClientName" highlighted. Click on "TAClients".

9) On the right side at the bottom of the inspector is an area called "Data". If it's not already toggled open, do so. You'll see one item in the list: "Script Client". Double-click that to open it.

10) The sheet that pops down has two tabs: F-Script and Resulting Fields.

11) On the F-Script tab, replace the existing code with this:

clients := objectContext objectsForEntityNamed:'Client'.
clientsEnum := clients objectEnumerator.
aClient := clientsEnum nextObject.
unpaidClients := NSMutableSet set.
userClient := element valueForKeyPath:'userInput.client'.

[ aClient ~= nil ] whileTrue:
[
	projects := aClient projects.
	projectsEnum := projects objectEnumerator.
	aProject := projectsEnum nextObject.

	[ aProject ~= nil ] whileTrue:
	[

		invoices := aProject invoices.
		invoicesEnum := invoices objectEnumerator.
		anInvoice := invoicesEnum nextObject.

		[ anInvoice ~= nil ] whileTrue:
		[

			( anInvoice balance intValue ~= 0 ) ifTrue:
			[
				( aClient derivedName = userClient derivedName) ifTrue:
				[
					"sys log:aClient firstName."
					"sys log:aProject name."
					unpaidClients addObject:aClient.			
				]
			].

			anInvoice := invoicesEnum nextObject.
		].
		
		aProject := projectsEnum nextObject.
	].
	
	aClient := clientsEnum nextObject.
].

unpaidClients allObjects.


12) Click OK to get back to the main layout window. You won't be able to Preview it with the Preview button because it requires input. So close and save your layout.

13) Select File -> Reports... and then pick your report from the list on the left side. You should be presented with a popup menu on the right side that lists all your clients.

14) Select a client and click "Run". If the client you identified has any outstanding invoices, they will be listed, otherwise it will say "No Data" in the report.

Hope this helps,

Ken
 
Posts: 29 | Registered: August 02, 2006Reply With QuoteEdit or Delete MessageReport This Post
DCW
Apprentice
Posted Hide Post
I'm new to Macs and Billings. But before I spend a large amount of time on the learning curve, I need to understand this issue.

I run a solo law practice and it is very common that clients carry balances over from month to month. Therefore I often issue "statements" rather than straight invoices. A statement shows a current balance but may or may not require payment.

AM I correct in understanding that there is no way to carry a balance forward without redesigning the invoice form?
 
Posts: 17 | Registered: January 10, 2008Reply With QuoteEdit or Delete MessageReport This Post
Apprentice
Posted Hide Post
Unfortunately that is correct (AFAIK). The main issue is that the set of invoices that ship with Billings do not have any place for carry over balances. So the only things you can do at the moment is either to create a custom invoice, or to create a dummy payment and dummy work slip so you are effectively adding the balance to a new invoice.

Ken
 
Posts: 29 | Registered: August 02, 2006Reply With QuoteEdit or Delete MessageReport This Post
Journeyman
Posted Hide Post
Awesome Ken, thanks very much for that. There are a few errors in your steps, to clarify:

You have to click on REReport (the first item in the object path at the bottom of the screen) first before you can see the User Input section in the inspector.
 
Posts: 64 | Registered: December 04, 2007Reply With QuoteEdit or Delete MessageReport This Post
Apprentice
Posted Hide Post
quote:
Originally posted by Andrew Vit:
Awesome Ken, thanks very much for that. There are a few errors in your steps, to clarify:

You have to click on REReport (the first item in the object path at the bottom of the screen) first before you can see the User Input section in the inspector.


Thanks, Andrew... you're of course right - REReport is the item to select (must have been a copy/paste error or just "brainlock").

:-)
 
Posts: 29 | Registered: August 02, 2006Reply With QuoteEdit or Delete MessageReport This Post
Apprentice
Posted Hide Post
I don't know if this is the same in every country - but one word of caution (picking up Andrew Vit's point)...

From an accounting perspective it would not be permissible to include an O/S balance in an Invoice - you could add the value as a memo line in a footnote only - anything else would be double-accounting.

A proper Statement (as described above) is the only correct way to do this...
 
Posts: 4 | Registered: January 22, 2008Reply With QuoteEdit or Delete MessageReport This Post
Apprentice
Posted Hide Post
quote:
From an accounting perspective it would not be permissible to include an O/S balance in an Invoice - you could add the value as a memo line in a footnote only - anything else would be double-accounting.

A proper Statement (as described above) is the only correct way to do this...


That's good to know, Mark, thanks! I've seen a kind of 30/60/90 day grid at the bottom left corner or across the bottom of invoices... is that something that's permissible according to accounting standards? Or would this have to go on a separate statement?

I also have another question related to this - if a balance is being carried over intentionally, would that be done as a separate invoice and statement? For example, suppose one is allowed to invoice up to $2000 per month for the first 3 months, and then anything that is done above that is held for payment until the three month period is over, at which point one can bill for all the extra accrued time during that "probation period". When invoices were sent each month for the first three months, would there be just an invoice for the $2000, and a statement for the accruing balance until finally an invoice for the accrued balance can be submitted after three months? Or is there some other/more appropriate way? Just curious...
 
Posts: 29 | Registered: August 02, 2006Reply With QuoteEdit or Delete MessageReport This Post
Journeyman
Posted Hide Post
Many thanks for this excellent report .
Just what I needed.
 
Posts: 85 | Location: Gavere - Belgium | Registered: September 27, 2007Reply With QuoteEdit or Delete MessageReport This Post
Apprentice
Posted Hide Post
Ken,

Yup - the 30/60/90 bit is a normal account ageing grid. I'd check with your accountant - this would normally be on the statement, but I don't see any reason why you couldn't put it on an invoice.

As for the other question - I'd also check with the accountant - but if it were me, I would always invoice for the full amount, because that is what I am due! If you want to be clear you can then refer to the $2000 bit in the invoice payment terms. The $2000 deposits are normally treated as "stage payments" or "down payments" - either way, the statement will always make you & your customer clear about where they stand... they can't turn around at the end & try to claim that the final bill is more than they expected...
 
Posts: 4 | Registered: January 22, 2008Reply With QuoteEdit or Delete MessageReport This Post
Apprentice
Posted Hide Post
Thanks, Mark!
 
Posts: 29 | Registered: August 02, 2006Reply With QuoteEdit or Delete MessageReport This Post
Apprentice
Posted Hide Post
Is it possible to change the code above (which works great) to list all projects, complete or in progress, for a client?
 
Posts: 11 | Registered: March 03, 2008Reply With QuoteEdit or Delete MessageReport This Post
 Previous Topic | Next Topic powered by eve community Page 1 2  
 

Marketcircle    Forums  Hop To Forum Categories  Billings  Hop To Forums  Using Billings    A very basic question

 

Refund Policy | Privacy Policy | Site Map | About Marketcircle
©2008 Marketcircle Inc. All rights reserved.
webmaster@marketcircle.com