Exemplo n.º 1
0
                print "== %s ==" % msg
                for fmt in formato:
                    clave, longitud, tipo = fmt[0:3]
                    if isinstance(longitud, tuple):
                        longitud, dec = longitud
                    else:
                        dec = len(fmt) > 3 and fmt[3] or 2
                    print " * Campo: %-20s Posición: %3d Longitud: %4d Tipo: %s Decimales: %s" % (
                        clave, comienzo, longitud, tipo, dec)
                    comienzo += longitud
            sys.exit(0)

        # obteniendo el TA
        from wsaa import WSAA
        wsaa = WSAA()
        ta = wsaa.Autenticar("wsmtxca", cert, privatekey, wsaa_url)
        if not ta:
            sys.exit("Imposible autenticar con WSAA: %s" % wsaa.Excepcion)
        ws.SetTicketAcceso(ta)

        if '/puntosventa' in sys.argv:
            print "Consultando puntos de venta CAE..."
            print '\n'.join(ws.ConsultarPuntosVentaCAE())
            print "Consultando puntos de venta CAEA..."
            print '\n'.join(ws.ConsultarPuntosVentaCAEA())
            sys.exit(0)

        if '/prueba' in sys.argv:
            # generar el archivo de prueba para la próxima factura
            tipo_cbte = 6
            punto_vta = 4000
Exemplo n.º 2
0
        else:
            conf_dbf = {}
            
        DEBUG = '--debug' in sys.argv
        XML = '--xml' in sys.argv

        if DEBUG:
            print "Usando Configuración:"
            print "WSAA_URL:", WSAA_URL
            print "WSLTV_URL:", WSLTV_URL
            print "CACERT", CACERT
            print "WRAPPER", WRAPPER
        # obteniendo el TA
        from wsaa import WSAA
        wsaa = WSAA()
        ta = wsaa.Autenticar("wsltv", CERT, PRIVATEKEY, wsdl=WSAA_URL, 
                               proxy=PROXY, wrapper=WRAPPER, cacert=CACERT)
        if not ta:
            sys.exit("Imposible autenticar con WSAA: %s" % wsaa.Excepcion)

        # cliente soap del web service
        wsltv = WSLTV()
        wsltv.LanzarExcepciones = True
        wsltv.Conectar(url=WSLTV_URL, proxy=PROXY, wrapper=WRAPPER, cacert=CACERT)
        wsltv.SetTicketAcceso(ta)
        wsltv.Cuit = CUIT

        if '--dummy' in sys.argv:
            ret = wsltv.Dummy()
            print "AppServerStatus", wsltv.AppServerStatus
            print "DbServerStatus", wsltv.DbServerStatus
            print "AuthServerStatus", wsltv.AuthServerStatus
Exemplo n.º 3
0
                        print " * Campo: %-20s Posición: %3d Longitud: %4d Tipo: %s Decimales: %s" % (
                            clave, comienzo, longitud, tipo, dec)
                        comienzo += longitud
                else:
                    from formatos.formato_dbf import definir_campos
                    filename =  "%s.dbf" % msg.lower()[:8]
                    print "==== %s (%s) ====" % (msg, filename)
                    claves, campos = definir_campos(formato)
                    for campo in campos:
                        print " * Campo: %s" % (campo,)
            sys.exit(0)

        # obteniendo el TA
        from wsaa import WSAA
        wsaa = WSAA()
        ta = wsaa.Autenticar("wsfe", cert, privatekey, wsaa_url, proxy=proxy_dict, cacert=CACERT, wrapper=WRAPPER)
        if not ta:
            sys.exit("Imposible autenticar con WSAA: %s" % wsaa.Excepcion)
        ws.SetTicketAcceso(ta)
                    
        if '/prueba' in sys.argv:
            # generar el archivo de prueba para la próxima factura
            tipo_cbte = 1
            punto_vta = 4002
            cbte_nro = ws.CompUltimoAutorizado(tipo_cbte, punto_vta)
            if not cbte_nro: cbte_nro=0
            cbte_nro=int(cbte_nro)
            fecha = datetime.datetime.now().strftime("%Y%m%d")
            concepto = 1
            tipo_doc = 80; nro_doc = "30500010912"
            cbt_desde = cbte_nro + 1; cbt_hasta = cbte_nro + 1
Exemplo n.º 4
0
def main():
    "Funcion principal para utilizar la interfaz por linea de comando"

    if '--formato' in sys.argv:
        print "Formato:"
        for msg, formato in [('Encabezado', ENCABEZADO),
                             ('Observacion', OBSERVACION),
                             ('Evento', EVENTO), ('Error', ERROR), 
                             ]:
            comienzo = 1
            print "=== %s ===" % msg
            print "|| %-20s || %8s || %9s || %-12s || %-20s ||" % (
                "Campo", "Posición", "Longitud", "Tipo", "Descripción")
            for fmt in formato:
                clave, longitud, tipo, desc = fmt
                print "|| %-20s || %8d || %9d || %-12s || %-20s ||" % (
                    clave, comienzo, longitud, tipo, desc.encode("latin1"))
                comienzo += longitud
        sys.exit(0)
    
    # leer configuracion
    global CONFIG_FILE
    if len(sys.argv)>1 and sys.argv[1][0] not in "-/":
        CONFIG_FILE = sys.argv.pop(1)
    config = SafeConfigParser()
    config.read(CONFIG_FILE)
    crt = config.get('WSAA', 'CERT')
    key = config.get('WSAA', 'PRIVATEKEY')
    cuit = config.get('WSCDC', 'CUIT')
    url_wsaa = config.get('WSAA', 'URL') if config.has_option('WSAA','URL') else ""
    url_wscdc = config.get('WSCDC', 'URL') if config.has_option('WSCDC','URL') else ""
    
    # leo configuración de archivos de intercambio
    ENTRADA = config.get('WSCDC','ENTRADA')
    SALIDA = config.get('WSCDC','SALIDA')
    if config.has_section('DBF'):
        conf_dbf = dict(config.items('DBF'))
    else:
        conf_dbf = {}

    # instanciar la interfaz con el webservice
    wscdc = WSCDC()
    ok = wscdc.Conectar("", url_wscdc)
    
    if "--dummy" in sys.argv:
        #print wscdc.client.help("ComprobanteDummy")
        wscdc.Dummy()
        print "AppServerStatus", wscdc.AppServerStatus
        print "DbServerStatus", wscdc.DbServerStatus
        print "AuthServerStatus", wscdc.AuthServerStatus
        sys.exit(0)

    # Gestionar credenciales de acceso con AFIP:
    from wsaa import WSAA
    wsaa = WSAA()
    ta = wsaa.Autenticar("wscdc", crt, key, url_wsaa)
    if not ta:
        sys.exit("Imposible autenticar con WSAA: %s" % wsaa.Excepcion)
    wscdc.SetTicketAcceso(ta)
    wscdc.Cuit = cuit

    if "--constatar" in sys.argv:
        if len(sys.argv) < 8:
            if "--prueba" in sys.argv:
                dic = dict(
                    cbte_modo="CAE",
                    cuit_emisor="20267565393",
                    pto_vta=4002,
                    cbte_tipo=1,
                    cbte_nro=109,
                    cbte_fch="20131227",
                    imp_total="121.0",
                    cod_autorizacion="63523178385550",
                    doc_tipo_receptor=80 ,
                    doc_nro_receptor="30628789661",
                    )
                # escribir archivo de intercambio con datos de prueba:
                escribir_archivo(dic, ENTRADA)
            else:
                # leer archivo de intercambio:
                dic = leer_archivo(ENTRADA)
            # constatar el comprobante
            wscdc.ConstatarComprobante(**dic)
            # actualizar el diccionario con los datos de devueltos por AFIP
            dic.update({'resultado': wscdc.Resultado,
                        'fch_proceso': wscdc.FchProceso,
                        })
            dic['observaciones'] = wscdc.observaciones
            dic['errores'] = wscdc.errores
            escribir_archivo(dic, SALIDA)
        else:
            # usar los datos pasados por linea de comandos:
            wscdc.ConstatarComprobante(*sys.argv[sys.argv.index("--constatar")+1:])
        
        print "Resultado:", wscdc.Resultado
        print "Mensaje de Error:", wscdc.ErrMsg
        print "Observaciones:", wscdc.Obs    

    if "--params" in sys.argv:

        print "=== Modalidad Comprobantes ==="
        print u'\n'.join(wscdc.ConsultarModalidadComprobantes("||"))
        print "=== Tipo Comprobantes ==="
        print u'\n'.join(wscdc.ConsultarTipoComprobantes("||"))
        print "=== Tipo Documentos ==="
        print u'\n'.join(wscdc.ConsultarTipoDocumentos("||"))
        print "=== Tipo Opcionales ==="
        print u'\n'.join(wscdc.ConsultarTipoOpcionales("||"))
        print "Mensaje de Error:", wscdc.ErrMsg
Exemplo n.º 5
0
            conf_dbf = {}

        DEBUG = '--debug' in sys.argv
        XML = '--xml' in sys.argv

        if DEBUG:
            print "Usando Configuración:"
            print "wsaa_url:", wsaa_url
            print "wsremcarne_url:", wsremcarne_url

        # obteniendo el TA
        from wsaa import WSAA
        wsaa = WSAA()
        ta = wsaa.Autenticar("wsremcarne",
                             CERT,
                             PRIVATEKEY,
                             wsaa_url,
                             debug=DEBUG)
        if not ta:
            sys.exit("Imposible autenticar con WSAA: %s" % wsaa.Excepcion)

        # cliente soap del web service
        wsremcarne = WSRemCarne()
        wsremcarne.Conectar(wsdl=wsremcarne_url)
        wsremcarne.SetTicketAcceso(ta)
        wsremcarne.Cuit = CUIT
        ok = None

        if '--dummy' in sys.argv:
            ret = wsremcarne.Dummy()
            print "AppServerStatus", wsremcarne.AppServerStatus
Exemplo n.º 6
0
            conf_dbf = {}

        DEBUG = '--debug' in sys.argv
        XML = '--xml' in sys.argv

        if DEBUG:
            print "Usando Configuración:"
            print "wsaa_url:", wsaa_url
            print "wsfecred_url:", wsfecred_url

        # obteniendo el TA
        from wsaa import WSAA
        wsaa = WSAA()
        ta = wsaa.Autenticar("wsfecred",
                             CERT,
                             PRIVATEKEY,
                             wsaa_url,
                             debug=DEBUG)
        if not ta:
            sys.exit("Imposible autenticar con WSAA: %s" % wsaa.Excepcion)

        # cliente soap del web service
        wsfecred = WSFECred()
        wsfecred.Conectar(wsdl=wsfecred_url)
        wsfecred.SetTicketAcceso(ta)
        wsfecred.Cuit = CUIT
        ok = None

        if '--dummy' in sys.argv:
            ret = wsfecred.Dummy()
            print "AppServerStatus", wsfecred.AppServerStatus
Exemplo n.º 7
0
            print "Formato:"
            for msg, formato in [('Encabezado', ENCABEZADO), ('Detalle', DETALLE), ('Permiso', PERMISO), ('Comprobante Asociado', CMP_ASOC)]:
                comienzo = 1
                print "== %s ==" % msg
                for fmt in formato:
                    clave, longitud, tipo = fmt[0:3]
                    dec = len(fmt)>3 and fmt[3] or (tipo=='I' and '2' or '')
                    print " * Campo: %-20s Posición: %3d Longitud: %4d Tipo: %s Decimales: %s" % (
                        clave, comienzo, longitud, tipo, dec)
                    comienzo += longitud
            sys.exit(0)

        # obteniendo el TA
        from wsaa import WSAA
        wsaa = WSAA()
        ta = wsaa.Autenticar("wsfex", cert, privatekey, wsaa_url)
        if not ta:
            sys.exit("Imposible autenticar con WSAA: %s" % wsaa.Excepcion)
        ws.SetTicketAcceso(ta)
        
        if '/prueba' in sys.argv:
            # generar el archivo de prueba para la próxima factura
            f_entrada = open(entrada,"w")

            tipo_cbte = 19 # FC Expo (ver tabla de parámetros)
            punto_vta = 7
            # Obtengo el último número de comprobante y le agrego 1
            cbte_nro = int(ws.GetLastCMP(tipo_cbte, punto_vta)) + 1
            fecha_cbte = datetime.datetime.now().strftime("%Y%m%d")
            tipo_expo = 1 # tipo de exportación (ver tabla de parámetros)
            permiso_existente = "S"