Kode untuk membuat tabel berisi ABN untuk perusahaan yang terdaftar di Australian Business Register di situs pencarian ABN
Ada tiga tabel dalam skema abn_lookup
:
abns
: Ini adalah tabel utama yang berisi informasi identitas setiap entitas dengan nomor ABN terdaftar.
trading_names
: Tabel ini berisi nama dagang setiap perusahaan yang terdaftar ABN.
dgr
: Tabel ini berisi nama-nama item penerima hadiah yang dapat dikurangkan untuk setiap ABN.
abns
Tabel ini memiliki entri untuk setiap nomor ABN yang pernah didaftarkan, beserta . Bidangnya adalah
abn
: Nomor ABN, ditulis sebagai string.
abn_status
: Bidang ini merinci apakah entitas yang terkait dengan ABN aktif, yang bidangnya sama dengan string 'ACT', atau dibatalkan, yang bidangnya sama dengan string 'CAN'.
abn_status_from_date
: Ini adalah tanggal ABN didaftarkan.
record_last_updated_date
: tanggal terakhir informasi yang terkait dengan ABN diperbarui.
replaced
: (apakah ABN ini sudah diganti yang lain???)
entity_type_ind
: bidang ini berisi tipe entitas sebagai indeks (seperti yang diberikan oleh ABR di sini)
entity_type_text
: bidang ini berisi tipe entitas yang ditulis sebagai teks.
asic_number
: ACN atau ARBN terdaftar dari entitas, jika entitas terdaftar di ASIC.
asic_number_type
: tipe asic_number
(catatan: sejauh ini sepertinya ABR tidak terlalu memanfaatkan kolom ini)
gst_status
: bidang ini merinci apakah entitas telah atau pernah mendaftar untuk GST. Jika entitas saat ini terdaftar, kolom ini sama dengan string 'ACT'. Jika entitas telah terdaftar untuk GST namun pendaftarannya telah dibatalkan, kolom ini sama dengan 'CAN'. Jika entitas belum pernah mendaftar GST, kolom ini sama dengan 'NON'.
gst_status_from_date
: tanggal entitas didaftarkan untuk GST. Sama dengan NULL jika gst_status
adalah 'NON'.
main_ent_type
: tipe entitas utama, jika ada (catatan: kolom ini mungkin mubazir)
main_ent_name
: nama entitas, jika entitas tersebut bukan perseorangan.
main_ent_add_state
: keadaan alamat entitas, jika entitas tersebut bukan perorangan.
main_ent_add_postcode
: kode pos alamat entitas, jika entitas bukan perseorangan.
legal_ent_type
: jenis badan hukum, jika ada (catatan: kolom ini mungkin mubazir)
legal_ent_title
: gelar (yaitu Tuan, Nyonya, Dr dll...) dari nama entitas, jika entitas tersebut adalah perseorangan.
legal_ent_family_name
: nama belakang entitas, jika entitas tersebut adalah perorangan.
legal_ent_given_names
: nama entitas yang diberikan, jika entitas tersebut adalah perorangan, ditulis secara berurutan dalam satu string.
legal_ent_add_state
: keadaan alamat entitas, jika entitas tersebut adalah perorangan.
legal_ent_add_postcode
: kode pos alamat badan, jika badannya perseorangan.
trading_names
Tabel ini berisi semua nama bisnis terdaftar dan nama dagang yang digunakan oleh entitas dengan ABN tertentu. Setiap baris tabel berhubungan dengan satu contoh node OtherEntity
dalam file xml ekstrak massal asli. Bidangnya adalah:
abn
: ABN entitas.name
: nama bisnis atau nama dagangtype
: jenis nama, apakah nama usaha ('BN'), nama dagang ('TRD'), atau yang lainnya ('OTN'). dgr
Tabel ini berisi semua item penerima hadiah donasi (DGR) suatu entitas dengan ABN yang diberikan. Setiap baris tabel berhubungan dengan satu contoh node DGR
dalam file xml ekstrak massal asli. Bidangnya adalah:
abn
: ABN entitas.name
: nama barang penerima hadiah donasi.type
: jenis namanya (sepertinya selalu 'DGR', jadi mungkin mubazir).dgr_status_from_date
: tanggal barang DGR didaftarkan. get_abn_lookup_data.py
: ini adalah program utama. Ia menggunakan browser web Selenium otomatis tanpa kepala untuk menavigasi ke halaman unduh data Ekstrak Massal ABN di data.gov.au
, mengunduh dua file zip, lalu mengekstrak file xml dari zip ke direktori sementara abn_lookup/xml_files
, kemudian gunakan program yang dijelaskan di bawah ini untuk mengonversi file xml menjadi sejumlah keluaran csv. Output csv ini disalurkan ke perintah yang menulis output ini langsung ke tabel abns
, trading_names
dan dgr
, menggunakan perintah psql
. Program ini kemudian memutuskan, berdasarkan keberhasilan kegagalan melakukan tugas sebelumnya, untuk menghapus tabel lama dan menyimpan tabel baru, atau menghapus tabel baru yang dihasilkan dan mempertahankan tabel lama, menggunakan sejumlah skrip sql yang juga dijelaskan di bawah .
xml_to_csv_abns.xsl
: ini adalah skrip xsl yang akan digunakan oleh program XSLT, untuk melakukan transformasi XSLT dari salah satu file xml asli ke dalam format csv yang sesuai dengan struktur tabel abns
. Output ini disalurkan dan kemudian ditulis ke dalam tabel ini.
xml_to_csv_trading_names.xsl
: sama seperti di atas, tetapi untuk tabel trading_names
.
xml_to_csv_dgr.xsl
: sama seperti di atas, tetapi untuk tabel dgr
.
create_new_abn_lookup_tables.sql
: skrip sql ini mengganti nama tabel saat ini di abn_lookup
menjadi abns_old
, trading_names_old
dan dgr_old
, lalu membuat tabel baru dengan nama abns
, trading_names
dan dgr
.
delete_old_abn_lookup_tables.sql
: skrip sql ini menghapus abns_old
, trading_names_old
dan dgr_old
. Ini digunakan oleh get_abn_lookup_data.py
jika pemrosesan semua file xml dari ekstrak massal ABN berhasil.
keep_old_abn_lookup_tables.sql
: skrip sql ini menghapus abns
, trading_names
dan dgr
yang baru diproduksi, lalu mengganti abns_old
, trading_names_old
dan dgr_old
kembali ke nama aslinya. Ini digunakan oleh get_abn_lookup_data.py
jika terjadi kegagalan dalam memproses satu atau lebih file xml dari ekstrak massal ABN.