رمز لإنشاء جداول تحتوي على أرقام ABN للشركات المسجلة في سجل الأعمال الأسترالي على موقع البحث عن ABN
هناك ثلاثة جداول في مخطط abn_lookup
:
abns
: هذا هو الجدول الرئيسي الذي يحتوي على معلومات تعريفية عن كل كيان لديه رقم ABN مسجل.
trading_names
: يحتوي هذا الجدول على الأسماء التجارية لكل شركة ذات رقم ABN مسجل.
dgr
: يحتوي هذا الجدول على أسماء عناصر مستلمي الهدايا القابلة للخصم لكل ABN.
abns
يحتوي هذا الجدول على إدخال لكل رقم ABN تم تسجيله على الإطلاق، بالإضافة إلى . الحقول هي
abn
: رقم ABN، مكتوب كسلسلة.
abn_status
: يوضح هذا الحقل ما إذا كان الكيان المرتبط بـ ABN إما نشطًا، حيث يكون هذا الحقل مساويًا للسلسلة "ACT"، أو ملغى، حيث يكون الحقل مساويًا للسلسلة "CAN".
abn_status_from_date
: هذا هو تاريخ تسجيل ABN.
record_last_updated_date
: تاريخ آخر تحديث للمعلومات المرتبطة بـ ABN.
replaced
: (هل هذا ABN قد حل محل آخر ؟؟؟)
entity_type_ind
: يحتوي هذا الحقل على نوع الكيان كفهرس (كما هو موضح بواسطة ABR هنا)
entity_type_text
: يحتوي هذا الحقل على نوع الكيان المكتوب كنص.
asic_number
: رقم ACN أو ARBN المسجل للكيان، إذا كان الكيان مسجلاً لدى ASIC.
asic_number_type
: نوع asic_number
(ملاحظة: حتى الآن، يبدو أن ABR لا يستخدم هذا العمود حقًا)
gst_status
: يوضح هذا الحقل ما إذا كان الكيان قد سجل أو سبق له التسجيل في ضريبة السلع والخدمات. إذا كان الكيان مسجلاً حاليًا، فإن هذا الحقل يساوي السلسلة "ACT". إذا تم تسجيل الكيان في ضريبة السلع والخدمات ولكن تم إلغاء التسجيل منذ ذلك الحين، فإن هذا الحقل يساوي "CAN". إذا لم يسبق للكيان التسجيل في ضريبة السلع والخدمات، فإن هذا الحقل يساوي "NON".
gst_status_from_date
: تاريخ تسجيل المنشأة لضريبة السلع والخدمات. يساوي NULL إذا كانت gst_status
هي "NON".
main_ent_type
: نوع الكيان الرئيسي، إن أمكن (ملاحظة: قد يكون هذا العمود زائدًا عن الحاجة)
main_ent_name
: اسم الكيان إذا لم يكن الكيان فردا.
main_ent_add_state
: حالة عنوان الكيان إذا لم يكن الكيان فردًا.
main_ent_add_postcode
: الرمز البريدي لعنوان الجهة إذا لم تكن الجهة فرداً.
legal_ent_type
: نوع الكيان القانوني، إن أمكن (ملاحظة: قد يكون هذا العمود زائدًا عن الحاجة)
legal_ent_title
: اللقب (أي السيد، السيدة، الدكتور، الخ...) لاسم المنشأة إذا كانت المنشأة فرداً.
legal_ent_family_name
: لقب الكيان إذا كان الكيان فردا.
legal_ent_given_names
: الأسماء المحددة للكيان، إذا كان الكيان فردا، مكتوبة بالترتيب كسلسلة واحدة.
legal_ent_add_state
: حالة عنوان الكيان إذا كان الكيان فردا.
legal_ent_add_postcode
: الرمز البريدي لعنوان الجهة إذا كانت الجهة فرداً.
trading_names
يحتوي هذا الجدول على جميع أسماء الأعمال التجارية المسجلة والأسماء التجارية التي يعمل بموجبها كيان لديه ABN معين. يتوافق كل صف من الجدول مع مثيل واحد لعقدة OtherEntity
في الاستخراج المجمع الأصلي لملفات XML. الحقول هي:
abn
: رقم ABN للمنشأة.name
: الاسم التجاري أو الاسم التجاريtype
: نوع الاسم، سواء كان اسمًا تجاريًا ('BN')، أو اسمًا تجاريًا ('TRD')، أو أي شيء آخر ('OTN'). dgr
يحتوي هذا الجدول على جميع عناصر مستلمي هدايا التبرع (DGR) الخاصة بكيان لديه رقم ABN محدد. يتوافق كل صف من الجدول مع مثيل واحد لعقدة DGR
في ملفات XML الأصلية للاستخراج المجمع. الحقول هي:
abn
: رقم ABN للمنشأة.name
: اسم عنصر مستلم هدية التبرع.type
: نوع الاسم (يبدو أن هذا هو دائمًا "DGR"، لذا ربما يكون زائدًا عن الحاجة).dgr_status_from_date
: تاريخ تسجيل عنصر DGR. get_abn_lookup_data.py
: هذا هو البرنامج الرئيسي. يستخدم متصفح الويب السيلينيوم الآلي بدون رأس للانتقال إلى صفحات التنزيل الخاصة ببيانات ABN Bulk Extract الموجودة على data.gov.au
، ويقوم بتنزيل الملفين المضغوطين، ثم يستخرج ملفات xml من الملفات المضغوطة إلى دليل مؤقت abn_lookup/xml_files
، ثم يستخدم البرامج الموضحة أدناه لتحويل ملفات XML إلى عدد من مخرجات CSV. يتم إرسال مخرجات csv هذه إلى أمر يكتب هذه المخرجات مباشرة في الجداول abns
و trading_names
و dgr
، باستخدام أمر psql
. بعد ذلك يقرر هذا البرنامج، بناءً على نجاح الفشل في تنفيذ المهمة السابقة، إما حذف الجداول القديمة والاحتفاظ بالجداول الجديدة، أو حذف الجداول الجديدة التي تم إنتاجها والاحتفاظ بالجداول القديمة، وذلك باستخدام عدد من نصوص SQL الموضحة أيضًا أدناه .
xml_to_csv_abns.xsl
: هذا هو برنامج نصي xsl يستخدم بواسطة برنامج XSLT، من أجل إجراء تحويل XSLT لأحد ملفات xml الأصلية إلى تنسيق csv الذي يتوافق مع بنية الجدول abns
. يتم نقل هذا الإخراج ثم كتابته في هذا الجدول.
xml_to_csv_trading_names.xsl
: نفس ما ورد أعلاه، ولكن بالنسبة لجدول trading_names
.
xml_to_csv_dgr.xsl
: نفس ما ورد أعلاه، ولكن بالنسبة لجدول dgr
.
create_new_abn_lookup_tables.sql
: يقوم برنامج SQL النصي هذا بإعادة تسمية الجداول الحالية في abn_lookup
إلى abns_old
و trading_names_old
و dgr_old
، ثم يقوم بإنشاء جداول جديدة بالأسماء abns
و trading_names
و dgr
.
delete_old_abn_lookup_tables.sql
: يقوم برنامج SQL النصي هذا بحذف abns_old
و trading_names_old
و dgr_old
. يتم استخدام ذلك بواسطة get_abn_lookup_data.py
في حالة نجاح معالجة جميع ملفات xml من استخراج ABN المجمع.
keep_old_abn_lookup_tables.sql
: يحذف برنامج SQL النصي abns
و trading_names
و dgr
المنتجين حديثًا، ثم يعيد تسمية abns_old
و trading_names_old
و dgr_old
إلى أسمائهم الأصلية. يتم استخدام هذا بواسطة get_abn_lookup_data.py
في حالة حدوث بعض الفشل في معالجة واحد أو أكثر من ملفات xml من استخراج ABN المجمع.