def conv_text(self, data): o = self.connection t = "" for line in data: res_srid = convert_srid(self.codi_r1, get_srid(o), [line["x"], line["y"]]) t += "{0};{1};{2}\n".format(format_f(res_srid[0], decimals=6), format_f(res_srid[1], decimals=6), 0) return t[:-1]
def consumer(self): o_codi_r1 = 'R1-%s' % self.codi_r1[-3:] O = self.connection fields_to_read = [ 'name', 'cini', 'ct_id', 'tensio_id', 'potencia_instalada' ] while True: try: item = self.input_q.get() self.progress_q.put(item) condensador = O.GiscedataCondensadors.read(item, fields_to_read) o_cond = condensador['name'] o_cini = condensador.get('cini', '') o_potencia = condensador['potencia_instalada'] o_node, posicion = self.get_node_vertex(condensador['name']) o_node = o_node.replace('*', '') ct = self.get_dades_ct(condensador['ct_id'][0]) o_propietari = int(ct['propietari']) o_ine_muni, o_ine_prov = '', '' if ct['id_municipi']: o_ine_prov, o_ine_muni = self.get_ine(ct['id_municipi'][0]) o_tensio = format_f( float(self.get_tensio(condensador['tensio_id'][0])) / 1000.0, decimals=3 ) o_any = self.year z = '' res_srid = ['', ''] if posicion: res_srid = convert_srid( self.codi_r1, get_srid(O), posicion) self.output_q.put([ o_node, # NUDO o_cond, # CONDENSADOR o_cini, # CINI format_f(res_srid[0], decimals=3), # X format_f(res_srid[1], decimals=3), # Y z, # Z o_ine_muni, # MUNICIPIO o_ine_prov, # PROVINCIA o_tensio, # NIVEL TENSION format_f(o_potencia, decimals=3), # POTENCIA INSTALADA o_codi_r1, # CODIGO DISTRIBUIDORA o_propietari, # PROPIETARIO o_any # AÑO INFORMACION ]) except Exception: traceback.print_exc() if self.raven: self.raven.captureException() finally: self.input_q.task_done()
def consumer(self): """ Consumer function that generates each line of the file :return: None """ while True: try: item = self.input_q.get() fields_read = [ "name", "tensio", "cini", "propietari", "x", "y", "subestacio_id", "node_id" ] fields_sub_read = [ "x", "y", "ct_id","id_municipi","id_provincia" ] pos = self.connection.GiscedataCtsSubestacionsPosicio.read( item, fields_read ) sub = self.connection.GiscedataCtsSubestacions.read( pos["subestacio_id"][0], fields_sub_read ) point = [sub["x"], sub["y"]] point_25830 = convert_srid(self.codi_r1, self.srid, point) if "node_id" in sub: nudo = sub["node_id"] else: nudo = self.cts_node[sub["ct_id"][0]] self.output_q.put( [ nudo, # Nudo pos.get("name", ""), # Elemento de fiabilidad "", # Tramo pos.get("cini", ""), # CINI format_f(point_25830[0], decimals=3), format_f(point_25830[1], decimals=3), 0, self.municipios[sub["id_municipi"][0]], # Codigo INE de municipio self.provincias[sub["id_provincia"][0]], # Codigo de provincia INE self.tensions.get(pos["tensio"][0], 0), # Nivel de tension self.cod_dis, # Codigo de la compañia distribuidora int(pos.get("propietari", 1)), # Propiedad self.year # Año de inforacion ]) except Exception: traceback.print_exc() if self.raven: self.raven.captureException() finally: self.input_q.task_done()
def consumer(self): o_codi_r1 = "R1-%s" % self.codi_r1[-3:] o = self.connection fields_to_read = ["name", "cini", "propietari", "id_municipi", "id_provincia", "ct_id", "descripcio"] while True: try: # generar linies item = self.input_q.get() self.progress_q.put(item) sub = o.GiscedataCtsSubestacions.read(item, fields_to_read) ids_sub = {"id_municipi": sub["id_municipi"], "id_provincia": sub["id_provincia"]} vertex = self.get_vertex(sub["ct_id"][0]) ines = self.get_ines(ids_sub) o_subestacio = sub["name"] o_cini = sub["cini"] o_denominacio = sub["descripcio"] x = "" y = "" z = "" if vertex[0]: x = format_f(float(vertex[0]), decimals=3) if vertex[1]: y = format_f(float(vertex[1]), decimals=3) o_municipi = ines["ine_municipi"] o_provincia = ines["ine_provincia"] o_prop = int(sub["propietari"]) o_any = self.year res_srid = ["", ""] if vertex: res_srid = convert_srid(self.codi_r1, get_srid(o), vertex) self.output_q.put( [ o_subestacio, o_cini, o_denominacio, format_f(res_srid[0], decimals=3), format_f(res_srid[1], decimals=3), z, o_municipi, o_provincia, o_codi_r1, o_prop, o_any, ] ) except: traceback.print_exc() if self.raven: self.raven.captureException() finally: self.input_q.task_done()
def consumer(self): o = self.connection fields_to_read = [ 'installacio', 'cini', 'propietari', 'name' ] while True: try: # generar linies item = self.input_q.get() self.progress_q.put(item) celles = o.GiscedataCellesCella.read( item, fields_to_read ) dict_linia = self.obtenir_camps_linia(celles['installacio']) o_fiabilitat = celles['name'] o_node, vertex, o_tram = self.get_node_vertex_tram(o_fiabilitat) o_cini = celles['cini'] z = '' o_municipi = dict_linia.get('municipi') o_provincia = dict_linia.get('provincia') o_tensio = format_f(dict_linia.get('tensio'), decimals=3) o_cod_dis = 'R1-%s' % self.codi_r1[-3:] o_prop = int(celles['propietari']) o_any = self.year res_srid = ['', ''] if vertex: res_srid = convert_srid( self.codi_r1, get_srid(o), vertex) self.output_q.put([ o_node, o_fiabilitat, o_tram, o_cini, format_f(res_srid[0], decimals=3), format_f(res_srid[1], decimals=3), z, o_municipi, o_provincia, o_tensio, o_cod_dis, o_prop, o_any ]) except: traceback.print_exc() if self.raven: self.raven.captureException() finally: self.input_q.task_done()
def conv_text(self, data): """ Converts the projection of a data :param data: list of elemnets to convert :return: Elements with the projection converted """ o = self.connection t = '' for line in data: res_srid = convert_srid( self.codi_r1, get_srid(o), [line['x'], line['y']] ) t += '{0};{1};{2}\n'.format( format_f(res_srid[0], decimals=6), format_f(res_srid[1], decimals=6), '') return t[:-1]
def consumer(self): o_codi_r1 = 'R1-%s' % self.codi_r1[-3:] O = self.connection fields_to_read = [ 'name', 'cini', 'id_municipi', 'tensio_p', 'id_subtipus', 'perc_financament', 'propietari', 'numero_maxim_maquines', 'potencia',"node_id" ] while True: try: item = self.input_q.get() self.progress_q.put(item) ct = O.GiscedataCts.read(item, fields_to_read) if ct.get("node_id"): o_node = ct["node_id"][1] node = O.GiscegisNodes.read(ct["node_id"][0],["geom"]) coords = wkt.loads(node["geom"]).coords[0] vertex = [coords[0], coords[1]] else: o_node, vertex = self.get_node_vertex(item) o_node = o_node.replace('*', '') o_ct = ct['name'] o_cini = ct['cini'] or '' if ct['id_municipi']: o_ine_prov, o_ine_muni = self.get_ine(ct['id_municipi'][0]) else: o_ine_muni, o_ine_prov = '', '' try: o_tensio_p = format_f( float(ct['tensio_p']) / 1000.0, decimals=3) or '' except: o_tensio_p = '' if ct['id_subtipus']: o_tipo = self.get_tipus(ct['id_subtipus'][0]) else: o_tipo = '' o_potencia = float(self.get_potencia_trafos(item)) cups = O.GiscedataCupsPs.search([ ('et', '=', ct['name']), ('polissa_polissa.tarifa.name', 'not in', ["RE", "RE12"]) ]) o_energia = sum( x['cne_anual_activa'] for x in O.GiscedataCupsPs.read( cups, ['cne_anual_activa'] ) ) o_pic_activa = format_f( self.get_saturacio(ct['id']), decimals=3) o_pic_reactiva = '' o_s_utilitades, o_s_disponibles = self.get_sortides_ct( ct['name'] ) o_propietari = int(ct['propietari']) o_num_max_maquines = ct['numero_maxim_maquines'] o_incorporacio = self.year z = '' res_srid = ['', ''] if vertex: res_srid = convert_srid( self.codi_r1, get_srid(O), vertex) self.output_q.put([ o_node, # NUDO ALTA o_ct, # CT o_cini, # CINI format_f(res_srid[0], decimals=3), # X format_f(res_srid[1], decimals=3), # Y z, # Z o_ine_muni, # MUNICIPIO o_ine_prov, # PROVINCIA o_tensio_p, # NIVEL TENSION o_tipo, # TIPO format_f(o_potencia, decimals=3), # POTENCIA TOTAL INSTALADA format_f(o_energia, decimals=3), # ENERGIA ANUAL CIRCULADA o_pic_activa, # DEMANDA PICO ACTIVA o_pic_reactiva, # DEMANDA PICO REACTIVA o_s_utilitades, # NUMERO SALIDAS UTILIZADAS o_s_disponibles, # MAXIMO SALIDAS UTILIZADAS o_codi_r1, # CODIGO DISTRIBUIDORA o_propietari, # PROPIEDAD o_num_max_maquines, # NUM MAX MAQUINAS o_incorporacio # AÑO INFORMACION ]) except Exception: traceback.print_exc() if self.raven: self.raven.captureException() finally: self.input_q.task_done()
def consumer(self): o_codi_r1 = 'R1-%s' % self.codi_r1[-3:] O = self.connection fields_to_read = [ 'name', 'cini', 'id_municipi', 'tensio_p', 'id_subtipus', 'perc_financament', 'propietari', 'numero_maxim_maquines', 'potencia' ] while True: try: item = self.input_q.get() self.progress_q.put(item) ct = O.GiscedataCts.read(item, fields_to_read) o_node, vertex = self.get_node_vertex(item) o_ct = ct['name'] o_cini = ct['cini'] or '' if ct['id_municipi']: o_ine_prov, o_ine_muni = self.get_ine(ct['id_municipi'][0]) else: o_ine_muni, o_ine_prov = '', '' try: o_tensio_p = format_f( float(ct['tensio_p']) / 1000.0, decimals=3) or '' except: o_tensio_p = '' if ct['id_subtipus']: o_tipo = self.get_tipus(ct['id_subtipus'][0]) else: o_tipo = '' o_potencia = format_f(self.get_potencia_trafos(item), decimals=3) cups = O.GiscedataCupsPs.search([('et', '=', ct['name'])]) o_energia = sum( x['cne_anual_activa'] for x in O.GiscedataCupsPs.read( cups, ['cne_anual_activa'] ) ) o_pic_activa = format_f( self.get_saturacio(ct['id']), decimals=3) o_pic_reactiva = '' o_s_utilitades, o_s_disponibles = self.get_sortides_ct( ct['name'] ) o_propietari = int(ct['propietari']) o_num_max_maquines = ct['numero_maxim_maquines'] o_incorporacio = self.year x = '' y = '' z = '' res_srid = ['', ''] if vertex: res_srid = convert_srid( self.codi_r1, get_srid(O), vertex) self.output_q.put([ o_node, o_ct, o_cini, format_f(res_srid[0], decimals=3), format_f(res_srid[1], decimals=3), z, o_ine_muni, o_ine_prov, o_tensio_p, o_tipo, o_potencia, format_f(o_energia, decimals=3), o_pic_activa, o_pic_reactiva, o_s_utilitades, o_s_disponibles, o_codi_r1, o_propietari, o_num_max_maquines, o_incorporacio ]) except: traceback.print_exc() if self.raven: self.raven.captureException() finally: self.input_q.task_done()
def consumer(self): """ Function that generates each line of the file :return: None """ o = self.connection fields_to_read = [ 'installacio', 'cini', 'propietari', 'name', 'tram_id', 'tensio', "node_id" ] while True: try: item = self.input_q.get() self.progress_q.put(item) cella = o.GiscedataCellesCella.read( item, fields_to_read ) o_fiabilitat = cella['name'] o_cini = cella['cini'] o_prop = int(cella['propietari']) if "node_id" in cella: o_node = cella["node_id"][1] geom = o.GiscegisNodes.read(cella["node_id"][0],["geom"])["geom"] vertex = wkt.loads(geom).coords[0] dict_linia = self.obtenir_camps_linia(cella['installacio']) model, element_id = cella['installacio'].split(',') x = '' y = '' z = '' if model == "giscedata.cts": ct_x_y = o.GiscedataCts.read(element_id, ["x", "y"]) vertex = False o_tram = "" if "node_id" not in cella: o_node = self.get_node_ct(element_id) point = (ct_x_y["x"], ct_x_y["y"]) p25830 = convert_srid(self.codi_r1, get_srid(o), point) x = format_f(p25830[0], decimals=3) y = format_f(p25830[1], decimals=3) else: if "node_id" not in cella: if not cella['tram_id']: o_node, vertex, o_tram = self.get_node_vertex_tram( o_fiabilitat) else: o_node, vertex = self.get_node_vertex(o_fiabilitat) else: if "tram_id" in cella: o_tram = "A{0}".format(o.GiscedataAtTram.read( cella['tram_id'][0], ['name'] )['name']) o_node = o_node.replace('*', '') o_municipi = dict_linia.get('municipi') o_provincia = dict_linia.get('provincia') if cella['tensio']: tensio = o.GiscedataTensionsTensio.read( cella['tensio'][0], ['tensio'] ) o_tensio = format_f(int(tensio['tensio'])/1000.0, decimals=3) else: o_tensio = dict_linia.get('tensio') o_any = self.year res_srid = ['', ''] if vertex: res_srid = convert_srid( self.codi_r1, get_srid(o), vertex) x = format_f(res_srid[0], decimals=3) y = format_f(res_srid[1], decimals=3) self.output_q.put([ o_node, # NUDO o_fiabilitat, # ELEMENTO FIABILIDAD o_tram, # TRAMO o_cini, # CINI x, # X y, # Y z, # Z o_municipi, # MUNICIPIO o_provincia, # PROVINCIA o_tensio, # NIVEL TENSION self.cod_dis, # CODIGO DISTRIBUIDORA o_prop, # PROPIEDAD o_any # AÑO INFORMACION ]) except Exception: traceback.print_exc() if self.raven: self.raven.captureException() finally: self.input_q.task_done()
def consumer(self): """ Consumer function to generate F1 :return: None """ o_codi_r1 = 'R1-%s' % self.codi_r1[-3:] O = self.connection ultim_dia_any = '%s-12-31' % self.year search_glob = [ ('state', 'not in', ('esborrany', 'validar')), ('data_alta', '<=', ultim_dia_any), '|', ('data_baixa', '>=', ultim_dia_any), ('data_baixa', '=', False) ] context_glob = {'date': ultim_dia_any, 'active_test': False} while True: try: item = self.input_q.get() self.progress_q.put(item) fields_to_read = [ 'name', 'id_escomesa', 'id_municipi', 'cne_anual_activa', 'cne_anual_reactiva', 'cnmc_potencia_facturada', 'et', 'polisses', 'potencia_conveni', 'potencia_adscrita', "node_id" ] cups = O.GiscedataCupsPs.read(item, fields_to_read) if not cups or not cups.get('name'): self.input_q.task_done() continue if self.reducir_cups: o_name = cups['name'][:20] else: o_name = cups['name'][:22] o_codi_ine_mun = '' o_codi_ine_prov = '' o_zona = '' o_potencia_facturada = format_f( cups['cnmc_potencia_facturada'], 3) or '' if 'et' in cups: o_zona = self.get_zona_qualitat(cups['et']) if cups['id_municipi']: id_mun = cups["id_municipi"][0] o_codi_ine_prov, o_codi_ine_mun = self.get_ine(id_mun) o_nom_node = cups.get("node_id")[1] o_tensio = '' o_connexio = '' vertex = False if cups and cups['id_escomesa'] and "node_id" not in cups: o_connexio = self.get_tipus_connexio( cups['id_escomesa'][0] ) search_params = [('escomesa', '=', cups['id_escomesa'][0])] bloc_escomesa_id = O.GiscegisBlocsEscomeses.search( search_params ) if bloc_escomesa_id: bloc_escomesa = O.GiscegisBlocsEscomeses.read( bloc_escomesa_id[0], ['node', 'vertex'] ) if bloc_escomesa['vertex']: vertex = O.GiscegisVertex.read( bloc_escomesa['vertex'][0], ['x', 'y'] ) if bloc_escomesa['node']: node = O.GiscegisNodes.read( [bloc_escomesa['node'][0]], ['name']) o_nom_node = node[0]['name'] o_nom_node = o_nom_node.replace('*', '') search_params = [('cups', '=', cups['id'])] + search_glob polissa_id = O.GiscedataPolissa.search( search_params, 0, 1, 'data_alta desc', context_glob) o_potencia = '' o_cnae = '' o_pot_ads = cups.get('potencia_adscrita', '0,000') or '0,000' o_equip = 'MEC' o_cod_tfa = '' o_estat_contracte = 0 # energies consumides o_anual_activa = format_f( cups['cne_anual_activa'] or 0.0, decimals=3) o_anual_reactiva = format_f( cups['cne_anual_reactiva'] or 0.0, decimals=3) if polissa_id: fields_to_read = [ 'potencia', 'cnae', 'tarifa', 'butlletins', 'tensio' ] polissa = O.GiscedataPolissa.read( polissa_id[0], fields_to_read, context_glob ) if 'RE' in polissa['tarifa'][1]: continue if polissa['tensio']: o_tensio = format_f( float(polissa['tensio']) / 1000.0, decimals=3) o_potencia = polissa['potencia'] if polissa['cnae']: cnae_id = polissa['cnae'][0] if cnae_id in self.cnaes: o_cnae = self.cnaes[cnae_id] else: o_cnae = O.GiscemiscCnae.read( cnae_id, ['name'] )['name'] self.cnaes[cnae_id] = o_cnae else: try: polissa_act = O.GiscedataPolissa.read( polissa_id[0], fields_to_read ) cnae_id = polissa_act['cnae'][0] if cnae_id in self.cnaes: o_cnae = self.cnaes[cnae_id] else: o_cnae = O.GiscemiscCnae.read( cnae_id, ['name'] )['name'] self.cnaes[cnae_id] = o_cnae except: pass comptador_actiu = get_comptador( self.connection, polissa['id'], self.year) if comptador_actiu: comptador_actiu = comptador_actiu[0] comptador = O.GiscedataLecturesComptador.read( comptador_actiu, ['cini', 'tg'] ) if not comptador['cini']: comptador['cini'] = '' if comptador.get('tg', False): o_equip = 'SMT' elif re.findall(CINI_TG_REGEXP, comptador['cini']): o_equip = 'SMT' else: o_equip = 'MEC' if polissa['tarifa']: o_cod_tfa = self.get_codi_tarifa(polissa['tarifa'][1]) else: # Si no trobem polissa activa, considerem # "Contrato no activo (CNA)" o_equip = 'CNA' o_estat_contracte = 1 search_modcon = [ ('id', 'in', cups['polisses']), ('data_inici', '<=', ultim_dia_any) ] modcons = None if len(cups['polisses']): modcons = O.GiscedataPolissaModcontractual.search( search_modcon, 0, 1, 'data_inici desc' , {'active_test': False}) if modcons: modcon_id = modcons[0] fields_to_read_modcon = [ 'cnae', 'tarifa', 'tensio', 'potencia' ] modcon = O.GiscedataPolissaModcontractual.read( modcon_id, fields_to_read_modcon) if modcon['tarifa']: o_cod_tfa = self.get_codi_tarifa( modcon['tarifa'][1] ) if modcon['cnae']: cnae_id = modcon['cnae'][0] if cnae_id in self.cnaes: o_cnae = self.cnaes[cnae_id] else: o_cnae = O.GiscemiscCnae.read( cnae_id, ['name'] )['name'] self.cnaes[cnae_id] = o_cnae if modcon['tensio']: o_tensio = format_f( float(modcon['tensio']) / 1000.0, decimals=3) if modcon['potencia']: o_potencia = format_f( float(modcon['potencia']), decimals=3) else: # No existeix modificació contractual per el CUPS o_potencia = cups['potencia_conveni'] if cups.get('id_escomesa', False): search_params = [ ('escomesa', '=', cups['id_escomesa'][0]) ] id_esc_gis = O.GiscegisEscomesesTraceability.search( search_params ) if id_esc_gis: tensio_gis = O.GiscegisEscomesesTraceability.read( id_esc_gis, ['tensio'] )[0]['tensio'] o_tensio = format_f( float(tensio_gis) / 1000.0, decimals=3) else: o_tensio = '' if self.default_o_cnae: o_cnae = self.default_o_cnae if self.default_o_cod_tfa: o_cod_tfa = self.default_o_cod_tfa o_any_incorporacio = self.year res_srid = ['', ''] if vertex: res_srid = convert_srid( self.codi_r1, get_srid(O), (vertex['x'], vertex['y'])) self.output_q.put([ o_nom_node, # Nudo format_f(res_srid[0], decimals=3), # X format_f(res_srid[1], decimals=3), # Y '', # Z o_cnae, # CNAE o_equip, # Equipo de medida o_cod_tfa, # Codigo de tarifa o_zona, # Zona de calidad o_name, # CUPS o_codi_r1, # Codigo de la distribuidora o_codi_ine_mun, # Municipio o_codi_ine_prov, # Provincia o_connexio, # Conexion o_tensio, # Tension de alimentacion o_estat_contracte, # Estado de contrato format_f(o_potencia or '0,000', decimals=3), # Potencia contratada format_f(o_potencia_facturada, decimals=3), # Potencia facturada format_f(o_pot_ads, decimals=3), # Potencia adscrita a la instalacion format_f(o_anual_activa, decimals=3), # Energia activa anual consumida format_f(o_anual_reactiva, decimals=3), # Energia reactiva anual consumida o_any_incorporacio # Año informacion ]) except Exception: traceback.print_exc() if self.raven: self.raven.captureException() finally: self.input_q.task_done()
def consumer(self): o_codi_r1 = 'R1-%s' % self.codi_r1[-3:] O = self.connection ultim_dia_any = '%s-12-31' % self.year search_glob = [ ('state', 'not in', ('esborrany', 'validar')), ('data_alta', '<=', ultim_dia_any), '|', ('data_baixa', '>=', ultim_dia_any), ('data_baixa', '=', False) ] context_glob = {'date': ultim_dia_any, 'active_test': False} while True: try: item = self.input_q.get() self.progress_q.put(item) fields_to_read = [ 'name', 'id_escomesa', 'id_municipi', 'cne_anual_activa', 'cne_anual_reactiva', 'cnmc_potencia_facturada', 'et', 'polisses' ] cups = O.GiscedataCupsPs.read(item, fields_to_read) if not cups or not cups.get('name'): self.input_q.task_done() continue o_name = cups['name'][:22] o_codi_ine = '' o_codi_prov = '' o_zona = '' o_potencia_facturada = format_f( cups['cnmc_potencia_facturada'], 3) or '' if 'et' in cups: o_zona = self.get_zona_qualitat(cups['et']) if cups['id_municipi']: municipi = O.ResMunicipi.read( cups['id_municipi'][0], ['ine'] ) ine = get_ine(self.connection, municipi['ine']) o_codi_ine = ine[1] o_codi_prov = ine[0] o_utmx = '' o_utmy = '' o_utmz = '' o_nom_node = '' o_tensio = '' o_connexio = '' vertex = False if cups and cups['id_escomesa']: o_connexio = self.get_tipus_connexio( cups['id_escomesa'][0] ) search_params = [('escomesa', '=', cups['id_escomesa'][0])] bloc_escomesa_id = O.GiscegisBlocsEscomeses.search( search_params ) if bloc_escomesa_id: bloc_escomesa = O.GiscegisBlocsEscomeses.read( bloc_escomesa_id[0], ['node', 'vertex'] ) if bloc_escomesa['vertex']: vertex = O.GiscegisVertex.read( bloc_escomesa['vertex'][0], ['x', 'y'] ) o_utmx = round(vertex['x'], 3) o_utmy = round(vertex['y'], 3) if bloc_escomesa['node']: node = O.GiscegisNodes.read( [bloc_escomesa['node'][0]], ['name']) o_nom_node = node[0]['name'] search_params = [('cups', '=', cups['id'])] + search_glob polissa_id = O.GiscedataPolissa.search( search_params, 0, 1, 'data_alta desc', context_glob) o_potencia = '' o_cnae = '' o_pot_ads = '' o_equip = 'MEC' o_cod_tfa = '' o_estat_contracte = 0 #energies consumides o_anual_activa = format_f( cups['cne_anual_activa'] or 0.0, decimals=3) o_anual_reactiva = format_f( cups['cne_anual_reactiva'] or 0.0, decimals=3) if polissa_id: fields_to_read = [ 'potencia', 'cnae', 'tarifa', 'butlletins', 'tensio' ] polissa = O.GiscedataPolissa.read( polissa_id[0], fields_to_read, context_glob ) if polissa['tensio']: o_tensio = format_f( float(polissa['tensio']) / 1000.0, decimals=3) o_potencia = format_f( polissa['potencia'], decimals=3) if polissa['cnae']: o_cnae = polissa['cnae'][1] # Mirem si té l'actualització dels butlletins if polissa.get('butlletins', []): butlleti = O.GiscedataButlleti.read( polissa['butlletins'][-1], ['pot_max_admisible'] ) o_pot_ads = format_f( butlleti['pot_max_admisible'], decimals=3) comptador_actiu = get_comptador( self.connection, polissa['id'], self.year) if comptador_actiu: comptador_actiu = comptador_actiu[0] comptador = O.GiscedataLecturesComptador.read( comptador_actiu, ['cini', 'tg'] ) if not comptador['cini']: comptador['cini'] = '' if comptador.get('tg', False): o_equip = 'SMT' elif re.findall(CINI_TG_REGEXP, comptador['cini']): o_equip = 'SMT' else: o_equip = 'MEC' if polissa['tarifa']: o_cod_tfa = self.get_codi_tarifa(polissa['tarifa'][1]) else: # Si no trobem polissa activa, considerem # "Contrato no activo (CNA)" o_equip = 'CNA' o_estat_contracte = 1 o_potencia_facturada = 0 o_pot_ads = 0 o_potencia = 0 o_anual_activa = 0 o_anual_reactiva = 0 search_modcon = [ ('id', 'in', cups['polisses']), ('data_inici', '<=', ultim_dia_any) ] modcons = O.GiscedataPolissaModcontractual.search( search_modcon, 0, 1, 'data_inici desc' , {'active_test': False}) if modcons: modcon_id = modcons[0] fields_to_read_modcon = ['cnae', 'tarifa', 'tensio'] modcon = O.GiscedataPolissaModcontractual.read( modcon_id, fields_to_read_modcon) if modcon['tarifa']: o_cod_tfa = self.get_codi_tarifa(modcon['tarifa'][1]) if modcon['cnae']: o_cnae = modcon['cnae'][1] if modcon['tensio']: o_tensio = format_f( float(modcon['tensio']) / 1000.0, decimals=3) o_any_incorporacio = self.year res_srid = ['', ''] if vertex: res_srid = convert_srid( self.codi_r1, get_srid(O), [vertex['x'], vertex['y']]) self.output_q.put([ o_nom_node, format_f(res_srid[0], decimals=3), format_f(res_srid[1], decimals=3), o_utmz, o_cnae, o_equip, o_cod_tfa, o_zona, o_name, o_codi_r1, o_codi_ine, o_codi_prov, o_connexio, o_tensio, o_estat_contracte, o_potencia, o_potencia_facturada, o_pot_ads or o_potencia, o_anual_activa, o_anual_reactiva, o_any_incorporacio ]) except: traceback.print_exc() if self.raven: self.raven.captureException() finally: self.input_q.task_done()