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
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
def consumo_folios(dicDocs): envio = Envio(dicDocs) return envio.do_consumo_folios_send()