Beispiel #1
0
def all_salaries(request, type, title):

    del_salaries = Salary.objects.filter(title=None)
    for m in del_salaries:
        m.delete()
    if type == 'Все':
        if title == 'Все':
            salaries = Salary.objects.all()
        else:
            salaries = Salary.objects.filter(title=title)
    else:
        if title == 'Все':
            salaries = Salary.objects.filter(type=type)
        else:
            salaries = Salary.objects.filter(type=type, title=title)

    type_for_filter = 'Все'
    if type == 'flat':
        type_for_filter = 'Квартиры'
    elif type == 'plot':
        type_for_filter = 'Участки'
    price_summ = sum(
        [float(i.price) for i in salaries.filter(summ_or_dollar='суммы')])
    price_dollar = sum(
        [float(i.price) for i in salaries.filter(summ_or_dollar='доллары')])
    #### find currency
    #url = 'https://bank.uz/currency'
    #content = BeautifulSoup(requests.get(url).content, features='lxml')
    #top_left = content.find('div', {'class':"diogram-top-left"})
    #ul = top_left.find('ul', {'class': 'nav nav-tabs'})
    #tabs_a = ul.find('div', {'class': 'tabs-a'})
    #text = tabs_a.find_all('span', {'class': "medium-text"})
    #currency = float(text[1].text.replace(' ', ''))
    #_________
    summ_to_dollar = round(float(price_summ / currency()), 4)
    overall = price_dollar + summ_to_dollar
    allsalaries = []
    l = []
    for i in Salary.objects.all():
        if not i.title in l:
            allsalaries.append(i)
            l.append(i.title)

    context = {
        'salaries': salaries,
        'type': type_for_filter,
        'price_summ': price_summ,
        'price_dollar': price_dollar,
        'currency': currency(),
        'summ_to_dollar': summ_to_dollar,
        'overall': overall,
        'title': title,
        'allsalaries': allsalaries
    }
    return render(request, 'views/all_salaries.html', context)
def dollar_to_summ(value):
    r = float(value) * round(currency(), 4)
    return r
def summ_to_dollar(value):
    r = float(value) / round(currency(), 4)
    return round(r, 2)
Beispiel #4
0
def material(request, obj):
    del_materials = Material.objects.filter(title=None)
    for m in del_materials:
        m.delete()

    materials = Material.objects.filter(obj=obj)
    total_amount = [str(float(i.amount) * float(i.price)) for i in materials]
    price_summ = sum([
        float(i.amount) * float(i.price)
        for i in materials.filter(summ_or_dollar='суммы')
    ])
    price_dollar = sum([
        float(i.amount) * float(i.price)
        for i in materials.filter(summ_or_dollar='доллары')
    ])
    summ_to_dollar = round(float(price_summ / currency()), 4)
    overall = price_dollar + summ_to_dollar
    # ________create excel file
    df = {
        '№': [],
        'Название': [],
        'Измерение': [],
        'Количество': [],
        'Цена': [],
        'Всего (сум)': [],
        'Всего ($)': [],
        'Дата': []
    }

    #add title
    df['№'] = [i for i in range(1, len(materials) + 1)]
    df['Название'] = [i.title for i in materials]
    df['Измерение'] = [i.measurement for i in materials]
    df['Количество'] = [i.amount for i in materials]
    df['Цена'] = [i.price for i in materials]
    n = 0
    for i in materials:
        if i.summ_or_dollar == 'суммы':
            df['Всего (сум)'].append(str(total_amount[n]))
            df['Всего ($)'].append(' ')
        else:
            df['Всего (сум)'].append(' ')
            df['Всего ($)'].append(str(total_amount[n]))

        n += 1

    df['Дата'] = [i.published.strftime('%d.%m.%Y') for i in materials]
    df['Цена'].append(' ')
    df['Цена'].append(str(currency()))
    df['Всего (сум)'].append(str(price_summ))
    df['Всего (сум)'].append(str(summ_to_dollar))
    df['Всего (сум)'].append('$' + str(overall))
    df['Всего ($)'].append(str(price_dollar))
    for a in df:
        while len(df[a]) != len(df['Всего (сум)']):
            df[a].append(' ')
    df = pd.DataFrame(df).set_index('№')

    df.to_excel('files/excel/material_{}.xlsx'.format(obj))
    #_________
    context = {
        'materials': materials,
        'total_amount': total_amount,
        'file_path': 'material_{}'.format(obj),
        'type': 'Все',
        'obj': obj,
        'price_summ': price_summ,
        'price_dollar': price_dollar,
        'currency': currency,
        'summ_to_dollar': summ_to_dollar,
        'overall': overall
    }
    return render(request, 'views/material.html', context)
Beispiel #5
0
def sort_salary(request, obj, title, type):
    del_salaries = Salary.objects.filter(title=None)
    for m in del_salaries:
        m.delete()
    if type == 'Все':
        if title == 'Все':
            salaries = Salary.objects.filter(obj=obj)
        else:
            salaries = Salary.objects.filter(obj=obj, title=title)
    else:
        if title == 'Все':
            salaries = Salary.objects.filter(obj=obj, type=type)
        else:
            salaries = Salary.objects.filter(obj=obj, type=type, title=title)

    price_summ = sum(
        [float(i.price) for i in salaries.filter(summ_or_dollar='суммы')])
    price_dollar = sum(
        [float(i.price) for i in salaries.filter(summ_or_dollar='доллары')])
    summ_to_dollar = round(float(price_summ / currency()), 4)
    overall = price_dollar + summ_to_dollar
    #___to excel
    df = {
        '№': [],
        'Название': [],
        'Цена (сум)': [],
        'Цена ($)': [],
        'Дата': []
    }

    #add title
    df['№'] = [i for i in range(1, len(salaries) + 1)]
    df['Название'] = [i.title for i in salaries]
    for i in salaries:
        if i.summ_or_dollar == 'суммы':
            df['Цена (сум)'].append(str(i.price))
            df['Цена ($)'].append(' ')
        else:
            df['Цена (сум)'].append(' ')
            df['Цена ($)'].append(str(i.price))

    df['Дата'] = [i.published.strftime('%d.%m.%Y') for i in salaries]

    df['Название'].append(' ')
    df['Название'].append(str(currency()))
    df['Цена (сум)'].append(str(price_summ))
    df['Цена (сум)'].append(str(summ_to_dollar))
    df['Цена (сум)'].append('$' + str(overall))
    df['Цена ($)'].append(str(price_dollar))
    for a in df:
        while len(df[a]) != len(df['Цена (сум)']):
            df[a].append(' ')

    df = pd.DataFrame(df).set_index('№')
    df.to_excel('files/excel/salary_{}.xlsx'.format(obj))
    type_for_filter = 'Все'
    if type == 'flat':
        type_for_filter = 'Квартиры'
    elif type == 'plot':
        type_for_filter = 'Участки'
    l = []
    allsalaries = []
    for i in Salary.objects.all():
        if not i.title in l:
            allsalaries.append(i)
            l.append(i.title)

    context = {
        'salaries': salaries,
        'file_path': 'salary_{}'.format(obj),
        'type_for_filter': type_for_filter,
        'type': type,
        'obj': obj,
        'title': title,
        'allsalaries': allsalaries,
        'price_summ': price_summ,
        'price_dollar': price_dollar,
        'currency': currency,
        'summ_to_dollar': summ_to_dollar,
        'overall': overall
    }
    return render(request, 'views/salary.html', context)