Patrol / garant_check.py
Mariia5's picture
Upload 8 files
3478195 verified
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("Условие Извещения 'не требуется' = Условие ПК 'не установлено'")