<commit_before>#!/usr/bin/env python2
# -*- coding: utf-8 -*-

# To do: problemes ne mostrar missatges que em reotrna el ERP
# Per temes de enconding

from ooop import OOOP
import configdb
import time
from consolemsg import fail

O = OOOP(**configdb.ooop)

lin_obj = O.GiscedataFacturacioImportacioLinia

def parseargs():
    import argparse
    parser = argparse.ArgumentParser(description='Reimportar els F1')
    parser.add_argument('-c', '--cups',
        help="Escull per cups",
        )
    parser.add_argument('-i', '--info',
        help="Escull F1 per missatge d'error",
        )
    parser.add_argument('-d', '--date',
        help="Escull data des de que comencem a fer la cerca",
        )
    return parser.parse_args()

def output(total,lin_factura_generada,lin_mateix_missatge,
            lin_diferent_missatge,lin_no_fixed):
    print "\nNO importades: no s'ha arreglat l'error. %d" % len(lin_no_fixed)
    print "Importacions erronies inicials: %d" % total
    print "Reimportacions que han generat factura:  %d" % len(lin_factura_generada)
    print "Importacions encara erronies: %d" % (len(lin_diferent_missatge)+len(lin_mateix_missatge))
    print "  - Amb el mateix missatge: %d" % len(lin_mateix_missatge)
    print "  - Amb un missatge diferent: %d" % len(lin_diferent_missatge)

def reimportar_ok(linia_id):
    import time
    lin_obj = O.GiscedataFacturacioImportacioLinia

    info_inicial = lin_obj.read([linia_id],['info'])[0]['info']
    lin_obj.process_line(linia_id)
    # TODO treure a parametres de configuracio
    time.sleep(15)
    lin_read = lin_obj.read([linia_id],['info','conte_factures'])
    info_nova = lin_read[0]['info']
    conte_factures = lin_read[0]['conte_factures']
    value = {'mateix_missatge':False,'ok':False}
    if lin_read[0]['conte_factures']:
        value['ok'] = True
    if info_inicial == info_nova:
        #print "informacio igual: %s" % info_inicial
        print "Mateix missatge"
        value['mateix_missatge']=True
    else:
        #print "Missatge Inicial: %s \n Missatge Final: %s" % (info_inicial,info_nova)
        print "S'ha actualitzat el missatge"
    return value

def fix_metter_contract(pol_id):
    pol_obj = O.GiscedataPolissa
    comp_obj = O.GiscedataLecturesComptador

    pol_read = pol_obj.read(pol_id,
            ['name', 'comptadors'])
    if not(pol_read['comptadors']):
        print "No te comptadors"
        return False
    comp_id = pol_read['comptadors'][0]
    comp_obj.write(comp_id,
                   {'data_baixa':False,
                    'active':True})
    return True

def fix_mod(info,pol_id):
    mod_obj = O.GiscedataPolissaModcontractual
    pol_obj = O.GiscedataPolissa

    from datetime import datetime, timedelta

    # TODO millorar com extreure informacio
    data_info = info[-63:-53]

    mod_contractuals = pol_obj.read(pol_id,
                    ['modcontractuals_ids'])['modcontractuals_ids']
    if len(mod_contractuals) <= 1:
        print "La polissa no te cap modificacio contractual"
        return False

    mod_actual = mod_obj.get(mod_contractuals[0])
    dies_a_moure = 1
    data_inici_dt = datetime.strptime(mod_actual.data_inici, '%Y-%m-%d')
    if data_info != mod_actual.data_inici:
        data_info_dt = datetime.strptime(data_info, '%Y-%m-%d')
        dies_a_moure += (data_info_dt - data_inici_dt).days

    if abs(dies_a_moure) > 10:
        print "Masses dies a moure. Millor fer manualment"
        return False

    moure_dies_modificacio(dies_a_moure,mod_contractuals[0],mod_contractuals[1])
    return True

def contract_from_lin(lin_id):
    pol_obj = O.GiscedataPolissa
    lin_obj = O.GiscedataFacturacioImportacioLinia

    lin_read = lin_obj.read(lin_id,['cups_id'])
    if not(lin_read['cups_id']):
        return False
    cups_id = lin_read['cups_id'][0]<commit_msg>Prova importacions F1<commit_after>#!/usr/bin/env python2
# -*- coding: utf-8 -*-

# To do: problemes ne mostrar missatges que em reotrna el ERP
# Per temes de enconding

from ooop import OOOP
import configdb
import time
from consolemsg import fail

O = OOOP(**configdb.ooop)

lin_obj = O.GiscedataFacturacioImportacioLinia

def parseargs():
    import argparse
    parser = argparse.ArgumentParser(description='Reimportar els F1')
    parser.add_argument('-c', '--cups',
        help="Escull per cups",
        )
    parser.add_argument('-i', '--info',
        help="Escull F1 per missatge d'error",
        )
    parser.add_argument('-d', '--date',
        help="Escull data des de que comencem a fer la cerca",
        )
    return parser.parse_args()

def output(total,lin_factura_generada,lin_mateix_missatge,
            lin_diferent_missatge,lin_no_fixed):
    print "\nNO importades: no s'ha arreglat l'error. %d" % len(lin_no_fixed)
    print "Importacions erronies inicials: %d" % total
    print "Reimportacions que han generat factura:  %d" % len(lin_factura_generada)
    print "Importacions encara erronies: %d" % (len(lin_diferent_missatge)+len(lin_mateix_missatge))
    print "  - Amb el mateix missatge: %d" % len(lin_mateix_missatge)
    print "  - Amb un missatge diferent: %d" % len(lin_diferent_missatge)

def reimportar_ok(linia_id):
    import time
    lin_obj = O.GiscedataFacturacioImportacioLinia

    info_inicial = lin_obj.read([linia_id],['info'])[0]['info']
    lin_obj.process_line(linia_id)
    # TODO treure a parametres de configuracio
    time.sleep(15)
    lin_read = lin_obj.read([linia_id],['info','conte_factures'])
    info_nova = lin_read[0]['info']
    conte_factures = lin_read[0]['conte_factures']
    value = {'mateix_missatge':False,'ok':False}
    if lin_read[0]['conte_factures']:
        value['ok'] = True
    if info_inicial == info_nova:
        #print "informacio igual: %s" % info_inicial
        print "Mateix missatge"
        value['mateix_missatge']=True
    else:
        #print "Missatge Inicial: %s \n Missatge Final: %s" % (info_inicial,info_nova)
        print "S'ha actualitzat el missatge"
    return value

def fix_metter_contract(pol_id):
    pol_obj = O.GiscedataPolissa
    comp_obj = O.GiscedataLecturesComptador

    pol_read = pol_obj.read(pol_id,
            ['name', 'comptadors'])
    if not(pol_read['comptadors']):
        print "No te comptadors"
        return False
    comp_id = pol_read['comptadors'][0]
    comp_obj.write(comp_id,
                   {'data_baixa':False,
                    'active':True})
    return True

def fix_mod(info,pol_id):
    mod_obj = O.GiscedataPolissaModcontractual
    pol_obj = O.GiscedataPolissa

    from datetime import datetime, timedelta

    # TODO millorar com extreure informacio
    data_info = info[-63:-53]

    mod_contractuals = pol_obj.read(pol_id,
                    ['modcontractuals_ids'])['modcontractuals_ids']
    if len(mod_contractuals) <= 1:
        print "La polissa no te cap modificacio contractual"
        return False

    mod_actual = mod_obj.get(mod_contractuals[0])
    dies_a_moure = 1
    data_inici_dt = datetime.strptime(mod_actual.data_inici, '%Y-%m-%d')
    #  La tarifa (2.0A) de la pólissa 49549 no és la mateixa que la del
    # F1 (2.0DHA) el dia 2017-02-24. Comprovi que la tarifa de la
    # pólissa és la correcte
    if data_info != mod_actual.data_inici:
        data_info_dt = datetime.strptime(data_info, '%Y-%m-%d')
        # He tret el += de dies a moure. Valorar que es millor
        dies_a_moure = (data_info_dt - data_inici_dt).days

    if abs(dies_a_moure) > 10:
        print "Masses dies a moure. Millor fer manualment"
        return False

    moure_dies_modificacio(dies_a_moure,mod_contractuals[0],mod_contractuals[1])
    return True

def contract_from_lin(lin_id):
    pol_obj = O.GiscedataPolissa
    lin_obj = O.GiscedataFacturacioImportacioLinia

    lin_read = lin_obj.read(lin_id,['cups_id'])
    if not(lin_read['cups_id']):
        return False
    cups_id = lin_read['cups_id'][0]
{'fraction_non_alphanumeric': 0.11071744906997343, 'fraction_numerical': 0.008224724788055169, 'mean_word_length': 3.3596249310535025, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3418272', 'n_tokens_mistral': 2935, 'n_tokens_neox': 2889, 'n_words': 595}