Customer vs Company

Derek Atkins warlord at MIT.EDU
Mon Mar 31 23:06:09 CST 2003


Retracile <retracile at earthlink.net> writes:

> Hypothetical case:  My company, 'MANtools' sells drill motors.  I have 
> companies like, oh, MegaMart buying them from me, so 'MegaMart' is a 
> Customer, and is a Company.
> But John Doe also bought a drill motor from me.  He isn't a company; he's just 
> an Individual do-it-yourself'er.

Ok, fair enough...  I wrote the code for my use, and I'm a professional
consultant; all of my customers are companies.

> So I would think that a Company is a type of Customer and an Individual is a 
> type of Customer.

Except there is no internal concept of a "individual".

> Hmm; perhaps I should be asking for a pointer to an object model or 
> relationship model of some sort?

Basically there are four first-class types internally (and one meta-type):

                GncOwner
                   |
    +--------------+-----------------+
    |              |                 |
GncCustomer     GncVendor       GncEmployee
    |              |                 |
    +---------- GncAddress-----------+


The GncOwner is a meta-object that can hold a Customer, Vendor,
Employee or a Job.  A Job is tied to a Customer or Vendor (think of it
like a "project").  An Address contains, well, an address (you can
think of it like a person); it was a logical abstraction, but is not
by itself a first-class object.  An Address does not live by itself;
it lives attached to a Customer, Vendor, or Employee.

> My wife teaches private music lessons.  So all her customers are individuals, 
> not companies.  Hmm, perhaps I should use the term 'client'?
> I can see vendors always being a company, if only a sole-propietorship.

I suppose you could use the term client, but I don't see a real reason
to switch terminology at this point.  Remember that the more
terminology you change, the more work the translators have to do...

> One of the things that bothers me is that you have to give a company name, and 
> a contact name.  When dealing with an individual,

Sorry, that's not going to change.

> John Doe
> John Doe
> 1234 XYZ Lane
> Podunk, AL 12345
> 
> Just looks _wrong_.
> 
> Thoughts?

Get over it?

Seriously, I don't see anything wrong with this.  I've had plenty of
companies send me personal stuff with the double name.

Re-architecting the system to make individuals a first-class object
would be... Problematic.  The best I could do is change the Customer
dialog to allow running without a "Contact Name", but IMHO that would
be wrong for the vast majority of cases.

> Eli

-derek

-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available


More information about the gnucash-user mailing list