Hi,

Just for reference (hope this HTML comes through ok -- cc'ing you directly Erik/Chris, just in case), here's the table schema the Drupal addressfield module stores its data in:


Column  Type    Null    Default         Comments
entity_type     varchar(128)    No              The entity type this data is 
attached to
bundle varchar(128) No The field instance bundle to which this row belongs, used when deleting a field instance deleted tinyint(4) No 0 A boolean indicating whether this data item has been deleted
entity_id       int(10) No              The entity id this data is attached to
revision_id     int(10) No              The entity revision id this data is 
attached to
language        varchar(32)     No              The language for this data item.
delta int(10) No The sequence number for this data item, used for multi-value fields field_address_country varchar(2) Yes Two letter ISO country code of this address. field_address_administrative_area varchar(255) Yes The administrative area of this address. (i.e. State/Province) field_address_sub_administrative_area varchar(255) Yes The sub administrative area of this address. field_address_locality varchar(255) Yes The locality of this address. (i.e. City) field_address_dependent_locality varchar(255) Yes The dependent locality of this address. field_address_postal_code varchar(255) Yes The postal code of this address. field_address_thoroughfare varchar(255) Yes The thoroughfare of this address. (i.e. Street address) field_address_premise varchar(255) Yes The premise of this address. (i.e. Apartment / Suite number) field_address_sub_premise varchar(255) Yes The sub_premise of this address. field_address_organisation_name varchar(255) Yes Contents of a primary OrganisationName element in the xNL XML. field_address_name_line varchar(255) Yes Contents of a primary NameLine element in the xNL XML. field_address_first_name varchar(255) Yes Contents of the FirstName element of a primary PersonName element in the xNL XML. field_address_last_name varchar(255) Yes Contents of the LastName element of a primary PersonName element in the xNL XML.
field_address_data      longtext        Yes     /NULL/  Additional data for 
this address.



... It looks like they have a custom data entry form per country, but all data is stored in a table like this (this is a specific instance of an addressfield). Without digging deeper, I would expect to find a template that describes the input format and output template for each country, mapping to these columns. Any country that wants additional arbitrary fields would likely have them serialized in field_address_data.

So it sounds like the same basic approach you propose, Erik -- sounds totally reasonable to me.

I hope this column break-down is helpful...

Cheers,
John

On 05/07/2012 11:41 AM, Erik Huelsmann wrote:


On Mon, May 7, 2012 at 5:53 AM, Chris Travers <chris.trav...@gmail.com <mailto:chris.trav...@gmail.com>> wrote:

    On Sun, May 6, 2012 at 8:30 PM, John Locke <m...@freelock.com
    <mailto:m...@freelock.com>> wrote:
    > Drupal 7 has been addressing :-P these issues with an
    "addressfield" module
    > ( http://drupal.org/project/addressfield ), which aims to
    incorporate the
    > flexibility of xNAL - http://xml.coverpages.org/xnal.html .

    Interesting idea.  I am all for incorporating work of others into
    LedgerSMB.  However, I am not sure how this would be done since I
    doubt our invoices, check printing, etc. will ever move off TT/LaTeX.
    it seems to me we'd have to find out what they are doing regarding
    address formats and convert these into TT snippets to be used.


Chris and I evaluated xNAL this afternoon and while it seems to be a very good tool to help design a schema for storing names and addresses, it doesn't seem to concern itself with actual representation of address data.

Some of the links enumerated by Havard elsethread do do that. Going over the examples provided by BitBoost.com, we've come up with the following solution:

We think about creating a default address template and adding the option to add a template per country.

When producing an address, the template (either the default or the country specific one) would be processed by template toolkit to fill out name, street, etc. Then the result will be post-processed to remove any white-space-only lines from the output.

The end result being an opaque array of lines to be printed on an envelope, invoice or other document -- without the need to build the same intelligence into every template.

Would this be a suitable solution to most situations you can imagine using LedgerSMB?


Bye,

Erik.
!DSPAM:4fa81801314441714917295!


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/

!DSPAM:4fa81801314441714917295!


_______________________________________________
Ledger-smb-devel mailing list
Ledger-smb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ledger-smb-devel


!DSPAM:4fa81801314441714917295!

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Ledger-smb-devel mailing list
Ledger-smb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ledger-smb-devel

Reply via email to