def libro(vals=None): key = key_check(vals) if check_en_envio(key): return "Libro ya en envío" resultado = '' try: envio = Envio(vals) resultado = envio.do_libro_send() except Exception as e: _logger.warning("Error en envío libro %s" % str(e)) del envios[key] return resultado
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 enviar_xml(vals): key = key_check(vals) if check_en_envio(key): return 'DTE Ya se encuentra en envío' respuesta = '' try: envio = Envio(vals) respuesta = envio.enviar_xml() except Exception as e: _logger.warning("Error en envíar_xml %s" % str(e)) del envios[key] return respuesta
def timbrar_y_enviar_cesion(vals): key = key_check(vals) if check_en_envio(key): return 'Cesión Ya se encuentra en envío' respuesta = '' try: envio = Envio(vals) respuesta = envio.do_envio_cesion() except Exception as e: _logger.warning("Error en timbrar_y_enviar_cesion %s" % str(e)) del envios[key] return respuesta
def libro_resumen(dicDocs, csv=False): firma = Firma(dicDocs["firma_electronica"]) emisor = Emisor(dicDocs["Emisor"]) libro = Libro(emisor, firma) libro.set_periodo_tributario(dicDocs["periodo_tributario"]) libro.set_tipo_operacion(dicDocs["tipo_operacion"]) libro.set_tipo_libro(dicDocs["tipo_libro"]) test = dicDocs['test'] if 'test' in dicDocs else False envio = Envio(emisor, firma, test=test) respuesta = [] if csv: libro = _libro_csv(libro, csv) else: for dteDoc in dicDocs["Documentos"]: for docData in dteDoc["documentos"]: docu = Documento(docData, dteDoc["TipoDTE"]) libro.set_docu(docu) libro.validar() envio.setLibro(libro) respuesta = envio.do_libro_send() return respuesta
def timbrar_y_enviar_cesion(vals): envio = Envio(vals) respuesta = envio.do_envio_cesion() return respuesta
def timbrar_y_enviar(vals): envio = Envio(vals) respuesta = envio.do_dte_send() return respuesta
def xml_envio(vals): envio = Envio(vals) envio.test = True respuesta = envio.do_dte_send() return respuesta
def validacion_comercial(vals): vals.update({'test': True}) resp = Envio(vals) respuesta = resp.do_validar_com() return respuesta
def recepcion_mercaderias(vals): vals.update({'test': True}) resp = Envio(vals) respuesta = resp.do_recep_merc() return respuesta
def leer_xml(vals): vals.update({'test': True}) resp = Envio(vals) respuestas = resp.do_receipt_deliver() return respuestas
def libro(dicDocs=None): envio = Envio(dicDocs) return envio.do_libro_send()
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()