コード例 #1
0
 def _get_contract_from_zaznam(zaznam: Any) -> Contract:
     """
     Extrahuje informace o smlouve jako celku.
     Vytvoří nový contract, do kteréhouloží všechny informace.
     :param zaznam: xml objekt, ze kterého chceme informace extrahovat
     :return: contract do kterého jsou doplněny všechny informace
     """
     contract = Contract()
     for attrib in zaznam:
         tag = ContractProviderRegistr._trim_tag_name(attrib.tag)
         if tag == "identifikator":
             contract = ContractProviderRegistr._get_identifikator_from_zaznam(
                 attrib, contract)
         elif tag == "odkaz":
             contract.link = attrib.text
         elif tag == "casZverejneni":
             contract.date_published = datetime.strptime(
                 attrib.text[0:19], '%Y-%m-%dT%H:%M:%S')
         elif tag == "smlouva":
             contract = ContractProviderRegistr._get_attributes_from_smlouva(
                 attrib, contract)
         elif tag == "prilohy":
             pass
         elif tag == "platnyZaznam":
             contract.valid = attrib.text
         else:
             raise Exception(f"Unknown attribute in Zaznam: {tag}")
     return contract
コード例 #2
0
 def test_get_currency_from_mena(self):
     xml_text = """<ciziMena><hodnota>8866</hodnota><mena>EUR</mena></ciziMena>"""
     root = ET.fromstring(xml_text)
     contract = Contract()
     res = ContractProviderRegistr._get_currency_from_mena(root, contract)
     self.assertEqual("EUR", res.currency)
     self.assertEqual(8866, res.amount_different_currency)
コード例 #3
0
 def test_get_identifikator_from_zaznam(self):
     xml_text = "<identifikator><idSmlouvy>9104775</idSmlouvy><idVerze>11241768</idVerze></identifikator>"
     root = ET.fromstring(xml_text)
     contract = Contract()
     res = ContractProviderRegistr._get_identifikator_from_zaznam(
         root, contract)
     self.assertEqual("9104775", res.external_id)
     self.assertEqual("11241768", res.version_id)
コード例 #4
0
 def test_get_attributes_from_smluvni_strana(self):
     xml_text = """<smluvniStrana><nazev>CARDION s.r.o.</nazev><ico>60719877</ico><adresa>Rybnická 136, BRNO</adresa></smluvniStrana>"""
     root = ET.fromstring(xml_text)
     contract = Contract()
     res = ContractProviderRegistr._get_attributes_from_smluvni_strana(
         root, contract)
     self.assertEqual("CARDION s.r.o.", res.supplier_name)
     self.assertEqual("60719877", res.supplier_ico)
     self.assertEqual("Rybnická 136, BRNO", res.supplier_address)
コード例 #5
0
    def test_ci_test_purpose(self):
        tester = CIStaticTest()
        contract = Contract(purpose="Úprava kanceláří 115 a 116 Sociálního oddělení ÚMČ Brno - Komín částečná odhlučněná příčka")
        invoice = Invoice()
        self.assertIsNone(tester.ci_test_purpose(contract, invoice).result)

        invoice = Invoice(purpose="Úprava")
        self.assertEqual(6/77, tester.ci_test_purpose(contract, invoice).result)

        invoice = Invoice(purpose="Úprava kanceláří 115 a 116 Sociálního oddělení ÚMČ Brno - Komín částečná odhlučněná příčka")
        self.assertEqual(1, tester.ci_test_purpose(contract, invoice).result)

        invoice = Invoice(purpose="Úprava Brno 115 Komín")
        self.assertEqual(18/77, tester.ci_test_purpose(contract, invoice).result)

        invoice = Invoice(purpose="kancelář")
        self.assertEqual(8/77, tester.ci_test_purpose(contract, invoice).result)

        contract = Contract()
        invoice = Invoice(purpose="kancelář")
        self.assertEqual(None, tester.ci_test_purpose(contract, invoice).result)
コード例 #6
0
    def test_ci_test_contract_num_in_invoice_purpose(self):
        tester = CIStaticTest()

        contract = Contract()
        invoice = Invoice()
        self.assertEqual(0, tester.ci_test_contract_num_in_invoice_purpose(contract, invoice).result)

        contract = Contract(contract_number = "test")
        invoice = Invoice(purpose = "plnění povinností dle smlouvy 165710581 - údržba lesních porostů, prevence šíření")
        self.assertEqual(0, tester.ci_test_contract_num_in_invoice_purpose(contract, invoice).result)

        contract = Contract(contract_number="165710500")
        invoice = Invoice(purpose="plnění povinností dle smlouvy 165710581 - údržba lesních porostů, prevence šíření")
        self.assertEqual(0, tester.ci_test_contract_num_in_invoice_purpose(contract, invoice).result)

        contract = Contract(contract_number="165710581")
        invoice = Invoice(purpose="plnění povinností dle smlouvy 165710581 - údržba lesních porostů, prevence šíření")
        self.assertEqual(1, tester.ci_test_contract_num_in_invoice_purpose(contract, invoice).result)

        contract = Contract(contract_number="165/7105/81")
        invoice = Invoice(purpose="plnění povinností dle smlouvy 165710581 - údržba lesních porostů, prevence šíření")
        self.assertEqual(0, tester.ci_test_contract_num_in_invoice_purpose(contract, invoice).result)

        contract = Contract(contract_number="10/2017-MSP-CES")
        invoice = Invoice(purpose="5166 - právní služby - veřejné zakázky IT, smlouva 10/2017-MSP-CES")
        self.assertEqual(1, tester.ci_test_contract_num_in_invoice_purpose(contract, invoice).result)
コード例 #7
0
 def test_get_attributes_from_subjekt(self):
     xml_text = "<subjekt><datovaSchranka>tj8vfp3</datovaSchranka><nazev>Dům zahraniční spolupráce</nazev><ico>61386839</ico><adresa> ,  Na poříčí 1035 / 4 Nové Město 11006, Praha Hlavní město Praha, </adresa><utvar>310 - Oddělení mobilit mládeže</utvar></subjekt>"
     root = ET.fromstring(xml_text)
     contract = Contract()
     res = ContractProviderRegistr._get_attributes_from_subjekt(
         root, contract)
     self.assertEqual("tj8vfp3", res.ministry_data_box)
     self.assertEqual("Dům zahraniční spolupráce", res.ministry_name)
     self.assertEqual("61386839", res.ministry_ico)
     self.assertEqual(
         " ,  Na poříčí 1035 / 4 Nové Město 11006, Praha Hlavní město Praha, ",
         res.ministry_address)
     self.assertEqual("310 - Oddělení mobilit mládeže",
                      res.ministry_department)
コード例 #8
0
    def test_ci_test_ammount_not_greater_than_contract(self):
        tester = CIStaticTest()

        contract = Contract(amount_with_dph=11000, amount_without_dph=10000)
        invoice = Invoice()
        self.assertIsNone(tester.ci_test_amount_not_greater_than_contract(contract, invoice).result)

        contract = Contract()
        invoice = Invoice()
        self.assertIsNone(tester.ci_test_amount_not_greater_than_contract(contract, invoice).result)

        contract = Contract()
        invoice = Invoice(amount_with_dph=11000, amount_without_dph=10000)
        self.assertIsNone(tester.ci_test_amount_not_greater_than_contract(contract, invoice).result)

        contract = Contract(amount_with_dph=1000000, )
        invoice = Invoice(amount_with_dph=11000, amount_without_dph=10000)
        self.assertEqual(1, tester.ci_test_amount_not_greater_than_contract(contract, invoice).result)

        contract = Contract(amount_without_dph=1000000)
        invoice = Invoice(amount_with_dph=11000, amount_without_dph=10000)
        self.assertEqual(1, tester.ci_test_amount_not_greater_than_contract(contract, invoice).result)

        contract = Contract(amount_without_dph=11000)
        invoice = Invoice(amount_with_dph=1000000, )
        self.assertEqual(0, tester.ci_test_amount_not_greater_than_contract(contract, invoice).result)

        contract = Contract(amount_with_dph=11000, )
        invoice = Invoice(amount_without_dph=1000000)
        self.assertEqual(0, tester.ci_test_amount_not_greater_than_contract(contract, invoice).result)

        contract = Contract(amount_without_dph=11000)
        invoice = Invoice(amount_with_dph=11000, amount_without_dph=10000)
        self.assertEqual(1, tester.ci_test_amount_not_greater_than_contract(contract, invoice).result)

        contract = Contract(amount_without_dph=10999)
        invoice = Invoice(amount_with_dph=11000, amount_without_dph=10000)
        self.assertEqual(0, tester.ci_test_amount_not_greater_than_contract(contract, invoice).result)
コード例 #9
0
 def test_get_attributes_from_smlouva(self):
     xml_text = "<smlouva><subjekt><datovaSchranka>5gueuef</datovaSchranka><nazev>Krajská zdravotní, a.s.</nazev><ico>25488627</ico><adresa>Sociální péče 3316/12a, 40011 Ústí nad Labem, CZ</adresa></subjekt><smluvniStrana><nazev>Bio-Rad spol. s r.o.</nazev><ico>49243764</ico><adresa>Pikrtova 1737/1a 140 00 Praha 4 -  Nusle</adresa><utvar>Obchodní oddělení</utvar><prijemce>0</prijemce></smluvniStrana><predmet>2LEK-K309647-Bio-Rad spol. s r.o.</predmet><datumUzavreni>2019-12-31</datumUzavreni><cisloSmlouvy>2LEK-K309647</cisloSmlouvy><hodnotaBezDph>433773</hodnotaBezDph><hodnotaVcetneDph>501949</hodnotaVcetneDph></smlouva>"
     root = ET.fromstring(xml_text)
     contract = Contract()
     res = ContractProviderRegistr._get_attributes_from_smlouva(
         root, contract)
     self.assertEqual("5gueuef", res.ministry_data_box)
     self.assertEqual("Krajská zdravotní, a.s.", res.ministry_name)
     self.assertEqual("25488627", res.ministry_ico)
     self.assertEqual("Sociální péče 3316/12a, 40011 Ústí nad Labem, CZ",
                      res.ministry_address)
     self.assertEqual("Bio-Rad spol. s r.o.", res.supplier_name)
     self.assertEqual("49243764", res.supplier_ico)
     self.assertEqual("Pikrtova 1737/1a 140 00 Praha 4 -  Nusle",
                      res.supplier_address)
     self.assertEqual("Obchodní oddělení", res.supplier_department)
     self.assertEqual("0", res.supplier_receiver_flag)
     self.assertEqual(datetime(year=2019, month=12, day=31),
                      res.date_agreed)
     self.assertEqual("2LEK-K309647", res.contract_number)
     self.assertEqual("2LEK-K309647-Bio-Rad spol. s r.o.", res.purpose)
     self.assertEqual(433773, res.amount_without_dph)
     self.assertEqual(501949, res.amount_with_dph)
コード例 #10
0
    def test_ci_test_amount(self):
        tester = CIStaticTest()
        contract = Contract(amount_different_currency=1000, amount_with_dph=2000, amount_without_dph=3000)

        invoice = Invoice(amount_different_currency=1000, amount_with_dph=2000, amount_without_dph=3000)
        self.assertEqual(1, tester.ci_test_amount(contract, invoice).result)

        invoice = Invoice()
        self.assertIsNone( tester.ci_test_amount(contract, invoice).result)

        invoice = Invoice(amount_different_currency=1000, )
        self.assertEqual(1, tester.ci_test_amount(contract, invoice).result)

        invoice = Invoice(amount_different_currency=500, )
        self.assertEqual(0.5, tester.ci_test_amount(contract, invoice).result)

        invoice = Invoice(amount_with_dph=4000, )
        self.assertEqual(0.5, tester.ci_test_amount(contract, invoice).result)

        invoice = Invoice(amount_without_dph=0)
        self.assertEqual(0, tester.ci_test_amount(contract, invoice).result)

        invoice = Invoice(amount_different_currency=500, amount_with_dph=0, )
        self.assertEqual(0.25, tester.ci_test_amount(contract, invoice).result)
コード例 #11
0
    def test_ci_test_contract_is_valid(self):
        tester = CIStaticTest()

        contract = Contract()
        invoice = Invoice()
        self.assertIsNone(tester.ci_test_contract_is_valid(contract, invoice).result)

        contract = Contract(valid='2')
        self.assertIsNone(tester.ci_test_contract_is_valid(contract, invoice).result)


        contract = Contract(valid='-1')
        self.assertIsNone(tester.ci_test_contract_is_valid(contract, invoice).result)

        contract = Contract(valid='valid')
        self.assertIsNone(tester.ci_test_contract_is_valid(contract, invoice).result)

        contract = Contract(valid='1')
        self.assertEqual(1, tester.ci_test_contract_is_valid(contract, invoice).result)

        contract = Contract(valid='0')
        self.assertEqual(0, tester.ci_test_contract_is_valid(contract, invoice).result)
コード例 #12
0
    def test_ci_test_months_invoice_agreed_from_contract(self):
        tester = CIStaticTest()

        contract = Contract()
        invoice = Invoice()
        self.assertIsNone(tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed = datetime.datetime(day=1, month=1, year=2000))
        invoice = Invoice()
        self.assertIsNone(tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract()
        invoice = Invoice(date_issue = datetime.datetime(day=1, month=1, year=2000))
        self.assertIsNone(tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed = datetime.datetime(day=1, month=1, year=2000))
        invoice = Invoice(date_issue = datetime.datetime(day=1, month=1, year=2000))
        self.assertEqual(0, tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed = datetime.datetime(day=1, month=1, year=2000))
        invoice = Invoice(date_issue = datetime.datetime(day=2, month=1, year=2000))
        self.assertEqual(1, tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed=datetime.datetime(day=2, month=1, year=2000))
        invoice = Invoice(date_issue=datetime.datetime(day=1, month=1, year=2000))
        self.assertEqual(-1, tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed=datetime.datetime(day=1, month=1, year=2000))
        invoice = Invoice(date_issue=datetime.datetime(day=1, month=2, year=2000))
        self.assertEqual(31, tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed=datetime.datetime(day=1, month=1, year=2000))
        invoice = Invoice(date_issue=datetime.datetime(day=1, month=1, year=2001))
        self.assertEqual(366, tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed=datetime.datetime(day=1, month=1, year=2001))
        invoice = Invoice(date_issue=datetime.datetime(day=1, month=1, year=2002))
        self.assertEqual(365, tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed=datetime.datetime(day=1, month=1, year=2000))
        invoice = Invoice(date_issue=datetime.datetime(day=1, month=1, year=2010))
        self.assertEqual(3653, tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed=datetime.datetime(day=1, month=1, year=2010))
        invoice = Invoice(date_issue=datetime.datetime(day=1, month=1, year=2000))
        self.assertEqual(-3653, tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed=datetime.datetime(day=1, month=1, year=2000, hour=1, minute=1, second=1))
        invoice = Invoice(date_issue=datetime.datetime(day=1, month=1, year=2010))
        self.assertEqual(3652, tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed=datetime.datetime(day=1, month=1, year=2000, hour=23, minute=59, second=59))
        invoice = Invoice(date_issue=datetime.datetime(day=1, month=1, year=2010))
        self.assertEqual(3652, tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed=datetime.datetime(day=1, month=1, year=2000))
        invoice = Invoice(date_issue=datetime.datetime(day=1, month=1, year=2010, hour=1, minute=1, second=1))
        self.assertEqual(3653, tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)

        contract = Contract(date_agreed=datetime.datetime(day=1, month=1, year=2000))
        invoice = Invoice(date_issue=datetime.datetime(day=1, month=1, year=2010, hour=23, minute=59, second=59))
        self.assertEqual(3653, tester.ci_test_days_invoice_agreed_from_contract(contract, invoice).result)