Re: [Emerald] Feature Request

Mark Lipscombe ( (no email) )
Fri, 2 Jul 1999 14:15:23 +1000

We've implemented this partially by doing the following:

Create a new table called PlanChanges or the like, and there, you need to
* CustomerID
* Current AccountType
* New AccountType

We then have a scheduled task which runs at 00:00 every night, which does
the following:
* Checks CustomerID's in the PlanChanges table
* See's if that customer expires this day
* Creates an invoice for their current usage
* Changes their plan over

We then have an ASP page which makes the necessary changes.

You could probably get away with setting MasterAccounts.maExpireDate to the
next day to force a plan change to take effect as of midnight that night,
so, if for example, someone had used their allocated time & downloads, and
didn't want to pay excess charges, and wanted to renew their account at that
point in time, you could do it.

The only caveat is that we don't use Emerald's consolidation and billing
functionality, we do it directly from the database using alternate tools, as
we need to be able to bill for bandwidth usage and the like, so creating an
invoice directly into the database isn't a problem for us, but it would most
likely be if you wanted to use Emerald's consolidation functionality.

We haven't put this facility into production use on our network yet, so

Kind Regards,
Mark Lipscombe
Information Technology Manager
Sydnet Group Pty Ltd
Ph: 02 9873 6400 Fax: 02 9873 6411

-----Original Message-----
From: DAN TANG <>
To: <>
Date: Friday, July 02, 1999 2:52 PM
Subject: Re: [Emerald] Feature Request

>>DAN TANG wrote:
>>> We would like user able to change the account type by themself through
>>> interface, but the way Emerald does the consolidation would not allow us
>>> change account.
>>This is something we are looking to address in a future release.
>>> My suggestion is:
>>> We should keep the balance field in the MBR, customer can pay whatever
>>> amount they like, everytime the RADIUS receive a stop record, it should
>>> a consolidation process, and reduce the amount of credit customer spent
>>> this connection from the balance field. The balance field should allow
>>> negative value. On the other hand, a lot of account have minium monthly
>>> charge, every day(month, quarter or year) Emerald should run a
>>> to reduce this amount from the balance as well. This way user can
>>> the consolidation process according to account type as well.
>>Can you give me an example of a set of services the customer would
>>frequently switch between where this kind of real-time processing
>>is required? I'm just curious more than anything.
>1.If customer add an additonal service for a MBR, sure he/she does not want
>to go through the step of recalculate when the service going to expire or
>pay additional for the service.
>2.Some user may want extra FTP storage for 3 days, they can register the
>request through the web, ISP only need to program a schedule in SQL, can do
>this sort of thing.
>3.Also some one may go holidy for 2 months, he/she does not need dialup
>permission, but want to receive email while on holiday, obviously need to
>change service type, if the usage is charged at daily base, all these
>process can be automated by put some web interface and customer can do them
>4. If customer find out some other account will save their money according
>to their usage pattern, they can simply change the account type through web
>and everything is done.
>>> By the way, on next version, could you change all the MONEY data type to
>>> FLOAT, so the invoice would print properly.
>>Please expand on this? Why are the invoices currently not printing
>>properly? Money in SQL Server is accurate to 4 decimals.
>This way I can do any calculation and only need to worry about it when
>updating and displaying, and would be much more accurate, as you know you
>could never divide/multiply by time for more then 2 times without loosing
>the accuraccy.
>>Dale E. Reed Jr. Emerald and RadiusNT
>>IEA Software, Inc.
>>For more information about this list (including removal) go to:
>For more information about this list (including removal) go to:

For more information about this list (including removal) go to: