@@ -2369,26 +2369,42 @@ def get_fake_pX_lectura(self, tipus, periode, base_info, lectura_desde=0, lectur
23692369
23702370 return new_integrador
23712371
2372- def get_comptador_amb_lectures (self , tipus = None ):
2372+ def get_comptador_amb_lectures (self , comptador = None , tipus = None ):
23732373 """
2374- Retorna el primer comptador que tingui les lectures del tipus inidcat
2375- Si cap comptador té lectures del primer tipus, es repeteix el procés amb el seguent tipus
2374+ Retorna el primer comptador que tingui lectures disponibles segons
2375+ l’ordre de prioritat dels tipus indicats.
2376+
2377+ Primer es comprova el comptador passat com a paràmetre. Si aquest no
2378+ té lectures, es busquen lectures entre els comptadors de les mesures
2379+ associades.
2380+
2381+ Si no es troba cap comptador amb lectures, es retorna None.
2382+
2383+ :param comptador: Comptador a comprovar primer (opcional)
2384+ :param tipus: Tipus de lectura per ordre de prioritat.
2385+ Per defecte ['S', 'A']
2386+ :return: Comptador amb lectures o None
23762387 """
23772388 if tipus is None :
23782389 tipus = ['S' , 'A' ]
2379- comptador_amb_lectures = None
2390+
2391+ # Comprova primer el comptador passat
2392+ if comptador :
2393+ for t in tipus :
2394+ if comptador .get_lectures (tipus = t ):
2395+ return comptador
2396+
2397+ # Comprova la resta de comptadors
23802398 for medida in self .medidas :
23812399 for t in tipus :
23822400 for c in medida .modelos_aparatos :
2401+ # Evita tornar a comprovar el comptador passat
2402+ if comptador and c is comptador :
2403+ continue
23832404 if c .get_lectures (tipus = t ):
2384- comptador_amb_lectures = c
2385- break
2386- if comptador_amb_lectures :
2387- break
2388- if comptador_amb_lectures :
2389- break
2405+ return c
23902406
2391- return comptador_amb_lectures
2407+ return None
23922408
23932409 def get_fake_AS_lectures (self , period_start = 1 , comptador_base = None ):
23942410 res = []
@@ -2397,7 +2413,7 @@ def get_fake_AS_lectures(self, period_start=1, comptador_base=None):
23972413 te_autoconsum = (self .autoconsumo and self .autoconsumo .energia_excedentaria ) or conceptes_repercutibles_excedents
23982414 if not te_autoconsum :
23992415 return res
2400- comptador_amb_lectures = self .get_comptador_amb_lectures ()
2416+ comptador_amb_lectures = self .get_comptador_amb_lectures (comptador = comptador_base )
24012417 if comptador_amb_lectures :
24022418 base_info = comptador_amb_lectures .get_lectures_activa_entrant ()[0 ]
24032419 num_periodes = self .get_num_periodes_from_tarifa_and_tipus (tipus = 'S' )
0 commit comments