コード例 #1
0
ファイル: fund.py プロジェクト: gordon-elliott/glod
def funds_from_gsheet(session, extract_from_detailed_ledger):

    fund_gsheet = get_gsheet_fields(
        Fund, {
            'name': 'fund',
            'restriction': 'type',
            'is parish fund': 'parish fund',
            'is realised': 'realised',
            'account': 'bank account id'
        })
    fund_gsheet['restriction'] = StringField('restriction')
    fund_gsheet['parish fund'] = StringField('parish fund')
    fund_gsheet['realised'] = StringField('realised')
    fund_gsheet['bank account id'] = StringField('bank account id')
    field_casts = {
        'type':
        conform_fund_restriction,
        'parish fund':
        conform_yes_no,
        'realised':
        conform_yes_no,
        'bank account id':
        AccountQuery(session).instance_finder('reference_no', int)
    }
    fund_mapping = Mapping(fund_gsheet,
                           Fund.constructor_parameters,
                           field_casts=field_casts)
    funds = extract_from_detailed_ledger(
        'funds', 'A11',
        ('fund', 'type', 'parish fund', 'realised', 'bank account id'))
    load_class(session, funds, fund_mapping, Fund)
コード例 #2
0
def nominal_accounts_from_gsheet(session, extract_from_detailed_ledger):
    nominal_account_gsheet = get_gsheet_fields(
        NominalAccount, {
            'code': 'Code',
            'description': 'Description',
            'SOFA heading': 'SOFA heading',
            'category': 'Category',
            'sub category': 'Sub-category',
        })
    nominal_account_gsheet['SOFA heading'] = StringField('SOFA heading')
    nominal_account_gsheet['Category'] = StringField('Category')
    nominal_account_gsheet['Sub-category'] = StringField('Sub-category')
    field_casts = {
        'SOFA heading': conform_sofa_heading,
        'Category': conform_category,
        'Sub-category': conform_sub_category,
    }
    nominal_account_mapping = Mapping(nominal_account_gsheet,
                                      NominalAccount.constructor_parameters,
                                      field_casts=field_casts)
    nominal_accounts = extract_from_detailed_ledger(
        'RCB Nominal Accounts', 'A1',
        ('Code', 'Description', 'SOFA heading', 'Category', 'Sub-category'))
    load_class(session, nominal_accounts, nominal_account_mapping,
               NominalAccount)
コード例 #3
0
def households_from_gsheet(session, extract_from_parish_list):
    household_gsheet = get_gsheet_fields(
        Household, {
            'reference no': 'id',
            'address1': 'ADDRESS1',
            'address2': 'ADDRESS2',
            'address3': 'ADDRESS3',
            'county': 'County',
            'eircode': 'EIRCODE',
            'telephone': 'landline',
        })
    household_mapping = Mapping(household_gsheet,
                                Household.constructor_parameters,
                                field_casts={
                                    'address1': strip_commas_and_spaces,
                                    'address2': strip_commas_and_spaces,
                                    'address3': strip_commas_and_spaces,
                                    'county': strip_commas_and_spaces,
                                    'eircode': strip_commas_and_spaces,
                                })
    household_rows = extract_from_parish_list(
        'households', 'A1', ('id', 'ADDRESS1', 'ADDRESS2', 'ADDRESS3',
                             'County', 'EIRCODE', 'landline'))
    households = list(
        model_instances(household_rows, household_mapping, Household))
    session.add_all(households)
コード例 #4
0
ファイル: subject.py プロジェクト: gordon-elliott/glod
def subjects_from_gsheet(session, extract_from_detailed_ledger):
    subject_gsheet = get_gsheet_fields(Subject, {
        'name': 'subject',
    })
    subject_mapping = Mapping(subject_gsheet, Subject.constructor_parameters)
    subjects = extract_from_detailed_ledger(
        'report lookups', 'A3',
        ('subject', 'select vestry summary', 'easter vestry summary'))
    load_class(session, subjects, subject_mapping, Subject)
コード例 #5
0
ファイル: account.py プロジェクト: gordon-elliott/glod
def accounts_from_gsheet(session, extract_from_detailed_ledger):
    account_gsheet = get_gsheet_fields(Account, {'reference no': 'id'})
    account_gsheet['status'] = StringField('status')
    account_mapping = Mapping(account_gsheet,
                              Account.constructor_parameters,
                              field_casts=field_casts)
    accounts = extract_from_detailed_ledger(
        'bank accounts', 'A1',
        ('id', 'purpose', 'status', 'name', 'institution', 'sort code',
         'account no', 'BIC', 'IBAN'))
    load_class(session, accounts, account_mapping, Account)
コード例 #6
0
def statement_item_from_gsheet(session, extract_from_detailed_ledger):

    statement_item_gsheet = get_gsheet_fields(StatementItem, None)
    field_casts = {
        'account': AccountQuery(session).instance_finder('account_no', None),
        'date': cast_dmy_date_from_string,
        'debit': strip_commas,
        'credit': strip_commas,
        'balance': ignore_na,
        'designated balance': cast_designated_balance,
    }
    statement_item_mapping = Mapping(statement_item_gsheet,
                                     StatementItem.constructor_parameters,
                                     field_casts=field_casts)
    statement_items = extract_from_detailed_ledger(
        'bank statements', 'A1',
        ('account', 'date', 'details', 'currency', 'debit', 'credit',
         'balance', 'detail override', 'designated balance'))
    load_class(session, statement_items, statement_item_mapping, StatementItem)