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
Exemple #5
0
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
Exemple #6
0
def timbrar_y_enviar_cesion(vals):
    envio = Envio(vals)
    respuesta = envio.do_envio_cesion()
    return respuesta
Exemple #7
0
def timbrar_y_enviar(vals):
    envio = Envio(vals)
    respuesta = envio.do_dte_send()
    return respuesta
Exemple #8
0
def xml_envio(vals):
    envio = Envio(vals)
    envio.test = True
    respuesta = envio.do_dte_send()
    return respuesta
Exemple #9
0
def validacion_comercial(vals):
    vals.update({'test': True})
    resp = Envio(vals)
    respuesta = resp.do_validar_com()
    return respuesta
Exemple #10
0
def recepcion_mercaderias(vals):
    vals.update({'test': True})
    resp = Envio(vals)
    respuesta = resp.do_recep_merc()
    return respuesta
Exemple #11
0
def leer_xml(vals):
    vals.update({'test': True})
    resp = Envio(vals)
    respuestas = resp.do_receipt_deliver()
    return respuestas
Exemple #12
0
def libro(dicDocs=None):
    envio = Envio(dicDocs)
    return envio.do_libro_send()
Exemple #13
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
Exemple #14
0
def consumo_folios(dicDocs):
    envio = Envio(dicDocs)
    return envio.do_consumo_folios_send()