예제 #1
0
async def task_done_photo(message: types.Message, state: FSMContext):
    data_state = await state.get_data()
    id_task = data_state.get("id_task")
    date_day = (lambda x: "0" + x
                if len(x) == 1 else x)(str(datetime.date.today().day))
    date_month = (lambda x: "0" + x
                  if len(x) == 1 else x)(str(datetime.date.today().month))
    date_year = str(datetime.date.today().year)

    file_id = None
    content_type = message.content_type

    if content_type == "photo":
        file_id = message.photo[-1].file_id
    if content_type == "document":
        if message.document.mime_type.__contains__('image'):
            file_id = message.document.file_id

    if file_id is None:
        # await message.answer("Загруженный файл не фотография.\nПовторите попытку!")
        await message.answer(
            "Заявка № <b>{}</b>\nФайл с фотографией УПД не загружен и не сохранён."
            .format(id_task))
        file_path = ""
    else:
        await message.answer("Минутку, произвожу запись в БД...")
        dest_file = "photo_upd_{}{}{}_{}.jpg".format(date_year, date_month,
                                                     date_day, id_task)
        source_file = await bot.get_file(file_id)
        # print(f"file_link = {dest_file}")
        file_path, is_saved = CloudStorage.save_file(source_file["file_path"],
                                                     dest_file)
        await message.delete()
        if is_saved:
            await message.answer(
                "Заявка № <b>{}</b>\n{}  Файл успешно сохранён и доступен по ссылке - {}"
                .format(id_task, emojize(":white_check_mark:"), file_path),
                disable_web_page_preview=True)
        else:
            await message.answer(
                "Заявка № <b>{}</b>\n{}  Файл не удалось сохранить.".format(
                    id_task, emojize(":bangbang:")))
    enquiry = Enquiry(message.from_user.id)

    is_done = enquiry.update_table(id=id_task,
                                   f78321="УПД подписан",
                                   f81301=file_path)
    if is_done:
        await message.answer(
            "{}  Запись в БД успешно обновлена! Заявка № <b>{}</b>, установлена в статус - <b>УПД подписан</b>"
            .format(emojize(":white_check_mark:"), str(id_task)),
            reply_markup=choice_request())
    else:
        await message.answer(
            "Заявка № <b>{}</b>{} Запись в БД завершилось ошибкой!".format(
                id_task, emojize(":bangbang:")))

    await state.finish()
예제 #2
0
async def task_to_plan_put_date(current_date, message, state):
    data_state = await state.get_data()
    id_task = data_state.get("id_task")
    date_full = str(current_date).split(".")
    await message.delete()
    if len(date_full) == 3:
        if date_full[0].isdigit() and date_full[1].isdigit(
        ) and date_full[2].isdigit() and len(date_full[0]) == 2 and len(
                date_full[1]) == 2 and len(date_full[2]) == 4:
            # print("date_full[1] = {}".format(len(date_full[1])))
            date_day = date_full[0]
            date_month = date_full[1]
            date_year = date_full[2]
            full_date = "{}-{}-{} 00:00:00".format(date_year, date_month,
                                                   date_day)
            short_date = "{}.{}.{}".format(date_day, date_month, date_year)
            # await state.update_data(date_day = date_day, date_month = date_month, date_year = date_year)

            await state.finish()
            enquiry = Enquiry(message.from_user.id)
            # enquiry = Enquiry('1771817746')
            # full_date = "2021-02-02 00:00:00"
            is_done = enquiry.update_table(id=id_task,
                                           f78311=full_date,
                                           f78321="Запланирован выезд")
            # is_done = True
            if is_done:
                await message.answer(
                    "{} Заявка № <b>{}</b>, успешно запланирована на дату {}".
                    format(emojize(":white_check_mark:"), str(id_task),
                           short_date),
                    reply_markup=inline_type_request_menu())
            else:
                await message.answer(
                    "Заявка № <b>{}</b>\n{} Запись в БД завершилось ошибкой!".
                    format(id_task, emojize(":bangbang:")))
        else:
            await message.answer(
                "Заявка № <b>{}</b>\n{}  Вы ввели неверную дату, дата должна содержать только цифры.\n"
                "Введите плановую дату исполнения в формате дд.мм.гггг:".
                format(id_task, emojize(":exclamation:")))
    else:
        await message.answer(
            "Заявка № <b>{}</b>\n{}  Вы ввели неверную дату, "
            "пожалуйста, введите плановую дату исполнения в формате дд.мм.гггг:"
            .format(id_task, emojize(":exclamation:")))
예제 #3
0
async def task_edit_distance_done(message: Message, state: FSMContext):
	distance_done = message.text
	if distance_done.isdigit():
		# await state.update_data(distance = distance_done)
		data_state = await state.get_data()
		id_task = data_state.get("id_task")
		enquiry = Enquiry()
		
		is_done = enquiry.update_table(id = id_task, f78361 = int(distance_done))
		if is_done:
			await message.answer("Заявка № <b>{}</b>\n{} Пробег по заявке № <b>{}</b> успешно отредактирован".format(id_task, emojize(":white_check_mark:"), str(id_task)),
			                     reply_markup = inline_back_to_setup())
		else:
			await message.answer("Заявка № <b>{}</b>\n{} Запись в БД завершилось ошибкой!".format(id_task, emojize(":hangbang:")))
		
		await state.finish()
	else:
		await message.answer("{}  Растояние пробега должно быть числом.\nВведите растояние пробега в км (ноль, если заявка в черте города):".format(emojize(":exclamation:")),
		                     reply_markup = inline_back_to_setup())
예제 #4
0
async def task_act_photo(message: Message, state: FSMContext):
	data_state = await state.get_data()
	id_task = data_state.get("id_task")
	content_type = message.content_type
	file_id = None
	await message.delete()
	
	if content_type == "photo":
		file_id = message.photo[-1].file_id
	if content_type == "document":
		if message.document.mime_type.__contains__('image'):
			file_id = message.document.file_id
	
	if file_id is None:
		await message.answer("Заявка № <b>{}</b>\n{}  Загруженный файл не фотография.\nПовторите попытку!".format(id_task, emojize(":exclamation:")), reply_markup =
		inline_back_to_setup())
		# await message.answer("Файл с фотографией акта не загружен и не сохранён.")
		file_path = ""
	else:
		# await message.answer("Минутку, произвожу запись в БД...")
		source_file = await bot.get_file(file_id)
		# print(f"file_link = {file_link}")
		file_path, is_saved = CloudStorage.save_file(source_file["file_path"], create_filename("photo_act", id_task))
		if is_saved:
			# await message.answer("{}  Файл успешно сохранён и доступен по ссылке - {}".format(emojize(":white_check_mark:"), file_path), disable_web_page_preview = True)
			enquiry = Enquiry()
			is_done = enquiry.update_table(id = id_task, f81381 = file_path)
			if is_done:
				await message.answer("{} Акт выполненных работ по заявке № <b>{}</b>, успешно загружен.".
				                     format(emojize(":white_check_mark:"), str(id_task)), reply_markup = inline_back_to_setup())
			
			else:
				await message.answer("Заявка № <b>{}</b>\n{} Запись в БД завершилось ошибкой!".format(id_task, emojize(":bangbang:")), reply_markup = inline_back_to_setup())
		
		else:
			await message.answer("Заявка № <b>{}</b>\n{}  Файл не удалось сохранить.".format(id_task, emojize(":bangbang:")), reply_markup = inline_back_to_setup())
		await state.finish()
		await message.delete()