Пример #1
0
def my_consultant_data(worksheet, header_dict, registrations, dto):
    def add_column(value='', style='cell', write_type='write'):
        columns.append({'value': value, 'style': style, 'write_type': write_type})

    for i, data in enumerate(registrations):
        columns = []

        academic_period_year = data.academic_period.get_year() if data.academic_period else ''
        start_date = data.get_register_start_date()
        end_date = data.get_register_end_date()
        program_name = ''
        program_category = ''
        supervisor_full_name = ''

        if start_date:
            start_date = start_date.strftime('%d-%b-%Y')

        if end_date:
            end_date = end_date.strftime('%d-%b-%Y')

        if data.program:
            program_name = data.program.program_base.name
            program_category = data.program.program_base.category.name

        if data.consultant.consultantprofile.supervisor:
            supervisor_full_name = data.consultant.consultantprofile.supervisor.common_name

        notes = []
        for note in data.note_set.all():
            if note.description:
                notes.append(note.description)

        add_column(academic_period_year, 'cell_center')
        add_column(data.pk, 'cell_center')
        add_column(data.get_status_display(), 'cell_center')

        if data.created:
            add_column(data.created.replace(tzinfo=None), 'date_format', 'write_datetime')
        else:
            add_column()

        add_column(data.costumer.get_full_name())
        add_column(data.nemonic or '')
        add_column(program_category)
        add_column(program_name)
        add_column(data.consultant.common_name)
        add_column(supervisor_full_name)
        add_column(data.get_duration_code())
        add_column(start_date)
        add_column(end_date)
        add_column(' | '.join(notes))

        create_row(columns, i, worksheet, header_dict)
Пример #2
0
def __data(worksheet, header_dict, registrations):
    def add_column(value='', style='cell', write_type='write'):
        columns.append({
            'value': value,
            'style': style,
            'write_type': write_type
        })

    for i, data in enumerate(registrations):
        columns = []

        academic_period_year = data.academic_period.get_year(
        ) if data.academic_period else ''
        program_name = ''
        program_category = ''
        supervisor_common_name = ''

        if data.program:
            program_name = data.program.program_base.name
            program_category = data.program.program_base.category.name

        if data.consultant.consultantprofile.supervisor:
            supervisor_common_name = data.consultant.consultantprofile.supervisor.common_name

        notes = []
        for note in data.note_set.all():
            if note.description:
                notes.append(note.description)

        add_column(data.consultant.consultantprofile.get_market_name(),
                   'cell_center')
        add_column(academic_period_year, 'cell_center')
        add_column(data.get_status_display(), 'cell_center')
        add_column(data.costumer.get_full_name())
        add_column(program_category)
        add_column(program_name)
        add_column(data.get_duration_code())
        add_column(data.consultant.common_name)
        add_column(supervisor_common_name)
        if data.helper_creator:
            add_column(data.helper_creator.common_name)
        else:
            add_column()

        create_row(columns, i, worksheet, header_dict)
Пример #3
0
def __data(worksheet, header_dict, registrations):
    def add_column(value='', style='cell', write_type='write'):
        columns.append({
            'value': value,
            'style': style,
            'write_type': write_type
        })

    for i, data in enumerate(registrations):
        columns = []

        program_name = ''
        program_category = ''
        birth_date = ''

        if data.program:
            program_name = data.program.program_base.name
            program_category = data.program.program_base.category.name

        notes = []
        for note in data.note_set.all():
            if note.description:
                notes.append(note.description)

        if data.costumer.profile.birth_date:
            if data.costumer.profile.birth_date.year >= 1900:
                birth_date = data.costumer.profile.birth_date.strftime(
                    '%Y-%m-%d')

        add_column(data.consultant.consultantprofile.get_market_name(),
                   'cell_center')
        add_column(data.costumer.get_full_name())
        add_column(birth_date, 'cell_center')
        add_column(program_category)
        add_column(program_name)
        add_column(data.consultant.common_name)
        add_column(data.get_referred_display())
        add_column(data.recommender)
        add_column(data.costumer.email)
        for parent in data.tutors.all():
            add_column(parent.email)

        create_row(columns, i, worksheet, header_dict)
Пример #4
0
def my_sales_data(worksheet, header_dict, registrations, dto):
    def add_column(value='', style='cell', write_type='write'):
        columns.append({
            'value': value,
            'style': style,
            'write_type': write_type
        })

    for i, data in enumerate(registrations):
        columns = []

        academic_period_year = data.academic_period.get_year(
        ) if data.academic_period else ''
        start_date = data.get_register_start_date()
        end_date = data.get_register_end_date()
        program_name = ''
        program_category = ''
        supervisor_full_name = ''

        if start_date:
            start_date = start_date.strftime('%d-%b-%Y')

        if end_date:
            end_date = end_date.strftime('%d-%b-%Y')

        if data.program:
            program_name = data.program.program_base.name
            program_category = data.program.program_base.category.name

        if data.consultant.consultantprofile.supervisor:
            supervisor_full_name = data.consultant.consultantprofile.supervisor.person.get_full_name(
            )

        # region emergency contact
        ec_phone = []
        try:
            ec_full_name = data.emergency_contact.get_full_name()
            ec_email = data.emergency_contact.email
            for phone in data.emergency_contact.profile.phone_set.all():
                if phone.number:
                    ec_phone.append(phone.number)
        except:
            ec_full_name = ''
            ec_email = ''

        # endregion

        notes = []
        for note in data.note_set.all():
            if note.description:
                notes.append(note.description)

        add_column(academic_period_year, 'cell_center')
        add_column(data.pk, 'cell_center')
        add_column(data.get_status_display(), 'cell_center')
        add_column(data.created.replace(tzinfo=None), 'date_format',
                   'write_datetime')
        add_column(data.costumer.get_full_name())
        add_column(data.nemonic or '')
        add_column(program_category)
        add_column(program_name)
        add_column(data.consultant.person.get_full_name())
        add_column(supervisor_full_name)
        add_column(data.get_duration_code())
        add_column(start_date)
        add_column(end_date)
        add_column(data.costumer.profile.grade)

        if data.program:
            add_column(data.program.program_base.city.state.country.name)
        else:
            add_column()

        add_column(data.costumer.profile.get_returning_student_display())
        add_column(data.costumer.profile.address.get_full_address())

        for p in data.tutors.all():
            parent_phone = []
            for phone in p.profile.phone_set.all():
                if phone.number:
                    parent_phone.append(phone.number)

            add_column(p.get_full_name())
            add_column(" / ".join(parent_phone))
            add_column(p.email)

        if data.costumer.profile.birth_date:
            add_column(data.costumer.profile.birth_date, 'date_format',
                       'write_datetime')
        else:
            add_column()

        add_column(data.last_school)
        add_column(data.get_last_grade_display())
        add_column(data.costumer.profile.get_tshirt_size_display())
        add_column(data.costumer.email)
        add_column(ec_full_name)
        add_column(data.costumer.profile.emergency_contact_relationship)
        add_column(ec_email)
        add_column(' / '.join(ec_phone))
        add_column(data.costumer.profile.allergies)
        add_column(' | '.join(notes))

        create_row(columns, i, worksheet, header_dict)
Пример #5
0
def __reimbursement_draw(worksheet, header_dict, reimbursement):
    y_offset = 10

    def add_column(value='', style='cell_center', write_type='write'):
        columns.append({'value': value, 'style': style, 'write_type': write_type})

    vertical_titles = [
        ['Complete Name:', reimbursement.creator.person.get_full_name()],
        ['Common Name:', reimbursement.creator.common_name],
        ['Location:', reimbursement.location],
        ['Bank:', reimbursement.bank],
        ['Account Number:', reimbursement.account_number],
        ['Swift:', reimbursement.swift],
        ['Clabe:', reimbursement.clabe],
        ['Description:', reimbursement.description]
    ]

    start_range = print_string(1)
    end_range = print_string(6)
    for i, data in enumerate(vertical_titles):
        row = i + 1

        merge_range = '{}{}:{}{}'.format(
            start_range, row + 1,
            end_range, row + 1
        )

        worksheet.write(row, 0, data[0])
        worksheet.merge_range(merge_range, data[1])

    titles = [
        {'title': "Date", 'style': 'student_header', 'width': 16},
        {'title': "Type", 'style': 'student_header', 'width': 20},
        {'title': "Item / Description", 'style': 'student_header', 'width': 40},
        {'title': "Amount", 'style': 'student_header', 'width': 20},
        {'title': "Currency", 'style': 'student_header', 'width': 13}
    ]

    if reimbursement.need_exchange:
        titles.append({'title': "Exchange Rate", 'style': 'student_header', 'width': 20})
        titles.append({'title': "CAD Amount", 'style': 'student_header', 'width': 20})

    create_titles(worksheet, titles, header_dict, y_offset=y_offset)

    amount_total = 0
    total_total = 0
    for i, item in enumerate(reimbursement.items.all()):
        columns = []

        row_position = y_offset + i

        amount_total += item.amount
        total_total += item.total

        add_column(item.date.strftime("%Y-%b-%d"))
        add_column(item.type.name)
        add_column(item.description, 'cell')
        add_column(item.amount, 'number_format')
        add_column(item.currency.code)

        if reimbursement.need_exchange:
            add_column(item.exchange_rate, 'decimal_format')
            add_column(item.total, 'number_format')

        create_row(columns, row_position, worksheet, header_dict)

    row_position += 2
    #15

    if reimbursement.need_exchange:
        worksheet.merge_range('{}{}:{}{}'.format(
            print_string(0), row_position + 1,
            print_string(4), row_position + 1
        ), '', header_dict['cell']
        )

        worksheet.write(row_position, 5, 'Total Amount', header_dict['cell_center_vc'])
        worksheet.write(row_position, 6, total_total, header_dict['number_format'])
    else:
        totals = reimbursement.get_items_totals()
        total_text = []
        for total in totals:
            total_text.append('{} {}'.format(money_format(total['amount']), total['currency_code']))

        total_text = "\n".join(total_text)

        worksheet.merge_range('{}{}:{}{}'.format(
            print_string(0), row_position + 1,
            print_string(1), row_position + 1
        ), '', header_dict['cell']
        )

        worksheet.write(row_position, 2, 'Total Amount', header_dict['cell_center_vc'])

        worksheet.merge_range('{}{}:{}{}'.format(
            print_string(3), row_position + 1,
            print_string(4), row_position + 1
        ), total_text, header_dict['cell_center']
        )

        worksheet.set_row(row_position, 15 * len(totals))