def parsea_boletin(boletin_str, cursor, filename = ""):
    boletin = Boletin(boletin_str)
    adjudicaciones_str = boletin.get_modulos_seccion("Adjudicaciones")
    totales = { "adjudicaciones" : 0, 
                "sociedades" : 0, 
                "oferentes" : 0,
                "reparticiones" : 0}

    boletin_regex = re.compile("-",re.IGNORECASE | re.MULTILINE)
    matchs = boletin_regex.split(filename)

    cursor.execute(db_inserts['boletin'], (matchs[0], matchs[1].replace('.txt', '')))
    boletin_id = cursor.lastrowid   

    for adjudicacion_str in adjudicaciones_str:
        adjudicacion = Adjudicacion(adjudicacion_str)
        
        reparticion = adjudicacion.get_entidad_publica()
        cursor.execute(db_queries['reparticion'], '%'+string.capwords(reparticion)+'%')
        reparticion_id = cursor.fetchone()

        if not reparticion_id:
            cursor.execute(db_inserts['reparticion'], reparticion)               
            totales['reparticiones'] += 1
            reparticion_id = cursor.lastrowid
        else:
            reparticion_id = reparticion_id[0]

        try:
            adjudicacion_objeto = adjudicacion.get_objeto()
            cursor.execute(db_inserts['adjudicacion'], 
                        (adjudicacion_objeto, 
                        adjudicacion.get_texto(),
                        reparticion_id,
                        boletin_id))
        except Exception, e:                
            logging.error(logging_msg, filename, adjudicacion.get_texto())

        adjudicacion_id = cursor.lastrowid         

        precios = adjudicacion.get_precios()
        proveedores = adjudicacion.get_proveedores()

        for proveedor, precio in zip(proveedores, precios):
            proveedor_title = string.capwords(proveedor)                
            cursor.execute(db_queries['sociedad'], proveedor_title)

            sociedad = cursor.fetchone()

            if not sociedad:
                cursor.execute(db_inserts['sociedad'], proveedor_title)                        
                totales['sociedades'] += 1
                proveedor_id = cursor.lastrowid
            else:
                proveedor_id = sociedad[0]

            #cursor.execute(db_inserts['sociedad2'], proveedor_title)                        
            
            precio_str = "{0} {1}".format(precio['moneda'], precio['valor'])
            cursor.execute(db_inserts['oferente'], 
                            (proveedor_id, adjudicacion_id, precio_str))

            totales['oferentes'] += 1

        totales['adjudicaciones'] += 1
예제 #2
0
 def test_when_adjudicacion_1_return_entidad_publica(self):
     adjudicacion = Adjudicacion(fixtures.adjudicaciones[1])
     self.assertEqual(
         adjudicacion.get_entidad_publica(),
         "FUERZA AEREA ARGENTINA DIRECCION GENERAL DE INTENDENCIA DIRECCION DE CONTRATACIONES"
     )
예제 #3
0
 def test_when_adjudicacion_2_return_entidad_publica(self):
     adjudicacion = Adjudicacion(fixtures.adjudicaciones[2])
     self.assertEqual(adjudicacion.get_entidad_publica(),
                      "EJERCITO ARGENTINO COLEGIO MILITAR DE LA NACION")
예제 #4
0
 def test_when_adjudicacion_4_return_entidad_publica(self):
     adjudicacion = Adjudicacion(fixtures.adjudicaciones[4])
     self.assertEqual(
         adjudicacion.get_entidad_publica(),
         "ADMINISTRACION FEDERAL DE INGRESOS PUBLICOS DIRECCION REGIONAL ADUANERA MENDOZA"
     )
예제 #5
0
 def test_when_adjudicacion_0_return_entidad_publica(self):
     adjudicacion = Adjudicacion(fixtures.adjudicaciones[0])
     self.assertEqual(
         adjudicacion.get_entidad_publica(),
         "FUERZA AEREA ARGENTINA ESTADO MAYOR GENERAL DE LA FUERZA AEREA INSTITUTO DE FORMACION EZEIZA"
     )
예제 #6
0
def parsea_boletin(boletin_str, cursor, filename=""):
    boletin = Boletin(boletin_str)
    adjudicaciones_str = boletin.get_modulos_seccion("Adjudicaciones")
    totales = {
        "adjudicaciones": 0,
        "sociedades": 0,
        "oferentes": 0,
        "reparticiones": 0
    }

    boletin_regex = re.compile("-", re.IGNORECASE | re.MULTILINE)
    matchs = boletin_regex.split(filename)

    cursor.execute(db_inserts['boletin'],
                   (matchs[0], matchs[1].replace('.txt', '')))
    boletin_id = cursor.lastrowid

    for adjudicacion_str in adjudicaciones_str:
        adjudicacion = Adjudicacion(adjudicacion_str)

        reparticion = adjudicacion.get_entidad_publica()
        cursor.execute(db_queries['reparticion'],
                       '%' + string.capwords(reparticion) + '%')
        reparticion_id = cursor.fetchone()

        if not reparticion_id:
            cursor.execute(db_inserts['reparticion'], reparticion)
            totales['reparticiones'] += 1
            reparticion_id = cursor.lastrowid
        else:
            reparticion_id = reparticion_id[0]

        try:
            adjudicacion_objeto = adjudicacion.get_objeto()
            cursor.execute(db_inserts['adjudicacion'],
                           (adjudicacion_objeto, adjudicacion.get_texto(),
                            reparticion_id, boletin_id))
        except Exception, e:
            logging.error(logging_msg, filename, adjudicacion.get_texto())

        adjudicacion_id = cursor.lastrowid

        precios = adjudicacion.get_precios()
        proveedores = adjudicacion.get_proveedores()

        for proveedor, precio in zip(proveedores, precios):
            proveedor_title = string.capwords(proveedor)
            cursor.execute(db_queries['sociedad'], proveedor_title)

            sociedad = cursor.fetchone()

            if not sociedad:
                cursor.execute(db_inserts['sociedad'], proveedor_title)
                totales['sociedades'] += 1
                proveedor_id = cursor.lastrowid
            else:
                proveedor_id = sociedad[0]

            #cursor.execute(db_inserts['sociedad2'], proveedor_title)

            precio_str = "{0} {1}".format(precio['moneda'], precio['valor'])
            cursor.execute(db_inserts['oferente'],
                           (proveedor_id, adjudicacion_id, precio_str))

            totales['oferentes'] += 1

        totales['adjudicaciones'] += 1
예제 #7
0
 def test_when_adjudicacion_3_return_entidad_publica(self):
     adjudicacion = Adjudicacion(fixtures.adjudicaciones[3])
     self.assertEqual(adjudicacion.get_entidad_publica(),
                      "GENDARMERIA NACIONAL ARGENTINA")
예제 #8
0
 def test_when_adjudicacion_3_return_entidad_publica(self):
     adjudicacion = Adjudicacion(fixtures.adjudicaciones[3])
     self.assertEqual(adjudicacion.get_entidad_publica(), 
         "GENDARMERIA NACIONAL ARGENTINA")
예제 #9
0
 def test_when_adjudicacion_2_return_entidad_publica(self):
     adjudicacion = Adjudicacion(fixtures.adjudicaciones[2])
     self.assertEqual(adjudicacion.get_entidad_publica(), 
         "EJERCITO ARGENTINO COLEGIO MILITAR DE LA NACION")
예제 #10
0
 def test_when_adjudicacion_1_return_entidad_publica(self):
     adjudicacion = Adjudicacion(fixtures.adjudicaciones[1])
     self.assertEqual(adjudicacion.get_entidad_publica(), 
         "FUERZA AEREA ARGENTINA DIRECCION GENERAL DE INTENDENCIA DIRECCION DE CONTRATACIONES")
예제 #11
0
 def test_when_adjudicacion_0_return_entidad_publica(self):
     adjudicacion = Adjudicacion(fixtures.adjudicaciones[0])
     self.assertEqual(adjudicacion.get_entidad_publica(), 
         "FUERZA AEREA ARGENTINA ESTADO MAYOR GENERAL DE LA FUERZA AEREA INSTITUTO DE FORMACION EZEIZA")
예제 #12
0
 def test_when_adjudicacion_4_return_entidad_publica(self):
     adjudicacion = Adjudicacion(fixtures.adjudicaciones[4])
     self.assertEqual(adjudicacion.get_entidad_publica(), 
         "ADMINISTRACION FEDERAL DE INGRESOS PUBLICOS DIRECCION REGIONAL ADUANERA MENDOZA")