Example #1
0
    for idx, col in enumerate(df2):
        if df2[col].dtype in ('object', 'string_', 'unicode_'
                              ) and df2[col].name not in ('КПП', 'Категория'):
            max_len = df2[col].map(len).max() + 1
        else:
            series = df2[col].name
            max_len = 30
        worksheet.set_column(idx, idx, max_len)

    df2.to_excel(writer,
                 encoding='utf8',
                 sheet_name="Отчет",
                 index=False,
                 freeze_panes=(1, 1))

    writer.save()
    send_mail(
        send_from="*****@*****.**",
        send_to=nyz[nyz_i],
        subject="Отчет для {}".format(df["Имя"].values[0]),
        text=
        """Информация об удельном весе продаж определенных поставщиков в общем обороте НУЗ и по категориям от {}. 
В случае если вложенный файл приходит с расширением *.dat, то необходимо переименовать его в *.xlsx.
Также данная неполадка решается путем настройки почтового клиента.

С уважением,
ООО "Эмсофт"
+7 (495) 230-23-48
[email protected]""".format(today.isoformat()),
        files=file)
Example #2
0
        GROUP BY contract.fk_customer_id)
    PF_not_close on PF_not_close.customer = c.fk_customer_id
where c.fk_customer_id = {}
group by c.fk_customer_id, a.name, closed.count, pf.summa, closed.summa, pf.sups, pf.vsego, PF_not_close.vsego, PF_not_close.summa
order by count(os.id) DESC""".format(nyz_i)

    df2 = pd.read_sql_query(query,db_connection)
    df2.to_excel(writer, encoding='utf8', sheet_name="Отчет", index=False, freeze_panes = (1,1))
    worksheet = writer.sheets["Отчет"]
    df = pd.read_sql_query("""select fk_customer_id as "Идентификатор", name as "Имя" from agent where fk_customer_id = {}""".format(nyz_i), db_connection)
    for idx, col in enumerate(df2):
        if df2[col].count() > 2 and df2[col][1] is not None and df2[col].dtypes != 'int64' and df2[col].dtypes != 'float64':
            series = df2[col][1]
        else:
            series = df2[col].name
        max_len = len(str(series))+1
        worksheet.set_column(idx, idx, max_len)

    df2.to_excel(writer, encoding='utf8', sheet_name="Отчет", index=False, freeze_panes = (1,1))

    writer.save()
    send_mail(send_from="*****@*****.**",  send_to=nyz[nyz_i], subject="Отчет для {}".format(df["Имя"].values[0]), text="""Ежемесячный отчет с информацией по незакрытым заказам от {}. 
В случае если вложенный файл приходит с расширением *.dat, то необходимо переименовать его в *.xlsx.
Также данная неполадка решается путем настройки почтового клиента.

С уважением,
ООО "Эмсофт"
+7 (495) 230-23-48
[email protected]""".format(today.isoformat()), files=file)

Example #3
0
                    col].dtypes != 'float64' and df2[col].name not in (
                        "Номер договора", "Окончание договора",
                        "Статус договора"):
            series = df2[col][1]
        else:
            series = df2[col].name
        max_len = len(str(series)) + 5
        worksheet.set_column(idx, idx, max_len)

    df2.to_excel(writer,
                 encoding='utf8',
                 sheet_name="Отчет №18",
                 index=False,
                 freeze_panes=(1, 1))

    writer.save()
    send_mail(
        send_from="*****@*****.**",
        send_to=nyz[nyz_i],
        subject="Отчет для {}".format(df["Имя"].values[0]),
        text=
        """Ежемесячный отчёт о цикличности поставок и сроки между ними по всем товарам, работам и услугам за 1 месяц от {}. 
В случае если вложенный файл приходит с расширением *.dat, то необходимо переименовать его в *.xlsx.
Также данная неполадка решается путем настройки почтового клиента.

С уважением,
ООО "Эмсофт"
+7 (495) 230-23-48
[email protected]""".format(today.isoformat()),
        files=file)
Example #4
0
    elif row == 'ACTIVE':
        df2.loc[idx, "Статус договора"] = 'Активный'
    elif row == 'AGREED':
        df2.loc[idx, "Статус договора"] = 'Согласован'
    elif row == 'REJECTED':
        df2.loc[idx, "Статус договора"] = 'Отклонен'
    elif row == 'DELETED':
        df2.loc[idx, "Статус договора"] = 'Удален'

for idx, row in enumerate(df2["Статус поставщика"]):
    if row == 'OPERATIVE':
        df2.loc[idx, "Статус поставщика"] = 'Рабочий'
    elif row == 'POSTFACTUM':
        df2.loc[idx, "Статус поставщика"] = 'Постфактум'

df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет №17",
             index=False,
             freeze_panes=(1, 1))

writer.save()
send_mail(
    send_from="*****@*****.**",
    send_to=["*****@*****.**", "*****@*****.**"],
    subject="Отчет №17",
    text=
    "Отчет с информацией о пролонгированных договорах на срок свыше года и договорах с открытой датой окончания от {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n"
    .format(today.isoformat()),
    files=file)
Example #5
0
    if df2[col].count() > 2 and df2[col][1] is not None and df2[
            col].dtypes != 'int64' and df2[col].dtypes != 'float64':
        series = df2[col][1]
    else:
        series = df2[col].name
    max_len = len(str(series)) + 1
    worksheet.set_column(idx, idx, max_len)

for idx, row in enumerate(df2["Тип оплаты"]):
    if row == 'PARTIAL':
        df2.loc[idx, "Тип оплаты"] = 'Частичная предоплата'
    elif row == 'FULL':
        df2.loc[idx, "Тип оплаты"] = 'Полная'
    elif row == 'POSTPAY':
        df2.loc[idx, "Тип оплаты"] = 'Постоплата'
df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет №15.1",
             index=False,
             freeze_panes=(1, 1))

writer.save()
send_mail(
    send_from="*****@*****.**",
    send_to=["*****@*****.**", "*****@*****.**"],
    subject="Отчет №15.1",
    text=
    "Детализация отчета по количеству договоров, в которых присутствует авансовый платеж в разрезе категорий, с указанием % аванса от {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n"
    .format(today.isoformat()),
    files=file)
Example #6
0
        worksheet.set_column(idx, idx, max_len)

    for idx, row in enumerate(df2["Тип оплаты"]):
        if row == 'PARTIAL':
            df2.loc[idx, "Тип оплаты"] = 'Частичная предоплата'
        elif row == 'FULL':
            df2.loc[idx, "Тип оплаты"] = 'Полная'
        elif row == 'POSTPAY':
            df2.loc[idx, "Тип оплаты"] = 'Постоплата'
    df2.to_excel(writer,
                 encoding='utf8',
                 sheet_name="Отчет",
                 index=False,
                 freeze_panes=(1, 1))

    writer.save()
    send_mail(
        send_from="*****@*****.**",
        send_to=nyz[nyz_i],
        subject="Отчет для {}".format(df["Имя"].values[0]),
        text=
        """Детализация отчета по количеству договоров, в которых присутствует авансовый платеж в разрезе категорий, с указанием % аванса от {}. 
В случае если вложенный файл приходит с расширением *.dat, то необходимо переименовать его в *.xlsx.
Также данная неполадка решается путем настройки почтового клиента.

С уважением,
ООО "Эмсофт"
+7 (495) 230-23-48
[email protected]""".format(today.isoformat()),
        files=file)
Example #7
0
    elif row == 'PARTIAL_PRE_PAYMENT':
        df2.loc[idx, "Статус заказа"] = 'Частичная предоплата'
    elif row == 'RECEPTION':
        df2.loc[idx, "Статус заказа"] = 'Получение'
    elif row == 'ORDER_RESULTS':
        df2.loc[idx, "Статус заказа"] = 'Редактирование заказа'
    elif row == 'ORDER_CLOSED_POSTFACTUM':
        df2.loc[idx, "Статус заказа"] = 'Заказ закрыт (постфактум)'
    elif row == 'PAYMENT_POSTFACTUM':
        df2.loc[idx, "Статус заказа"] = 'Оплата (постфактум)'
    elif row == 'ORDER_RESULTS_POSTFACTUM':
        df2.loc[idx, "Статус заказа"] = 'Редактирование заказа (постфактум)'
#for idx, row in enumerate(df2["НДС"]):
#    if row == -1:
#        df2.loc[idx, "НДС"] = 'Без НДС'
df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет№3",
             index=False,
             freeze_panes=(1, 1))

writer.save()
send_mail(
    send_from="*****@*****.**",
    send_to=["*****@*****.**", "*****@*****.**"],
    subject="Отчет №3",
    text=
    " Ежемесячный отчет по заказам, оплаченным раньше чем заканчивается отсрочка платежа c {} по {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n"
    .format(first_day_last_month, lastMonth.isoformat()),
    files=file)
Example #8
0
        elif row == 'PAYMENT_RECEIVED':
            df2.loc[idx, "Статус заказа"] = 'Поступление ДС'
        elif row == 'PARTIAL_POST_PAYMENT_RECEIVED':
            df2.loc[idx, "Статус заказа"] = 'Поступление ДС постоплаты'
        elif row == 'PARTIAL_PRE_PAYMENT_RECEIVED':
            df2.loc[idx, "Статус заказа"] = 'Поступление ДС предоплаты'
        elif row == 'AGREED_BY_SUPPLIER':
            df2.loc[idx, "Статус заказа"] = 'Согласование поставщиком'
        elif row == 'PARTIAL_POST_PAYMENT':
            df2.loc[idx, "Статус заказа"] = 'Частичная постоплата'
        elif row == 'PARTIAL_PRE_PAYMENT':
            df2.loc[idx, "Статус заказа"] = 'Частичная предоплата'
        elif row == 'RECEPTION':
            df2.loc[idx, "Статус заказа"] = 'Получение'
        elif row == 'ORDER_RESULTS':
            df2.loc[idx, "Статус заказа"] = 'Редактирование заказа'
        elif row == 'ORDER_CLOSED_POSTFACTUM':
            df2.loc[idx, "Статус заказа"] = 'Заказ закрыт (постфактум)'
        elif row == 'PAYMENT_POSTFACTUM':
            df2.loc[idx, "Статус заказа"] = 'Оплата (постфактум)'
        elif row == 'ORDER_RESULTS_POSTFACTUM':
            df2.loc[idx, "Статус заказа"] = 'Редактирование заказа (постфактум)'
    for idx, row in enumerate(df2["НДС"]):
        if row == -1:
            df2.loc[idx, "НДС"] = 'Без НДС'

    df2.to_excel(writer, encoding='utf8', sheet_name=name_sheet, index=False, freeze_panes = (1,1))

writer.save()
send_mail(send_from="*****@*****.**", send_to=["*****@*****.**", "*****@*****.**"], subject="Отчет №8", text="Ежемесячный отчет по всем заказам отсортированный по дирекциям c {} по {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n".format(first_day_last_month, lastMonth.isoformat()), files=file)
Example #9
0
    INNER JOIN order_state_event ON order_state_event.event_id = events.id
    left join suppliers_product on suppliers_product.id = order_item.fk_supplier_product_id 
    left join product_name on product_name.id = suppliers_product.fk_product_name_id
    left join product on product.id = product_name.fk_product_id 
    left join product_group on product_group.id = product.fk_product_group_id
    where (events.event_driven_id, events.created_when) IN (SELECT events.event_driven_id, MAX(events.created_when) FROM events WHERE event_type = 'ORDER_STATE' GROUP BY events.event_driven_id) and order_state_event.order_state != 'ORDER_CANCELED'
    and contract.fk_customer_id NOT IN (7601315, 1232844, 1788755, 1784971, 1784576, 1787831, 1793943, 1788809, 1792883, 1787871, 1787947, 8405381) and (order_item.price != 0 or order_item.quantity != 0)
group by product_group.name) all_statistic on all_statistic.product_group = sup_statistic.product_group or (all_statistic.product_group is null and sup_statistic.product_group is null)

where contract.fk_customer_id NOT IN (7601315, 1232844, 1788755, 1784971, 1784576, 1787831, 1793943, 1788809, 1792883, 1787871, 1787947, 8405381)
group by temp.name,  sup_statistic.count_orders, sup_statistic.sum_orders, all_statistic.sum_orders, temp.inn, temp.kpp,  all_statistic.product_group
order by all_statistic.product_group, (sup_statistic.sum_orders/all_statistic.sum_orders)*100 DESC"""

df2 = pd.read_sql_query(query,db_connection)
df2.to_excel(writer, encoding='utf8', sheet_name="Отчет №19", index=False, freeze_panes = (1,1))
worksheet = writer.sheets["Отчет №19"]

for idx, col in enumerate(df2):
    if df2[col].dtype in ('object', 'string_', 'unicode_') and df2[col].name not in ('КПП', 'Категория'):
        max_len = df2[col].map(len).max()+1
    else:
        series = df2[col].name
        max_len = 30
    worksheet.set_column(idx, idx, max_len)

df2.to_excel(writer, encoding='utf8', sheet_name="Отчет №19", index=False, freeze_panes = (1,1))

writer.save()
send_mail(send_from="*****@*****.**", send_to=["*****@*****.**", "*****@*****.**"], subject="Отчет №19", text="Ежемесячный отчет об удельном весе продаж определенных поставщиков в общем обороте сети и по категориям отдельно от {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n".format(today.isoformat()), files=file)

Example #10
0
             encoding='utf8',
             sheet_name="Отчет№11",
             index=False,
             freeze_panes=(1, 1))
worksheet = writer.sheets["Отчет№11"]

for idx, col in enumerate(df2):
    if df2[col].count() > 2 and df2[col][1] is not None and df2[
            col].dtypes != 'int64' and df2[col].dtypes != 'float64':
        series = df2[col][1]
    else:
        series = df2[col].name
    max_len = len(str(series)) + 1
    worksheet.set_column(idx, idx, max_len)

df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет№11",
             index=False,
             freeze_panes=(1, 1))

writer.save()
send_mail(
    send_from="*****@*****.**",
    send_to=["*****@*****.**", "*****@*****.**"],
    subject="Отчет №11",
    text=
    " Ежемесячный отчет по контрагентам зарегистрированным как поставщики с {} по {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n"
    .format(first_day_last_month, lastMonth.isoformat()),
    files=file)
Example #11
0
df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет№7",
             index=False,
             freeze_panes=(1, 1))
worksheet = writer.sheets["Отчет№7"]

for idx, col in enumerate(df2):
    if df2[col].dtype in ('object', 'string_', 'unicode_'):
        max_len = df2[col].map(len).max() + 1
    else:
        series = df2[col].name
        max_len = len(str(series)) + 1
    worksheet.set_column(idx, idx, max_len)

df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет№7",
             index=False,
             freeze_panes=(1, 1))

writer.save()
send_mail(
    send_from="*****@*****.**",
    send_to=["*****@*****.**", "*****@*****.**"],
    subject="Отчет №7",
    text=
    " Ежемесячный отчет за предыдущие 7 дней по количеству и сумме заказов НУЗов с {} по {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n"
    .format(first_day_last_month, lastMonth.isoformat()),
    files=file)
Example #12
0
worksheet = writer.sheets["Отчет№12"]

for idx, col in enumerate(df2):
    if df2[col].count() > 2 and df2[col][1] is not None and df2[
            col].dtypes != 'int64' and df2[col].dtypes != 'float64':
        series = df2[col][1]
    else:
        series = df2[col].name
    max_len = len(str(series)) + 1
    worksheet.set_column(idx, idx, max_len)

df2 = df2.fillna(0)

#df2.to_excel(writer, encoding='utf8', sheet_name="Отчет№5", index=False, freeze_panes = (1,1))

df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет№12",
             index=False,
             freeze_panes=(1, 1))

writer.save()
send_mail(
    send_from="*****@*****.**",
    send_to=["*****@*****.**", "*****@*****.**"],
    subject="Отчет №12",
    text=
    " Еженедельный накопительный отчет по всем статусам заказов всех НУЗов с {} по {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n"
    .format(first_day_last_month, lastMonth.isoformat()),
    files=file)
Example #13
0
    if df2[col].count() > 2 and df2[col][1] is not None and df2[
            col].dtypes != 'int64' and df2[col].dtypes != 'float64':
        series = df2[col][1]
    else:
        series = df2[col].name
    max_len = len(str(series)) + 1
    worksheet.set_column(idx, idx, max_len)

for idx, row in enumerate(df2["Тип оплаты"]):
    if row == 'PARTIAL':
        df2.loc[idx, "Тип оплаты"] = 'Частичная предоплата'
    elif row == 'FULL':
        df2.loc[idx, "Тип оплаты"] = 'Полная'
    elif row == 'POSTPAY':
        df2.loc[idx, "Тип оплаты"] = 'Постоплата'
df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет №15",
             index=False,
             freeze_panes=(1, 1))

writer.save()
send_mail(
    send_from="*****@*****.**",
    send_to=["*****@*****.**", "*****@*****.**"],
    subject="Отчет №15",
    text=
    " Ежемесячный отчет с информацией о количестве договоров, в которых присутствует авансовый платеж, а также с указанием % аванса от {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n"
    .format(today.isoformat()),
    files=file)
Example #14
0
    elif row == 'PARTIAL_PRE_PAYMENT':
        df2.loc[idx, "Статус заказа"] = 'Частичная предоплата'
    elif row == 'RECEPTION':
        df2.loc[idx, "Статус заказа"] = 'Получение'
    elif row == 'ORDER_RESULTS':
        df2.loc[idx, "Статус заказа"] = 'Редактирование заказа'
    elif row == 'ORDER_CLOSED_POSTFACTUM':
        df2.loc[idx, "Статус заказа"] = 'Заказ закрыт (постфактум)'
    elif row == 'PAYMENT_POSTFACTUM':
        df2.loc[idx, "Статус заказа"] = 'Оплата (постфактум)'
    elif row == 'ORDER_RESULTS_POSTFACTUM':
        df2.loc[idx, "Статус заказа"] = 'Редактирование заказа (постфактум)'
#for idx, row in enumerate(df2["НДС"]):
#    if row == -1:
#        df2.loc[idx, "НДС"] = 'Без НДС'
df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет№4",
             index=False,
             freeze_panes=(1, 1))

writer.save()
send_mail(
    send_from="*****@*****.**",
    send_to=["*****@*****.**", "*****@*****.**"],
    subject="Отчет №4",
    text=
    " Накопительный отчет по заказам с 01.01.2019, статус которых не менялся более чем 90 дней от {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n"
    .format(today.isoformat()),
    files=file)
Example #15
0
    for idx, col in enumerate(df2):
        if df2[col].dtype in ('object', 'string_',
                              'unicode_') and df2[col].name not in (
                                  'Дата создания заказа', 'Категория'):
            max_len = df2[col].map(len).max() + 1
        else:
            series = df2[col].name
            max_len = len(str(series)) + 1
        worksheet.set_column(idx, idx, max_len)

    df2.to_excel(writer,
                 encoding='utf8',
                 sheet_name="Отчет",
                 index=False,
                 freeze_panes=(1, 1))
    writer.save()
    send_mail(
        send_from="*****@*****.**",
        send_to=nyz[nyz_i],
        subject="Отчет для {}".format(df["Имя"].values[0]),
        text=
        """Ежемесячный отчет с заказами, содержащими товары с НДС 0% c {} по {}.
В случае если вложенный файл приходит с расширением *.dat, то необходимо переименовать его в *.xlsx.
Также данная неполадка решается путем настройки почтового клиента.

С уважением,
ООО "Эмсофт"
+7 (495) 230-23-48
[email protected]""".format(first_day_last_month, lastMonth.isoformat()),
        files=file)
Example #16
0
        (date - datetime.timedelta(days=7)).isoformat(), date.isoformat())
    columns.append("{}.{}-{}.{}".format(
        (date - datetime.timedelta(days=7)).month,
        (date - datetime.timedelta(days=7)).day, date.month, date.day))
query = query + " from order_s INNER JOIN (SELECT fk_order_id, sum(quantity*price) as order_sums from order_item GROUP by fk_order_id) orders ON orders.fk_order_id=order_s.id INNER JOIN contract ON contract.id = order_s.fk_contract_id INNER JOIN (SELECT name, fk_customer_id FROM agent) comp ON comp.fk_customer_id = contract.fk_customer_id INNER JOIN events ON events.event_driven_id = contract.fk_supplier_id inner join supplier_state_event on supplier_state_event.event_id = events.id where contract.fk_customer_id IN (1784593, 1784596, 1784602, 1784605, 1784608, 1784614, 1784617, 1784644, 1784626, 1784635, 1784632, 1784638, 1784980, 949547, 1784962, 1784956, 1784950, 1784839, 1785001, 1784998, 1785007, 1785010) GROUP BY comp.name"

writer = pd.ExcelWriter(file, engine='xlsxwriter')
df = pd.read_sql_query(query, db_connection)
df.columns = columns
new_row = []
for test in range(len(columns)):
    new_row.append(" ")
df.loc[-1] = new_row  # adding a row
df.index = df.index + 1  # shifting index
df = df.sort_index()
df.to_excel(writer, encoding='utf8', sheet_name="Статистика", index=False)
worksheet = writer.sheets["Статистика"]
worksheet.merge_range('B2:E2', 'Количество заказов')
worksheet.merge_range('F2:I2', 'Сумма заказов')
worksheet.merge_range('J2:M2', 'Количество заказов ПФ')
worksheet.merge_range('N2:Q2', 'Сумма заказов ПФ')
writer.save()
send_mail(
    send_from="*****@*****.**",
    send_to=["*****@*****.**", "*****@*****.**"],
    subject="Отчет №10",
    text=
    "Ежемесячный отчет по ДКБ и НУЗам центрального подчинения со статистикой за 4 последних недели от {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n"
    .format(DT.today().isoformat()),
    files=file)
Example #17
0
             encoding='utf8',
             sheet_name="Отчет №16",
             index=False,
             freeze_panes=(1, 1))
worksheet = writer.sheets["Отчет №16"]

for idx, col in enumerate(df2):
    if df2[col].count() > 2 and df2[col][1] is not None and df2[
            col].dtypes != 'int64' and df2[col].dtypes != 'float64':
        series = df2[col][1]
    else:
        series = df2[col].name
    max_len = len(str(series)) + 1
    worksheet.set_column(idx, idx, max_len)

df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет №16",
             index=False,
             freeze_panes=(1, 1))

writer.save()
send_mail(
    send_from="*****@*****.**",
    send_to=["*****@*****.**", "*****@*****.**"],
    subject="Отчет №16",
    text=
    "Ежемесячный отчет с информацией по незакрытым заказам от {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n"
    .format(today.isoformat()),
    files=file)
Example #18
0
    elif row == 'PARTIAL_PRE_PAYMENT':
        df2.loc[idx, "Статус заказа"] = 'Частичная предоплата'
    elif row == 'RECEPTION':
        df2.loc[idx, "Статус заказа"] = 'Получение'
    elif row == 'ORDER_RESULTS':
        df2.loc[idx, "Статус заказа"] = 'Редактирование заказа'
    elif row == 'ORDER_CLOSED_POSTFACTUM':
        df2.loc[idx, "Статус заказа"] = 'Заказ закрыт (постфактум)'
    elif row == 'PAYMENT_POSTFACTUM':
        df2.loc[idx, "Статус заказа"] = 'Оплата (постфактум)'
    elif row == 'ORDER_RESULTS_POSTFACTUM':
        df2.loc[idx, "Статус заказа"] = 'Редактирование заказа (постфактум)'
#for idx, row in enumerate(df2["НДС"]):
#    if row == -1:
#        df2.loc[idx, "НДС"] = 'Без НДС'
df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет№1",
             index=False,
             freeze_panes=(1, 1))

writer.save()
send_mail(
    send_from="*****@*****.**",
    send_to=["*****@*****.**", "*****@*****.**"],
    subject="Отчет №1",
    text=
    " Ежемесячный отчет по заказам со 100% предоплатой c {} по {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n"
    .format(first_day_last_month, lastMonth.isoformat()),
    files=file)
Example #19
0
left join suppliers_product on suppliers_product.id = order_item.fk_supplier_product_id 
left join hb_unit on hb_unit.id = suppliers_product.fk_unit_id
left join product_name on product_name.id = suppliers_product.fk_product_name_id
left join product on product.id = product_name.fk_product_id 
left join product_group on product_group.id = product.fk_product_group_id

WHERE order_item.quantity != 0 and order_item.price != 0 and (events.event_driven_id, events.created_when) IN (SELECT events.event_driven_id, MAX(events.created_when) FROM events WHERE event_type = 'ORDER_STATE' GROUP BY events.event_driven_id) 
and order_state_event.order_state != 'ORDER_CANCEL' and contract.fk_customer_id NOT IN (7601315, 1232844, 1788755, 1784971, 1784576, 1787831, 1793943, 1788809, 1792883, 1787871, 1787947, 8405381)
AND order_s.created_when::date >= '{}'
GROUP BY order_item.product_name, agent.name, temp.name, product_group.name
HAVING count(distinct order_s.id) > 1
ORDER BY agent.name, (MAX(order_s.created_when) - MIN(order_s.created_when))/count(distinct order_s.id) DESC""".format(first_day_last_month)

df2 = pd.read_sql_query(query,db_connection)
df2.to_excel(writer, encoding='utf8', sheet_name="Отчет №18", index=False, freeze_panes = (1,1))
worksheet = writer.sheets["Отчет №18"]

for idx, col in enumerate(df2):
    if df2[col].count() > 2 and df2[col][1] is not None and df2[col].dtypes != 'int64' and df2[col].dtypes != 'float64' and df2[col].name not in ("Номер договора", "Окончание договора", "Статус договора"):
        series = df2[col][1]
    else:
        series = df2[col].name
    max_len = len(str(series))+5
    worksheet.set_column(idx, idx, max_len)

df2.to_excel(writer, encoding='utf8', sheet_name="Отчет №18", index=False, freeze_panes = (1,1))

writer.save()
send_mail(send_from="*****@*****.**", send_to=["*****@*****.**", "*****@*****.**"], subject="Отчет №18", text="Отчёт о цикличности поставок и сроки между ними по всем товарам, работам и услугам за 1 месяц от {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n".format(today.isoformat()), files=file)

Example #20
0
    elif row == 'ORDER_CLOSED_POSTFACTUM':
        df2.loc[idx, "Статус заказа"] = 'Заказ закрыт (постфактум)'
    elif row == 'PAYMENT_POSTFACTUM':
        df2.loc[idx, "Статус заказа"] = 'Оплата (постфактум)'
    elif row == 'ORDER_RESULTS_POSTFACTUM':
        df2.loc[idx, "Статус заказа"] = 'Редактирование заказа (постфактум)'

for idx, row in enumerate(df2["НДС"]):
    if row == -1:
        df2.loc[idx, "НДС"] = 'Без НДС'

for idx, col in enumerate(df2):
    if df2[col].dtype in ('object', 'string_', 'unicode_') and df2[col].name not in ('Дата создания заказа', 'Категория'):
        max_len = df2[col].map(len).max()+1
    else:
        series = df2[col].name
        max_len = len(str(series))+1
    #print(max_len)
    worksheet.set_column(idx, idx, max_len)

#columnLenghts = np.vectorize(len)
#maxColumnLenghts = columnLenghts(df2.values.astype(str)).max(axis=0)
#print('Max Column Lengths ', maxColumnLenghts)

df2.to_excel(writer, encoding='utf8', sheet_name="Отчет№5", index=False, freeze_panes = (1,1))

writer.save()
send_mail(send_from="*****@*****.**", send_to=["*****@*****.**", "*****@*****.**"], subject="Отчет №5", text=" Ежемесячный отчет с заказами, содержащими товары с НДС 0% c {} по {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n".format(first_day_last_month, lastMonth.isoformat()), files=file)


Example #21
0
df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет№6",
             index=False,
             freeze_panes=(1, 1))
worksheet = writer.sheets["Отчет№6"]

for idx, col in enumerate(df2):
    if df2[col].dtype in ('object', 'string_', 'unicode_'):
        max_len = df2[col].map(len).max() + 1
    else:
        series = df2[col].name
        max_len = len(str(series)) + 1
    worksheet.set_column(idx, idx, max_len)

df2.to_excel(writer,
             encoding='utf8',
             sheet_name="Отчет№6",
             index=False,
             freeze_panes=(1, 1))

writer.save()
send_mail(
    send_from="*****@*****.**",
    send_to=["*****@*****.**", "*****@*****.**"],
    subject="Отчет №6",
    text=
    " Ежемесячный накопительный отчет по количеству и сумме заказов НУЗов от {} \n\nС уважением,\nООО \"Эмсофт\"\n+7 (495) 230-23-48\[email protected]\n"
    .format(today.isoformat()),
    files=file)