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()
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:")))
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())
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()