import streamlit as st from termcolor import colored def check_garant( garant_pdf, garant_docx, price_doc, MCKs ): print("-" * 80) print( f"garant_pdf: {garant_pdf}\n" + f"garant_docx: {garant_docx}\n" + f"price_doc: {price_doc}\n" + f"MCKs: {MCKs}" ) correct = False # """ # случай 1 # "" if all([ garant_pdf == "не требуется", garant_docx == None, price_doc == None ]) or all([ garant_pdf == "не требуется", garant_docx == "не установлены", price_doc == "не установлены" ]) or all([ garant_pdf == "не требуется", garant_docx == "не установлены", price_doc == "не устанавливается" ]) or all([ garant_pdf == "не требуется", garant_docx == "не устанавливается", price_doc == "не устанавливается" ]): # print("ВЕРНО", 'green') st.write(":green[ВЕРНО]") # st.write("ВЕРНО") correct = True # """ # случай 2 # """ elif garant_docx and price_doc and all([ "Российский рубль" in garant_pdf, "%" in garant_docx, "руб" in price_doc ]): clean_garant_docx = garant_docx.replace("процент", "%").replace(" ", '') clean_price_doc = float(price_doc.replace(" ", "").split(",")[0].replace("руб", "")) clean_garant_pdf = float(garant_pdf.removesuffix("Российский рубль").strip()) for MCK in MCKs: procent_garant_docx = float(clean_garant_docx.strip("% ")) * MCK / 100 print("СРАВНЕНИЕ", f"\tprocent_garant_docx: {procent_garant_docx}", f"\tclean_garant_pdf: {clean_garant_pdf}", f"\tclean_price_doc: {clean_price_doc}", f"\tclean_garant_docx: {clean_garant_docx}", sep="\n") if ( abs(clean_garant_pdf - procent_garant_docx) < 3 and abs(clean_price_doc - procent_garant_docx) < 3): # ( abs(clean_garant_pdf - procent_garant_docx) < 3 and # clean_price_doc == None): # print(colored("ВЕРНО", 'green')) st.write(":green[ВЕРНО]") # st.write("ВЕРНО") correct = True # """ # случай 3 # """ elif garant_pdf and garant_docx and all([ "Российский рубль" in garant_pdf, "%" in garant_docx, price_doc == None ]): clean_garant_pdf = float(garant_pdf.removesuffix("Российский рубль").strip()) clean_garant_docx = garant_docx[0].replace(" ", '').replace("процент", "%") for MCK in MCKs: procent_garant_docx = float(garant_docx.strip("% ")) * MCK / 100 print( "СРАВНЕНИЕ\n" + f"\tprocent_garant_docx: {procent_garant_docx}\n" + f"\tclean_garant_pdf: {clean_garant_pdf}\n") if abs(clean_garant_pdf - procent_garant_docx) < 3: # print(colored("ВЕРНО", 'green')) st.write(":green[ВЕРНО]") # st.write("ВЕРНО") correct = True if not correct: # print(colored("ERROR Требуется проверка", 'magenta')) st.write(":red[ОШИБКА]") # st.write("ERROR Требуется проверка") st.write("Проверьте блок обеспечения гарантийных обязательств на совпадение требований Извещения и проекта Контракта," " а также арифметические операции") st.write("Условие Извещения (Российский рубль) = Условие ПК % * НМЦК") st.write("Условие Извещения (Российский рубль) = Условие ПК (рублей)") st.write("Условие Извещения 'не требуется' = Условие ПК 'не установлено'")