示例#1
0
文件: report.py 项目: stevenc987/lear
    def _get_template_data(self):  # pylint: disable=too-many-branches
        if self._report_key == 'noa':
            filing = VersionedBusinessDetailsService.get_company_details_revision(
                self._filing.id, self._business.id)
            self._format_noa_data(filing)
        else:
            filing = copy.deepcopy(self._filing.filing_json['filing'])
            filing['header']['filingId'] = self._filing.id
            if self._report_key == 'incorporationApplication':
                self._format_incorporation_data(filing)
            elif self._report_key == 'alterationNotice':
                self._format_alteration_data(filing)
            else:
                # set registered office address from either the COA filing or status quo data in AR filing
                with suppress(KeyError):
                    self._set_addresses(filing)
                # set director list from either the COD filing or status quo data in AR filing
                with suppress(KeyError):
                    self._set_directors(filing)

            if self._report_key == 'transition':
                self._format_transition_data(filing)

            # since we reset _report_key with correction type
            if filing['header']['name'] == 'correction':
                self._format_with_diff_data(filing)

            # name change from named company to numbered company case
            if self._report_key in ('certificateOfNameChange', 'alterationNotice') and 'nameRequest' in \
                    filing['alteration'] and 'legalName' not in filing['alteration']['nameRequest']:
                versioned_business = \
                    VersionedBusinessDetailsService.get_business_revision_after_filing(self._filing.id,
                                                                                       self._business.id)
                filing['alteration']['nameRequest'][
                    'legalName'] = versioned_business['legalName']

        filing['header']['reportType'] = self._report_key

        if (filing['header']['reportType'] == 'alterationNotice'
                and filing['previousLegalType'] != 'BEN'
                and filing['business']['legalType']
                == 'BEN') or (filing['header']['reportType'] == 'noa'
                              and filing['business']['legalType'] == 'BEN'):
            filing['isBenefitCompanyStmt'] = True

        self._set_dates(filing)
        self._set_description(filing)
        self._set_tax_id(filing)
        self._set_meta_info(filing)
        self._set_registrar_info(filing)
        return filing
示例#2
0
 def _format_alteration_data(self, filing):
     # Get current list of translations in alteration. None if it is deletion
     filing['listOfTranslations'] = filing['alteration'].get('nameTranslations', [])
     # Get previous translations for deleted translations. No record created in aliases version for deletions
     filing['nameTranslations'] = VersionedBusinessDetailsService.get_name_translations_before_revision(
         self._filing.transaction_id, self._business.id)
     if filing['alteration'].get('shareStructure', None):
         filing['shareClasses'] = filing['alteration']['shareStructure']['shareClasses']
         filing['resolutions'] = filing['alteration']['shareStructure'].get('resolutionDates', [])
     # Get previous business type
     versioned_business = VersionedBusinessDetailsService.get_business_revision_before_filing(
         self._filing.id, self._business.id)
     new_legal_type = versioned_business['legalType']
     filing['alteration']['business']['legalType'] = new_legal_type
     with suppress(KeyError):
         filing['legalTypeDescription'] = ReportMeta.entity_description[new_legal_type]
示例#3
0
    def _get_template_data(self):  # pylint: disable=too-many-branches
        if self._report_key == 'noa':
            filing = VersionedBusinessDetailsService.get_company_details_revision(self._filing.id, self._business.id)
            self._format_noa_data(filing)
        else:
            filing = copy.deepcopy(self._filing.filing_json['filing'])
            filing['header']['filingId'] = self._filing.id
            if self._report_key == 'incorporationApplication':
                self._format_incorporation_data(filing)
            else:
                # set registered office address from either the COA filing or status quo data in AR filing
                with suppress(KeyError):
                    self._set_addresses(filing)
                # set director list from either the COD filing or status quo data in AR filing
                with suppress(KeyError):
                    self._set_directors(filing)

            if self._report_key == 'transition':
                self._format_transition_data(filing)

            # since we reset _report_key with correction type
            if filing['header']['name'] == 'correction':
                self._format_with_diff_data(filing)

        filing['header']['reportType'] = self._report_key
        self._set_dates(filing)
        self._set_description(filing)
        self._set_tax_id(filing)
        self._set_meta_info(filing)
        self._set_registrar_info(filing)
        return filing
示例#4
0
 def _format_alteration_data(self, filing):
     # Get current list of translations in alteration. None if it is deletion
     if 'nameTranslations' in filing['alteration']:
         filing['listOfTranslations'] = filing['alteration'].get(
             'nameTranslations', [])
         # Get previous translations for deleted translations. No record created in aliases version for deletions
         filing[
             'previousNameTranslations'] = VersionedBusinessDetailsService.get_name_translations_before_revision(
                 self._filing.transaction_id, self._business.id)
     if filing['alteration'].get('shareStructure', None):
         filing['shareClasses'] = filing['alteration']['shareStructure'][
             'shareClasses']
         filing['resolutions'] = filing['alteration']['shareStructure'].get(
             'resolutionDates', [])
     # Get previous business type
     versioned_business = VersionedBusinessDetailsService.get_business_revision_before_filing(
         self._filing.id, self._business.id)
     prev_legal_type = versioned_business['legalType']
     filing['previousLegalType'] = prev_legal_type
     corp_type = CorpType.find_by_id(prev_legal_type)
     filing['previousLegalTypeDescription'] = corp_type.full_desc
示例#5
0
 def _populate_business_info_to_filing(filing: Filing, business: Business):
     founding_datetime = LegislationDatetime.as_legislation_timezone(business.founding_date)
     hour = founding_datetime.strftime('%I')
     if filing.transaction_id:
         business_json = VersionedBusinessDetailsService.get_business_revision(filing.transaction_id, business)
     else:
         business_json = business.json()
     business_json['formatted_founding_date_time'] = \
         founding_datetime.strftime(f'%B %-d, %Y at {hour}:%M %p Pacific Time')
     business_json['formatted_founding_date'] = founding_datetime.strftime('%B %-d, %Y')
     filing.filing_json['filing']['business'] = business_json
     filing.filing_json['filing']['header']['filingId'] = filing.id
示例#6
0
def test_alteration_name_change(session):
    """Assert alteration name change filings can be returned as a PDF."""
    numbered_company_name = '1234567 B.C. Ltd.'
    named_company_name = 'New Name Ltd.'
    identifier = 'BC1234567'
    entity_type = 'BEN'
    report_type = 'certificateOfNameChange'

    # An existing business
    business = factory_business(identifier=identifier, entity_type=entity_type)

    # changes its name to a named company
    named_company_filing = filing_named_company(business,
                                                ALTERATION_FILING_TEMPLATE,
                                                named_company_name)
    update_business_legal_name(business, named_company_name)
    named_company_report = create_alteration_report(named_company_filing,
                                                    business, report_type)
    named_company_report_filename = named_company_report._get_report_filename()
    assert named_company_report_filename
    named_company_report_template = named_company_report._get_template()
    assert named_company_report_template
    named_company_report_template_data = named_company_report._get_template_data(
    )
    assert named_company_report_template_data['alteration']['nameRequest'][
        'legalName'] == named_company_name

    # changes its name to a numbered company
    numbered_company_filing = filing_numbered_company(
        business, ALTERATION_FILING_TEMPLATE, numbered_company_name)
    update_business_legal_name(business, numbered_company_name)

    # new legal_name can be retrieved from the versioned business (numbered company case)
    business_revision = \
        VersionedBusinessDetailsService.get_business_revision_after_filing(numbered_company_filing.id, business.id)
    assert business_revision['legalName'] == numbered_company_name
    numbered_company_report = create_alteration_report(numbered_company_filing,
                                                       business, report_type)
    numbered_company_filename = numbered_company_report._get_report_filename()
    assert numbered_company_filename
    numbered_company_template = numbered_company_report._get_template()
    assert numbered_company_template
    numbered_company_template_data = numbered_company_report._get_template_data(
    )
    assert numbered_company_template_data['alteration']['nameRequest'][
        'legalName'] == numbered_company_name