<commit_before>#!/usr/bin/env python2
# -*- coding: utf-8 -*-
from ooop import OOOP
import configdb
from datetime import datetime,timedelta
import sys

from validacio_eines import *
from fix_invoice import *
from utils import *

O = OOOP(**configdb.ooop)

pol_obj = O.GiscedataPolissa
clot_obj = O.GiscedataFacturacioContracte_lot
comp_obj = O.GiscedataLecturesComptador
lect_fact_obj = O.GiscedataLecturesLectura
lect_pool_obj = O.GiscedataLecturesLecturaPool
fact_obj = O.GiscedataFacturacioFactura
cups_obj = O.GiscedataCupsPs
partner_obj = O.ResPartner

contracts_max = 20
invoices_max = 3

dif_maxima = 55
euro_max = 1000
euro_perday_max = euro_max/31
kwh_max = 9000
kwh_perday_max = kwh_max/31

def show_param_conf(contracts_max,invoices_max,
                    dif_maxima,
                    euro_max, euro_perday_max,
                    kwh_max,kwh_perday_max):
     print "\nPARAMENTRES DE CONFIGURACIO DEL SCRIPT"
     print "Contractes maxims a tractar: %d" % contracts_max
     print "Número d'abonadores màxim a fer: %d" % invoices_max
     print "Descartem"
     print " - Import superior a %d ( o superior a %d per dia)" % (euro_max,euro_perday_max)
     print " - Energia factura superior a %d kWh ( o superior a %d per dia)" % (kwh_max,kwh_perday_max)
     print "Detall: Si no tenen consum mensual, farem com si fos %d kWh" % dif_maxima

def get_detained():
    lectures_massa_diferencia = []
    error_al_comptador_inactiu = []

    pol_ids = buscar_errors_lot_ids("La lectura actual és inferior a l'anterior")
    pol_ids = sorted(list(set(pol_ids)))

    #Comptadors visuals
    total = len(pol_ids)
    n = 0

    errors = []
    for pol_id in pol_ids:
        n += 1
        print n
        pol_read = pol_obj.read(pol_id,
            ['name',
             'comptador',
             'comptadors',
             'tarifa',
             'data_ultima_lectura',
             'distribuidora',
             'lot_facturacio',
             'cups',
             'category_id'])

        #eliminar quan es faci agrupació de factures (i fer més de 3 factures abonades)
        if pol_id in [432, 1738, 2450, 3133, 7238, 9801, 14769, 16098, 17835, 22951, 26511, 27204, 29919,45536]:
            #masses factures a abonar, passem
            continue
        try:
            #Comprovar si s'està gestionant
            if es_cefaco(pol_id):
                continue
            #Comprovar comptadors i execpecions
            if not(pol_read['comptadors']):
                continue

            for comp_id in pol_read['comptadors']:
                comp_read = comp_obj.read(comp_id, ['giro','name'])
                #Comprovar si té gir de comptador
                if not(comp_read['giro']):
                    continue

                #Cerca de lectures problematiques
                limit_superior_consum = int(comp_read['giro'])* 9/10
                lect_search_vals = [('comptador','=',comp_id),
                                    ('consum','>',limit_superior_consum),
                                    ('name','>=',pol_read['data_ultima_lectura'])]
                lect_ids = lect_fact_obj.search(lect_search_vals)
                if lect_ids:
                    #Ja tenim identificat el comptador i lectures amb problemes
                    break
<commit_msg>Avoid some pl_ids to be fast<commit_after>#!/usr/bin/env python2
# -*- coding: utf-8 -*-
from ooop import OOOP
import configdb
from datetime import datetime,timedelta
import sys

from validacio_eines import *
from fix_invoice import *
from utils import *

O = OOOP(**configdb.ooop)

pol_obj = O.GiscedataPolissa
clot_obj = O.GiscedataFacturacioContracte_lot
comp_obj = O.GiscedataLecturesComptador
lect_fact_obj = O.GiscedataLecturesLectura
lect_pool_obj = O.GiscedataLecturesLecturaPool
fact_obj = O.GiscedataFacturacioFactura
cups_obj = O.GiscedataCupsPs
partner_obj = O.ResPartner

contracts_max = 20
invoices_max = 3

dif_maxima = 55
euro_max = 1000
euro_perday_max = euro_max/31
kwh_max = 9000
kwh_perday_max = kwh_max/31

def show_param_conf(contracts_max,invoices_max,
                    dif_maxima,
                    euro_max, euro_perday_max,
                    kwh_max,kwh_perday_max):
     print "\nPARAMENTRES DE CONFIGURACIO DEL SCRIPT"
     print "Contractes maxims a tractar: %d" % contracts_max
     print "Número d'abonadores màxim a fer: %d" % invoices_max
     print "Descartem"
     print " - Import superior a %d ( o superior a %d per dia)" % (euro_max,euro_perday_max)
     print " - Energia factura superior a %d kWh ( o superior a %d per dia)" % (kwh_max,kwh_perday_max)
     print "Detall: Si no tenen consum mensual, farem com si fos %d kWh" % dif_maxima

def get_detained():
    lectures_massa_diferencia = []
    error_al_comptador_inactiu = []

    pol_ids = buscar_errors_lot_ids("La lectura actual és inferior a l'anterior")
    pol_ids = sorted(list(set(pol_ids)))

    #Comptadors visuals
    total = len(pol_ids)
    n = 0

    errors = []
    for pol_id in pol_ids:
        n += 1
        print n
        pol_read = pol_obj.read(pol_id,
            ['name',
             'comptador',
             'comptadors',
             'tarifa',
             'data_ultima_lectura',
             'distribuidora',
             'lot_facturacio',
             'cups',
             'category_id'])

        #eliminar quan es faci agrupació de factures (i fer més de 3 factures abonades)
        if pol_id in [432, 1738, 2450, 3133, 7238, 9801, 14769, 16098, 17835, 22951, 26511, 27204, 29919,45536, 11901, 12685, 15760, 25347, 28022, 29571, 3084, 31785, 33030, 37889, 39413, 39579, 40078, 40757, 41848, 43166, 43262, 44982, 45160, 49512]:
            #masses factures a abonar, passem
            continue
        try:
            #Comprovar si s'està gestionant
            if es_cefaco(pol_id):
                continue
            #Comprovar comptadors i execpecions
            if not(pol_read['comptadors']):
                continue

            for comp_id in pol_read['comptadors']:
                comp_read = comp_obj.read(comp_id, ['giro','name'])
                #Comprovar si té gir de comptador
                if not(comp_read['giro']):
                    continue

                #Cerca de lectures problematiques
                limit_superior_consum = int(comp_read['giro'])* 9/10
                lect_search_vals = [('comptador','=',comp_id),
                                    ('consum','>',limit_superior_consum),
                                    ('name','>=',pol_read['data_ultima_lectura'])]
                lect_ids = lect_fact_obj.search(lect_search_vals)
                if lect_ids:
                    #Ja tenim identificat el comptador i lectures amb problemes
                    break

{'fraction_non_alphanumeric': 0.08731808731808732, 'fraction_numerical': 0.04083754083754084, 'mean_word_length': 2.2694174757281553, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3100928', 'n_tokens_mistral': 2536, 'n_tokens_neox': 2268, 'n_words': 541}