@@ -1711,7 +1711,8 @@ def get_fake_lectures(self, lectures, tipus=None):
17111711 and generacio_facturada and len (generacio_facturada ) > 1 :
17121712 # Si nomes ens envien el P0 de excedents pero ens cobren varis periodes
17131713 # creem una lectura e P2 AS ficticies a 0 (puta FENOSA)
1714- lectures .extend (self .factura .get_fake_AS_p2_lectures (comptador_base = self ))
1714+ # Setejem el period_start a 2 perque com a lectura de P1 agafem el totalitzador
1715+ lectures .extend (self .factura .get_fake_AS_lectures (period_start = 2 , comptador_base = self ))
17151716
17161717 if (
17171718 (not tipus or "A" in tipus )
@@ -1733,16 +1734,10 @@ def get_fake_lectures(self, lectures, tipus=None):
17331734
17341735 def get_fake_pX_lectures (self , lectura_ae_totalitzador , tipus = None ):
17351736 # Si te un totalitzador amb el codi de les noves tarifes, creem les lectures fake
1736- tarifa_atr = self .factura .datos_factura .tarifa_atr_fact
1737- nperiodes_td = PERIODES_PER_TARIFA .get (tarifa_atr , {}).get (tipus , None )
17381737 # Obtenim els periodes de les lectures segons la tarifa
1738+ lectures_per_periode = self .factura .get_periodes_from_tarifa_and_tipus (tipus = tipus )
17391739 res = []
1740- if nperiodes_td :
1741- lectures_per_periode = {}
1742- for periode in range (1 , nperiodes_td + 1 ):
1743- pname = "P" + str (periode )
1744- lectures_per_periode [pname ] = []
1745-
1740+ if lectures_per_periode :
17461741 # Agafem el totalitzador com a lectura "base"
17471742 base_lectura = lectura_ae_totalitzador
17481743 # Marquem el totalitzador com a lectura de P1
@@ -2339,44 +2334,6 @@ def has_AS_lectures_only_p0(self):
23392334 pass
23402335 return has_p0
23412336
2342- def get_fake_AS_lectures (self , comptador_base = None ):
2343- res = []
2344- comptador_amb_lectures = None
2345- for medida in self .medidas :
2346- for c in medida .modelos_aparatos :
2347- if c .get_lectures_activa_entrant ():
2348- comptador_amb_lectures = c
2349- break
2350- if comptador_amb_lectures :
2351- te_autoconsum = (self .autoconsumo and self .autoconsumo .energia_excedentaria ) or ([x for x in (self .conceptos_repercutibles or []) if '7' == x .concepto_repercutible [0 ]])
2352- if not te_autoconsum :
2353- return res
2354- base_info = comptador_amb_lectures .get_lectures_activa_entrant ()[0 ]
2355- i = 0
2356- for consum in self .get_consum_facturat (tipus = 'S' ):
2357- i += 1
2358- l1 = Lectura (None )
2359- l1 .fecha = base_info .lectura_desde .fecha
2360- l1 .lectura = 0
2361- l1 .procedencia = base_info .lectura_desde .procedencia
2362- l2 = Lectura (None )
2363- l2 .fecha = base_info .lectura_hasta .fecha
2364- l2 .lectura = 0
2365- l2 .procedencia = base_info .lectura_hasta .procedencia
2366- new_integrador = Integrador (base_info .integrador )
2367- if comptador_base :
2368- new_integrador .comptador = comptador_base
2369- new_integrador .comptador = base_info .comptador
2370- new_integrador .magnitud = "AS"
2371- new_integrador .numero_ruedas_enteras = base_info .numero_ruedas_enteras
2372- new_integrador .codigo_periodo = base_info .codigo_periodo [0 ] + str (i )
2373- if not new_integrador .periode :
2374- new_integrador .codigo_periodo = base_info .codigo_periodo
2375- new_integrador .lectura_desde = l1
2376- new_integrador .lectura_hasta = l2
2377- res .append (new_integrador )
2378- return res
2379-
23802337 def get_fake_pX_lectura (self , tipus , periode , base_info , lectura_desde = 0 , lectura_hasta = 0 , comptador_base = None ):
23812338 l1 = Lectura (None )
23822339 l1 .fecha = base_info .lectura_desde .fecha
@@ -2412,7 +2369,7 @@ def get_fake_pX_lectura(self, tipus, periode, base_info, lectura_desde=0, lectur
24122369
24132370 return new_integrador
24142371
2415- def get_fake_AS_p2_lectures (self , comptador_base = None ):
2372+ def get_fake_AS_lectures (self , period_start = 1 , comptador_base = None ):
24162373 res = []
24172374 comptador_amb_lectures = None
24182375 for medida in self .medidas :
@@ -2425,11 +2382,10 @@ def get_fake_AS_p2_lectures(self, comptador_base=None):
24252382 if not te_autoconsum :
24262383 return res
24272384 base_info = comptador_amb_lectures .get_lectures_activa_entrant ()[0 ]
2428- i = 0
2429- for consum in self .get_consum_facturat (tipus = 'S' ):
2430- i += 1
2431- if i <= 1 :
2432- continue
2385+ num_periodes = self .factura .get_num_periodes_from_tarifa_and_tipus (tipus = 'S' )
2386+ # Depending on period_start, P1 is skipped. If we have totalizer, it will be skipped, otherwise we need to
2387+ # create readings for each tariff period
2388+ for i in range (period_start , num_periodes + 1 ): # num_periodes not included, so we add 1
24332389 l1 = Lectura (None )
24342390 l1 .fecha = base_info .lectura_desde .fecha
24352391 l1 .lectura = 0
@@ -2723,6 +2679,22 @@ def get_maximetres_consumidor(self):
27232679 num_periode += 1
27242680 return data
27252681
2682+ def get_num_periodes_from_tarifa_and_tipus (self , tipus = 'A' ):
2683+ tarifa_atr = self .datos_factura .tarifa_atr_fact
2684+ nperiodes_td = PERIODES_PER_TARIFA .get (tarifa_atr , {}).get (tipus , None )
2685+ return nperiodes_td
2686+
2687+ def get_periodes_from_tarifa_and_tipus (self , tipus = 'A' ):
2688+ lectures_per_periode = {}
2689+ nperiodes_td = self .get_num_periodes_from_tarifa_and_tipus (tipus = tipus )
2690+ # Obtenim els periodes de les lectures segons la tarifa
2691+ if nperiodes_td :
2692+ for periode in range (1 , nperiodes_td + 1 ):
2693+ pname = "P" + str (periode )
2694+ lectures_per_periode [pname ] = []
2695+
2696+ return lectures_per_periode
2697+
27262698
27272699class ConceptoRepercutible (object ):
27282700
0 commit comments