Respuestas de foro creadas

Viendo 15 entradas - de la 1 a la 15 (de un total de 22)
  • Autor
    Entradas
  • #62475
    Diego Rucci
    Participante

    Hola Federico.
    No tengo ninguna modificación ni creo haber instalado nada extraño (excepto que hice un intento de incorporar Libertya_BI).
    Voy guardando los archivos de instalación y vengo actualizando desde la versión 17.05

    Esta instancia de Libertya la uso para mi, muy pocos módulos. Soy monotributista de servicios y cargo las facturas manualmente (ni siquiera uso FE desde libertya) ya que cuando dejé el talonario manual comencé a generarlas directamente desde AFIP (al fin son 15 facturas como mucho por mes y no me molesta cargarlas manualmente).
    Con Libertya llevo cuentas corrientes, genero los recibos de clientes, etc … muy básico; al brindar servicios no tengo productos ni llevo stock.

    Voy a estar atento.
    Muchas gracias

    #62388
    Diego Rucci
    Participante

    Olvidé mencionar.
    Tengo la posibilidad de hacer un rollback del snapshot y volver al estado anterior (justo antes actualizar)
    por si hay algo mas que deba comentar en el preinstall o el postinstall.xml

    #62386
    Diego Rucci
    Participante

    Hola, lo instaló pero con algunos errores.
    Lo que pude ver es que son errores de INSERTS por clave duplicada

    Este es uno de los 20 errores.
    ERROR: Error en ejecución de sentencia SQL. ERROR: llave duplicada viola restricción de unicidad «externalserviceattributes_key»
    Detail: Ya existe la llave (c_externalserviceattributes_id)=(1000014). – SQL: INSERT INTO C_ExternalServiceAttributes (AD_Client_ID,AD_ComponentObjectUID,AD_ComponentVersion_ID,AD_Org_ID,C_Externalserviceattributes_ID,C_ExternalService_ID,Created,CreatedBy,IsActive,Name,Updated,UpdatedBy,Value ) VALUES (1010016,’CORE-C_ExternalServiceAttributes-1010001′,1010188,1010053,1000014,1000058,NOW(),0,’Y’,’100′,NOW(),0,’Elementos por Página’ );

    adjunto el enlace al log en GoogleDrive por las dudas.
    No se si será seguro continuar usando Libertya en este estado.

    Muchísimas Gracias.

    #62353
    Diego Rucci
    Participante

    Hola Federico, muchas gracias.
    Debo tener un problema mucho mas grave, porque al correr la sentencia SQL que me pasaste me devuelve este error:

    ERROR: no existe la columna pd.component_first_changelog_uid
    LÍNEA 1: …g, pd.component_last_changelog as last_changelog, pd.compone…
    ^

    ********** Error **********

    ERROR: no existe la columna pd.component_first_changelog_uid
    SQL state: 42703
    Character: 252

    ¿Me convendrá hacer respaldo de la base de datos, instalar de cero la versión 19.06 y restaurar la base?

    #62306
    Diego Rucci
    Participante

    Agrego info, este es el error completo:

    === Instalando Componente y Version. Registrando Plugin === === Ejecutando sentencias de preinstalacion === ERROR: Error en ejecución de sentencia SQL. ERROR: no existe la vista «ad_plugin_detail_v» – SQL: drop view ad_changelog_dev; CREATE OR REPLACE VIEW ad_changelog_dev AS SELECT g.ad_changelog_id, g.changeloggroup_id, g.changeloguid, g.changeloggroupuid, c.name AS client, o.name AS organization, g.isactive, g.created, uc.name AS createdbyuser, g.updated, uu.name AS updatedbyuser, operationtype, t.tablename, l.columnname, g.record_id, g.ad_componentobjectuid, g.oldvalue, g.newvalue, g.binaryvalue, p.prefix AS componentprefix, p.publicname AS componentname, v.version AS componentversion, g.ad_componentversion_id, g.createdby, g.updatedby, g.ad_session_id, g.ad_table_id, g.ad_column_id, g.iscustomization, g.redo, g.undo, g.trxname FROM ad_changelog g INNER JOIN ad_client c ON (g.ad_client_id = c.ad_client_id) INNER JOIN ad_org o ON (g.ad_org_id = o.ad_org_id) INNER JOIN ad_user uc ON (g.createdby = uc.ad_user_id) INNER JOIN ad_user uu ON (g.updatedby = uu.ad_user_id) INNER JOIN ad_table t ON (g.ad_table_id = t.ad_table_id) INNER JOIN ad_column l ON (g.ad_column_id = l.ad_column_id) INNER JOIN ad_componentversion v ON (g.ad_componentversion_id = v.ad_componentversion_id) INNER JOIN ad_component p ON (v.ad_component_id = p.ad_component_id) ORDER BY created DESC, changeloggroup_id DESC, ad_changelog_id DESC; drop view ad_plugin_v; CREATE OR REPLACE VIEW ad_plugin_v AS SELECT cv.name, cv.ad_componentobjectuid, cv.version, p.created, p.updated, p.createdby, p.updatedby, p.component_export_date as export_date, p.component_last_changelog as last_changelog, p.component_first_changelog_uid as first_changelog_uid, p.component_last_changelog_uid as last_changelog_uid, p.component_first_changelog_group_uid as first_changelog_group_uid, p.component_last_changelog_group_uid as last_changelog_group_uid FROM ad_plugin p LEFT JOIN ad_componentversion cv ON p.ad_componentversion_id = cv.ad_componentversion_id ORDER BY p.created; drop view ad_plugin_detail_v; create view ad_plugin_detail_v as select cv.name, cv.ad_componentobjectuid, pd.version, pd.created, pd.createdby, pd.component_export_date as export_date, pd.component_first_changelog as first_changelog, pd.component_last_changelog as last_changelog, pd.component_first_changelog_uid as first_changelog_uid, pd.component_last_changelog_uid as last_changelog_uid, pd.component_first_changelog_group_uid as first_changelog_group_uid, pd.component_last_changelog_group_uid as last_changelog_group_uid, pd.install_details from ad_plugin p inner join ad_plugin_detail pd on p.ad_plugin_id = pd.ad_plugin_id left join ad_componentversion cv on p.ad_componentversion_id = cv.ad_componentversion_id order by pd.created asc; Error al realizar la instalación: ERROR: Error en ejecución de sentencia SQL. ERROR: no existe la vista «ad_plugin_detail_v» – SQL: drop view ad_changelog_dev; CREATE OR REPLACE VIEW ad_changelog_dev AS SELECT g.ad_changelog_id, g.changeloggroup_id, g.changeloguid, g.changeloggroupuid, c.name AS client, o.name AS organization, g.isactive, g.created, uc.name AS createdbyuser, g.updated, uu.name AS updatedbyuser, operationtype, t.tablename, l.columnname, g.record_id, g.ad_componentobjectuid, g.oldvalue, g.newvalue, g.binaryvalue, p.prefix AS componentprefix, p.publicname AS componentname, v.version AS componentversion, g.ad_componentversion_id, g.createdby, g.updatedby, g.ad_session_id, g.ad_table_id, g.ad_column_id, g.iscustomization, g.redo, g.undo, g.trxname FROM ad_changelog g INNER JOIN ad_client c ON (g.ad_client_id = c.ad_client_id) INNER JOIN ad_org o ON (g.ad_org_id = o.ad_org_id) INNER JOIN ad_user uc ON (g.createdby = uc.ad_user_id) INNER JOIN ad_user uu ON (g.updatedby = uu.ad_user_id) INNER JOIN ad_table t ON (g.ad_table_id = t.ad_table_id) INNER JOIN ad_column l ON (g.ad_column_id = l.ad_column_id) INNER JOIN ad_componentversion v ON (g.ad_componentversion_id = v.ad_componentversion_id) INNER JOIN ad_component p ON (v.ad_component_id = p.ad_component_id) ORDER BY created DESC, changeloggroup_id DESC, ad_changelog_id DESC; drop view ad_plugin_v; CREATE OR REPLACE VIEW ad_plugin_v AS SELECT cv.name, cv.ad_componentobjectuid, cv.version, p.created, p.updated, p.createdby, p.updatedby, p.component_export_date as export_date, p.component_last_changelog as last_changelog, p.component_first_changelog_uid as first_changelog_uid, p.component_last_changelog_uid as last_changelog_uid, p.component_first_changelog_group_uid as first_changelog_group_uid, p.component_last_changelog_group_uid as last_changelog_group_uid FROM ad_plugin p LEFT JOIN ad_componentversion cv ON p.ad_componentversion_id = cv.ad_componentversion_id ORDER BY p.created; drop view ad_plugin_detail_v; create view ad_plugin_detail_v as select cv.name, cv.ad_componentobjectuid, pd.version, pd.created, pd.createdby, pd.component_export_date as export_date, pd.component_first_changelog as first_changelog, pd.component_last_changelog as last_changelog, pd.component_first_changelog_uid as first_changelog_uid, pd.component_last_changelog_uid as last_changelog_uid, pd.component_first_changelog_group_uid as first_changelog_group_uid, pd.component_last_changelog_group_uid as last_changelog_group_uid, pd.install_details from ad_plugin p inner join ad_plugin_detail pd on p.ad_plugin_id = pd.ad_plugin_id left join ad_componentversion cv on p.ad_componentversion_id = cv.ad_componentversion_id order by pd.created asc;

    #48848
    Diego Rucci
    Participante

    Hola, tal como indiqué, no puedo ver qué hay en otras pestañas de la ventana de EC
    porque no me deja guardar siquiera el nombre de la EC sin que aparezca el error (ergo no puedo cambiar de pestaña).
    Ninguna cuenta bancaria tiene tilde de pagos electrónicos.
    En Configuración de Lotes de Pago tampoco tengo nada cargado.

    Traté de explorar con el usuario System en la ventana de Bussiness Partner, pero tampoco estoy muy seguro de qué buscar.

    #48838
    Diego Rucci
    Participante

    Agrego.
    Si selecciono alguna opción de IIBB (por ejemplo convenio multilateral o regimen simplificado),
    no aparece el campo para ingresar el nro de IIBB, debo cambiar a vista de rejilla para cargarlo.

    ¿Debería re-generar el servidor ejecutando Configurar.sh (estoy bajo linux)?

    #48836
    Diego Rucci
    Participante

    Hola, el error aparece tanto en perfil de administración como de ventas.

    Para asegurarme también utilicé el usuario AdminLibertya.

    Estoy utilizando el cliente pesado (y además hice la prueba desde el cliente webui)

    Al cargar una nueva EC, cargo el formulario principal y al pulsar el botón guardar aparece el error.

    cliente webui

    cliente pesado

    • Esta respuesta fue modificada hace 4 años, 7 meses por Diego Rucci.
    #48828
    Diego Rucci
    Participante

    Hola Horacio. Gracias.

    Directamente no me deja guardar la EC (desde el perfil de administración, no he probado desde ventas). Da el error expuesto.

    Nunca trabajé con lotes de pagos. Mi configuración es muy simple.

    Soy monotributista que brinda servicios.

    Y mi cartera de clientes no tiene grandes cambios, por eso no me di cuenta hasta este mes que quise agregar un nuevo cliente.

    No tengo artículos ni manejo stock.

    Tenes alguna documentación que indicarme para leer?
    Mucha gracias.

    #46312
    Diego Rucci
    Participante

    Bien, no he podido probar esto con una factura real… Si alguien puede, se lo agradezco.

    Para ver si el certificado actual es SHA-1, hacer lo siguiente:

    Tecla Windows+R y ejecutar ‘CMD’

    C:\> cd C:\OpenSSL-Win32\bin
    C:\OpenSSL-Win32\bin\> openssl.exe x509 -in c:\pyafipws_prod\SU-CERTIFICADO.CRT -text -noout

    Explicit Text: Certificado para computadores solo valido par
    a entornos productivos

    Signature Algorithm: sha1WithRSAEncryption

    Se ve claramente que es un certificado SHA1

    Debemos generar un certificado SHA2 (familia SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256)
    Para ello simplemente generamos una nueva key. En el manual se indica 1024, asi que cambiamos ese valor por 2048
    También generamos el pedido CSR y con este archivo vamos a solicitar un nuevo certificado a AFIP.

    C:\OpenSSL-Win32\bin\> openssl.exe genrsa -out EMPRESA.KEY 2048
    C:\OpenSSL-Win32\bin\> openssl.exe req -new -key EMPRESA.KEY -out EMPRESA.CSR -config afip-openssl.cnf

    Con el nuevo EMPRESA.CSR gestionamos el certificado y lo descargamos.
    Comprobamos nuevamente y vemos que ahora dice SHA512

    C:\OpenSSL-Win32\bin\> openssl.exe x509 -in c:\pyafipws_prod\NUEVO-CERTIFICADO.CRT -text -noout\
        Signature Algorithm: sha512WithRSAEncryption

    Solo resta cambiar el archivo properties.ini para colocar la nueva KEY y el nuevo certificado.

    Si estoy equivocado, que me disculpen dado que no he podido probar si con el nuevo certificado genera correctamente las facturas electrónicas.

    • Esta respuesta fue modificada hace 7 años, 7 meses por Diego Rucci.
    • Esta respuesta fue modificada hace 7 años, 7 meses por Diego Rucci.
    #46266
    Diego Rucci
    Participante

    Por lo que entiendo, todo depende de cómo generaste el certificado con openssl.
    Si generaste un certificado SHA-1, debería darse de baja y realizar el pedido de uno nuevo.

    No he podido comprobarlo aún, pero tengo entendido que en la página de AFIP dice si los certificados son SHA-1 o SHA-2

    De todas maneras, estoy siguiendo el hilo de este grupo de google:
    https://groups.google.com/forum/#!msg/pyafipws/oNRJ4XQo_iA/E0kAJwtFAgAJ

    Adhiero a la consulta de Federico, si alguien pudiera clarificar.
    Gracias!

    #38964
    Diego Rucci
    Participante

    Hmmm, me parece más sencillo modificar el reporte para que muestre/oculte según la letra.
    Por ahora no quiero meterme en camisa de once varas.

    Muchas Gracias!!
    Saludos

    #38962
    Diego Rucci
    Participante

    Gracias @albertotoba

    Utilizando iReport-2.0.1 modifiqué el reporte jasper “rpt_FactA”

    Según aquí y aquí, debo editar el campo de descripción así:

    Position type: float
    Stretch type: relative to tallest object
    Stretch with overflow: true (checked)

    La primera vez que compilé el reporte y lo probé mostraba las multi-líneas, pero el resto de los campos quedaban alineados al fondo.
    Así que volví a editar y cambié la propiedad “Position Type” de “Fix relative to bottom” a “Fix relative to top” de cada uno de los demás campos de línea.

    Compilé el reporte y lo cargué en el módulo Configuración -> Impresión -> Jasper Reports -> Factura -> Informe precompilado

    Hasta aquí vengo bien. Se que puedo generar otro reporte igual y modificarlo para quitar la impresión de las líneas de IVA en documentos tipo B.

    Vi que en Configuración puedo configurar los tipos de documentos, pero no se como relacionarlos con los reportes.

    ¿cómo (y dónde) especifico los distintos reportes según el tipo de factura?

    #38177
    Diego Rucci
    Participante

    Hola wsbiz
    No se si lo resolviste, pero creo que tengo una solución para vos.

    Entre otras cosas, he estado trabajando con una versión portable del jre (Luego voy a publicar un pequeño tutorial en el foro).

    Hice una carpeta C:ClienteLBY que contiene el cliente pesado de Libertya y el jre6 portable.
    Luego hice un archivo BATCH que contiene esto:

    Code:
    @echo off
    set JAVA_HOME=C:ClienteLBYjre
    set OXP_HOME=C:ClienteLBY
    copy /Y %OXP_HOME%adm.properties %USERPROFILE%Libertya.properties
    START /B libertya.exe

    La primera vez que se ejecuta el cliente, te mostrará la licencia y deberás ingresar los datos de conexión. Supongamos que ingreso con el perfil de Administración.
    Te genera un archivo Libertya.properties dentro de %USERPROFILE% (p.e. C:UsuarioFulanito).
    Cierro el cliente y copio ese archivo como “adm.properties” en la carpeta c:ClienteLBY.
    Ahora cada vez que ejecuto el .bat sobreescribe el seteo e inicia el cliente con el perfil cargado.

    Si creas otro BATCH para Ventas, por ejemplo, ingresás a Libertya con el perfil Ventas, cerrás y copias Libertya.properties como vtas.properties (obviamente hay que crear otro .bat y modificar el adm.properties x vtas.properties)

    De esta manera siempre vas sobreescribiendo los datos de conexión por cada módulo que lanzás.

    Hasta ahora no he encontrado inconvenientes en lanzar varios clientes sobreescribiendo los archivos properties (incluso con distintas impresoras en cada perfil)

    Hay que testear.
    saludos

    #37695
    Diego Rucci
    Participante

    Gracias Juan Manuel.
    No he tenido oportunidad de probarlo aún, pero
    ¿sabés si la descripción permite tener multilínea?

    Es decir, volviendo al ejemplo:

    Code:
    Servicios – reparación de fleje
    cambio de bulones
    mano de obra
Viendo 15 entradas - de la 1 a la 15 (de un total de 22)