def consumo_folios(vals):
    key = key_check(vals)
    if check_en_envio(key):
        return 'CF Ya se encuentra en envío'
    resultado = ''
    try:
        envio = Envio(vals)
        resultado = envio.do_consumo_folios_send()
    except Exception as e:
        _logger.warning("Error en envío CF %s" % str(e))
    del envios[key]
    return resultado
Esempio n. 2
0
def consumo_folios_resumen(data, folios=False):
    test = data['test'] if 'test' in data else False
    emisor = Emisor(data["Emisor"])
    firma = Firma(data["firma_electronica"])
    fechas = {}
    if folios:
        i = 0
        for row in folios:
            if i > 0:
                if row[0] not in fechas:
                    fechas[row[0]] = ConsumoFolios(emisor, firma)
                if 'Correlativo' in data:
                    fechas[row[0]].set_correlativo(data['Correlativo'])
                if 'SecEnvio' in data:
                    fechas[row[0]].set_sec_envio(data['SecEnvio'])
                docu = Documento(
                    {
                        'TasaImp': data["Emisor"]['ValorIva'],
                        'Fecha': row[0],
                        'Folio': int(row[2]),
                        'MntNeto': int(row[3]),
                        'MntIVA': int(row[4]),
                        'MntExento': int(row[5]),
                        'MntTotal': int(row[6]),
                        'Anulado': row[7],
                    },
                    int(row[1]),
                    resumen=True)
                fechas[row[0]].set_docu(docu)
            else:
                cabezera = row
            i += 1
    elif 'Documentos' in data:
        for r in data['Documentos']:
            for d in r['documentos']:
                fecha = d['Encabezado']['IdDoc']['Fecha']
                if fecha not in fechas:
                    fechas[fecha] = ConsumoFolios(emisor, firma)
                if 'Correlativo' in data:
                    fechas[fecha].set_correlativo(data['Correlativo'])
                if 'SecEnvio' in data:
                    fechas[fecha].set_sec_envio(data['SecEnvio'])
                docu = Documento(d, r['TipoDTE'])
                fechas[fecha].set_docu(docu)
    else:
        cf = ConsumoFolios(emisor, firma)
        cf.FchInicio = data['FechaInicio']
        cf.FchFinal = data['FechaFinal']
        if 'Correlativo' in data:
            cf.set_correlativo(data['Correlativo'])
        if 'SecEnvio' in data:
            cf.set_sec_envio(data['SecEnvio'])
        envio = Envio(emisor, firma, test=test)
        envio.setLibro(cf)
        res = envio.do_consumo_folios_send()
        res.update({
            'correlativo': cf.Correlativo,
            'fecha_inicio': cf.FchInicio,
            'fecha_final': cf.FchFinal,
            'total_neto': cf.total_neto,
            'total_exento': cf.total_exento,
            'total_iva': cf.total_iva,
            'total': cf.total,
            'total_boletas': cf.total_boletas,
        })
        return [res]
    cfs = []
    respuestas = []
    envio = Envio(emisor, firma, test=test)
    for key, cf in fechas.items():
        cf.validar()
        cfs.append(cf.sii_xml_request)
        envio.setLibro(cf)
        res = envio.do_consumo_folios_send()
        res.update({
            'correlativo': cf.Correlativo,
            'fecha_inicio': cf.FchInicio,
            'fecha_final': cf.FchFinal,
            'total_neto': cf.total_neto,
            'total_exento': cf.total_exento,
            'total_iva': cf.total_iva,
            'total': cf.total,
            'total_boletas': cf.total_boletas,
            'rangos': cf.get_rangos(),
        })
        respuestas.append(res)
    return respuestas
Esempio n. 3
0
def consumo_folios(dicDocs):
    envio = Envio(dicDocs)
    return envio.do_consumo_folios_send()