System documents - making it easier for non-technical users

Currently we ship the system with standard invoice etc templates that the user has to customise (or get customised) to suit their practice.

If we provided mechanisms in the system to hold a logo and an address block then the user could get away with using the standard templates with no modification.

I think that we ought to hold a logo & address block at both the practice and location levels - and the invoice etc code should look first at the location settings and if nothing is specified, then use the practice settings.

Note that I intentionally used the term 'address block'. I see this as a multiline entry that contains all the detail that the user wants to display - ie address, phone, fax, email, website etc in the order they want displayed. I am also open to the idea of separating the address block into 3 parts: line 1 which can contain the business name and will be shown in a bigger font; part 2 which contains stuff in a medium font; and part 3 which is shown in a small font.

We also need a 'tax registration' field.  Australians set this to "ABN: 123 456 7890", South Africans set it to 'VAT Reg: 123 456 7890', and in Hong Kong and the USA you leave it blank. This would need to be set at the Practice level only.

Finally there needs to be a 'letter head flag' - if this is true, then the logo and address block are not shown unless IsEmail is true.  If it is false, then they are always shown.

Comments please.

Regards, Tim G

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Re: System documents - making it easier for non-technical users

A lot of the customisation effort could be removed by moving the header into a shared subreport.
I suspect we won't be able to remove the need to customise the header however; last time I looked, jasperreports didn't grow or shrink the page to fit images.

I'm happy to incorporate a company number into the practice. It could be done as a details node, or as an entityIdentity. The entityIdentity is probably overkill.

For consistency, the url should be done via a contact.website, but would need functions to support its retrieval.

 

Re: System documents - making it easier for non-technical users

IF we do add contact.website we should add custom display handling as well to support url clicks opening in a new browser window

Regards
 
Ben 
OpenVPMS Installer and Helper 
Ph: +61423044823 
Email: info[at]charltonit.com[dot]au

Re: System documents - making it easier for non-technical users

Header is shared subreport - NEAT idea - this might help considerably.

I do agree that variations in logo size are potentially a problem. A brute force solution is to say if you want to use the standard template without adjustment, then it must be X by Y pixels in size.  I will also have a play with what happens with images that differ in size from the report settings.

Where to put the information: - I am happy with details.

website contact: we already have a contact.website and we tweaked the supplier organisation archetype to use it. However, my view is that the 'address block' concept [where you enter all the details you want in the order you want] would not use any contact information.

I will have a play.

Regards, Tim G

 

Re: System documents - making it easier for non-technical users

Been adding a number since 1.7

We use

$F{OpenVPMS.location.abn} to retrieve it.

its pretty straight forward to add IMO (obviously localized would be ideal)

AttachmentSize
Capture.PNG 8.75 KB
Regards
 
Ben 
OpenVPMS Installer and Helper 
Ph: +61423044823 
Email: info[at]charltonit.com[dot]au

Re: System documents - making it easier for non-technical users

Oh and ABN needs to be set by location not practice level - alteast I have - I actually cant remember why I did it that why now...

 

Regards
 
Ben 
OpenVPMS Installer and Helper 
Ph: +61423044823 
Email: info[at]charltonit.com[dot]au

Re: System documents - making it easier for non-technical users

ABN at location level - I suspect that this is a sensible thing to do for utmost flexibility - but there will only be different ones at the location level if your locations are infact different businesses - and I would suspect that your accountant would council against running this way [ie running multiple businesses within the one PMS].

I am also inclined to either include the registration type in the field (ie ABN: 123.., for Oz, VAT Reg: 123.. for SA) or have a separate field that contains the tax registration name.

Given this - it might be a idea to invent a 'business' entity that you link the location to - and the business entity holds the stuff on the letterhead.

Regards, Tim

Re: System documents - making it easier for non-technical users

OK - we now know (from 6929 onwards) that the the 'common title stuff in a subreport' works. So now what to do about its contents? The possibilities are:

a) use the practice information via the party:getPractice functions

b) use the location information via the party:getxxx($location) functions

c) add a new entity called say letterhead which can be linked to the PracticeLocation. This would contain the various components of the letterhead, ie path to logo, name, address, contacts, tax registration - where address and contacts are multiline text blocks which the user can format as desired. eg the contact block could be:
     P: 02-1234-5678
     E: info[at]xyzvets[dot]com
     W: www.xyzvets.com
or
     Phone: 02-1234-5678  email: info[at]xyzvets[dot]com

Using a letterhead entity makes it simple for the (common) setup where different practice locations are used simply to allow for different default printers but which should all use the same letterhead.

Using a path to a logo (rather than holding the logo in the database) is necessary to get Studio to pull in the required logo. Note that Studio handles varying image sizes quite well - see http://jasperreports.sourceforge.net/sample.reference/images/index.html

The 'tax registration' would contain both the title (ABN, VAT Reg.) and the actual number/code.

Accessing the letterhead information would be via the report fields facility - eg $F{OpenVPMS.location.letterhead.address}

 

My preference is obviously C - and I think that the new letterhead entity should be administated via Administration|Templates

 

Regards, Tim G

 

Re: System documents - making it easier for non-technical users

I'm not a fan of c). It:

  • violates the DRY principle - phone, address and email information is already contained in the practice/location contacts
  • doesn't sort out how the blocks will be displayed relative to each other; this still needs to be handled by the jasperreports template
  • a block can only be presented in a single font. E.g, cannot have
    email: info[at]xyzvets[dot]com
  • blocks would only support field alignment if a fixed width font was used. e.g.
  Phone: 02-1234-5678
  Email: info[at]xyzvets[dot]com
  Web:   www.xyzvets.com
  • might not support hyperlinks in PDF reports?

I think the best that can be done is to provide a header with reasonable defaults that users can adjust if required.

This still requires:

  • a company number and type (e.g. ABN: 1234....) linked to either the location or practice.  Given that multiple pieces of information are required, an entityIdentity.companyNo with the type (ABN, VAT...) and number would be better than multiple nodes on each of party.organisationPractice and party.organisationLocation e.g.:

OpenVPMS.location.companyNo.number
OpenVPMS.location.companyNo.type

  • a contact.website linked to either the location or the practice. This will require a party:getWebsite() function.

 

 

 

Re: System documents - making it easier for non-technical users

[I had to look up DRY - I now understand why I had not heard of it - was invented in 1999 - way way after I left school ;-]

Violates DRY - agreed - but I was trying to minimise the amount of work needed to implement this. However, the existing contact setup also violates this.  For example we have 4 practice locations for the Creature Comforts housecall business [one for each housecall vet, one for accounts, and one for the office staff] - all of these should use the same letterhead - but each has separate contact data - so there are 4 copies of the location data.

In some ways the DRYest design is to have a Letterhead linkable to the practice location - then I could omit the location contact for each of my Creature Comforts location.

However, perhaps I am missing the original point of this post - making it easier for newbies.  For a simple 1 location setup, the existing contact setup (with the addition of a contact.website & party:getWebsite function and the tax info) will suffice to be able to use the supplied templates without modification. More complicated setups (like ours) can afford to have someone to fiddle with the jrxmls.

Recommendation: add support for a contact.website (for practice, location, supplier org, vet practice, customer) and add tax type and number to the practice. [In spite of Ben's having this also at the location level, I do not think it is necessary.]

Arrrrgghh - forgot the logo problem. If we hold the logo in the database, there is no way for Studio to extract it.  However, if we held a 'path to logo' for the practice, then Studio could find it.

Regards, Tim G

Re: System documents - making it easier for non-technical users

You should be able to get rid of the duplicate contacts by falling back to the practice contact if the location contact is empty or null.

For the logo, jasperreports can process images out of the database. E.g. see Patient Image.jrxml. This would require:

  • the ability to designate a logo to be used for reporting
  • a function to get the logo for the practice/location

Alternatively, a URL on the practice/location could reference an image outside OpenVPMS.

In both cases, Studio won't be able to load the image, although it could be displayed in SQL reports at run-time.

 

Re: System documents - making it easier for non-technical users

This project is proceeding well and I have converted all the customer documents (invoice, credit, receipt, etc) to use the common letterhead.

I am now attacking the statement.  The letterhead part is easy. However, the Remittance Advice is a problem (as far as the project goal of 'out of the box useable documents without needing Jaspersoft Studio expertise').

In a remittance advice one needs the following:

  • which credit cards are accepted and how
  • bank transfer/direct deposit/eft instructions
  • cheques (and checks) to be written to

I think that the most generalised way of handling this is to provide 4 more fields on the letterhead screen as follows:

All of the right hand column fields are optional. If not filled in then that item will be missing from the remittance advice.

Note that I used 'Payment Option 3' rather than 'Cheque Instructions' because of the Cheque/Check problem.

I am not sure what you might use as Option 4, but I thought it should be provided for.

The term 'Direct Deposit' is my best guess at a universal name for Direct Credit/Bank Transfer/EFT.  The 'Direct Deposit Reference' field provides the label for the transfer reference field - if the 'Direct Deposit Reference' is not blank then the reference is generated as the first 4 letters of the customer name plus their customer id - eg GETH 1234567.

Note that in the standard statement I do not intend to provide support for payment by BPAY - I figure any practice big enough to use BPAY can afford to do the required adjustments using Studio.

 

Comments please.

Regards, Tim G

Re: System documents - making it easier for non-technical users

Hi Tim,

My initial impression is that while I like the flexibility of the instruction fields, some parts might be excessive for NA users.  Surprisingly, NA lags behind the world in electronic funds manipulation.  I am always surprised when I go to the US that I have to sign the credit card receipts because they do not yet even have chip readers on their CC machines (so no PIN codes).  In Canada, and I imagine in the US as well, Direct Credit/Bank Transfer/EFT is not common at all once you are away from the Point-Of-Sale.  We can email funds but I know of no business that accepts payment that way, nor have I ever seen it offered as a payment option.  We can pay online through the bank, as through the Australian BPAY system, but like there, on-line bill paying is generally reserved for entities larger than a vet clinic.

So I think that for the NA market, just having blank fields that allow the user to put in instructions as to how to pay by check/cheque or credit card will be sufficient. For NA, for the foreseeable future, that should be sufficient.

Excellent work.

Sam

Re: System documents - making it easier for non-technical users

Once again, Sam beat me to what I would have shared. I don't have anything to add or critique. It is dead on.

Alan

Re: System documents - making it easier for non-technical users

Alan/Sam/Cahir - thanks for your input. It seems that we have sufficient flexibility to meet the various needs. Alan - your samples gave me the understanding that 'credit card by phone' was a possibility.  The remittance advice currently looks like (in Studio) [with the text dummied in]:

The totals part looks like:

where the highlighted line is not show in 'ex-Tax' mode, and in this mode the Total amounts are the ex-tax totals. In 'inc-Tax' mode the Total amounts are the inc-tax totals and the Tax: and Total+Tax: lines are omitted.

In the detail part, in ex-tax mode all the numbers are ex-tax.

Regards, Tim G

Syndicate content