Code permettant de créer des tableaux contenant les ABN pour les sociétés inscrites au Australian Business Register sur le site de recherche d'ABN
Il y a trois tables dans le schéma abn_lookup
:
abns
: Il s'agit du tableau principal qui contient des informations d'identification sur chaque entité avec un numéro ABN enregistré.
trading_names
: ce tableau contient les noms commerciaux de chaque société avec un ABN enregistré.
dgr
: Ce tableau contient les noms des articles du destinataire du cadeau déductibles pour chaque ABN.
abns
Ce tableau contient une entrée pour chaque numéro ABN jamais enregistré, ainsi que le . Les champs sont
abn
: Le numéro ABN, écrit sous forme de chaîne.
abn_status
: Ce champ précise si l'entité associée à l'ABN est soit active, pour laquelle ce champ est égal à la chaîne 'ACT', soit annulée, pour laquelle le champ est égal à la chaîne 'CAN'.
abn_status_from_date
: Il s'agit de la date à laquelle l'ABN a été enregistré.
record_last_updated_date
: la date à laquelle les informations associées à l'ABN ont été mises à jour pour la dernière fois.
replaced
: (si cet ABN en a remplacé un autre ???)
entity_type_ind
: ce champ contient le type d'entité sous forme d'index (tel que donné par l'ABR ici)
entity_type_text
: ce champ contient le type d'entité écrit sous forme de texte.
asic_number
: l'ACN ou l'ARBN enregistré de l'entité, si l'entité est enregistrée auprès de l'ASIC.
asic_number_type
: le type de l' asic_number
(note : jusqu'à présent, il semble que l'ABR n'utilise pas vraiment cette colonne)
gst_status
: ce champ détaille si l'entité s'est ou s'est déjà inscrite à la TPS. Si l'entité est actuellement enregistrée, ce champ est égal à la chaîne 'ACT'. Si l'entité a été inscrite à la TPS mais que l'inscription a depuis été annulée, ce champ est égal à « CAN ». Si l'entité ne s'est jamais inscrite à la TPS, ce champ est égal à « NON ».
gst_status_from_date
: la date à laquelle l'entité a été enregistrée à la TPS. Égal à NULL si gst_status
est « NON ».
main_ent_type
: le type d'entité principale, le cas échéant (remarque : cette colonne peut être redondante)
main_ent_name
: le nom de l'entité, si l'entité n'est pas un individu.
main_ent_add_state
: l'état de l'adresse de l'entité, si l'entité n'est pas un individu.
main_ent_add_postcode
: le code postal de l'adresse de l'entité, si l'entité n'est pas un particulier.
legal_ent_type
: le type d'entité juridique, le cas échéant (attention : cette colonne peut être redondante)
legal_ent_title
: le titre (c'est-à-dire M., Mme, Dr etc...) du nom de l'entité, si l'entité est une personne physique.
legal_ent_family_name
: le nom de famille de l'entité, si l'entité est un particulier.
legal_ent_given_names
: les prénoms de l'entité, si l'entité est un individu, écrits dans l'ordre sous forme d'une seule chaîne.
legal_ent_add_state
: l'état de l'adresse de l'entité, si l'entité est un particulier.
legal_ent_add_postcode
: le code postal de l'adresse de l'entité, si l'entité est un particulier.
trading_names
Ce tableau contient toutes les dénominations sociales enregistrées et les noms commerciaux sous lesquels une entité possédant un ABN donné exerce ses activités. Chaque ligne du tableau correspond à une instance unique d'un nœud OtherEntity
dans les fichiers XML d'extraction en masse d'origine. Les champs sont :
abn
: L'ABN de l'entité.name
: la raison sociale ou le nom commercialtype
: le type du nom, qu'il s'agisse d'un nom commercial (« BN »), d'un nom commercial (« TRD ») ou autre chose (« OTN »). dgr
Ce tableau contient tous les éléments du destinataire du don (DGR) d'une entité avec un ABN donné. Chaque ligne du tableau correspond à une instance unique d'un nœud DGR
dans les fichiers XML d'extraction en masse d'origine. Les champs sont :
abn
: L'ABN de l'entité.name
: le nom de l'article du destinataire du don.type
: le type du nom (il semble que ce soit toujours 'DGR', donc probablement redondant).dgr_status_from_date
: la date à laquelle l'élément DGR a été enregistré. get_abn_lookup_data.py
: c'est le programme principal. Il utilise un navigateur Web Selenium automatisé et sans tête pour accéder aux pages de téléchargement des données ABN Bulk Extract sur data.gov.au
, télécharge les deux fichiers zip, puis extrait les fichiers XML des zips dans un répertoire temporaire abn_lookup/xml_files
. utilise ensuite les programmes décrits ci-dessous pour convertir les fichiers XML en un certain nombre de sorties CSV. Ces sorties csv sont redirigées vers une commande qui écrit ces sorties directement dans les tables abns
, trading_names
et dgr
, à l'aide d'une commande psql
. Ce programme décide alors, en fonction du succès ou de l'échec de la tâche précédente, soit de supprimer les anciennes tables et de conserver les nouvelles, soit de supprimer les nouvelles produites et de conserver les anciennes tables, en utilisant un certain nombre de scripts SQL également décrits ci-dessous. .
xml_to_csv_abns.xsl
: il s'agit d'un script xsl à utiliser par le programme XSLT, afin d'effectuer une transformation XSLT d'un des fichiers xml originaux dans un format csv qui correspond à la structure de la table abns
. Cette sortie est redirigée puis écrite dans cette table.
xml_to_csv_trading_names.xsl
: identique à ci-dessus, mais pour la table trading_names
.
xml_to_csv_dgr.xsl
: idem que ci-dessus, mais pour la table dgr
.
create_new_abn_lookup_tables.sql
: ce script SQL renomme les tables actuelles dans abn_lookup
en abns_old
, trading_names_old
et dgr_old
, puis crée de nouvelles tables avec les noms abns
, trading_names
et dgr
.
delete_old_abn_lookup_tables.sql
: ce script sql supprime abns_old
, trading_names_old
et dgr_old
. Ceci est utilisé par get_abn_lookup_data.py
dans le cas où le traitement de tous les fichiers XML de l'extraction groupée ABN réussit.
keep_old_abn_lookup_tables.sql
: ce script SQL supprime les abns
, trading_names
et dgr
nouvellement produits, puis renomme abns_old
, trading_names_old
et dgr_old
à leurs noms d'origine. Ceci est utilisé par get_abn_lookup_data.py
dans le cas où il y a eu un échec dans le traitement d'un ou plusieurs fichiers XML à partir de l'extraction groupée ABN.