• Este debate está vacío.
Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Autor
    Entradas
  • #32464
    Saulo Gil
    Miembro

    Hola,

    En la versión 13.01 el proceso de Importación de Cuentas Contables no puede actualizar las cuentas por default. Pasos para reproducir el problema:

    1. Importar archivo CSV con un plan de cuentas diferente al que viene con la distribución de Libertya
    2. Procesar la importación, seleccionando “Actualizar cuentas por defecto” y “Crear nueva combinación”
    3. Ir a Esquema Contable -> Predeterminados, allí las cuentas por default deberían reflejar las cuentas recientemente importadas, pero solo muestra las que vienen en la distribución de Libertya

    Creé un ticket reportando este problema, adjuntando un parche simple para resolverlo: http://code.google.com/p/libertya/issues/detail?id=15

    Este bug parece estar presente desde hace al menos un año, me parece increíble que nadie lo haya reportado aún. Pareciera que la mayoría de las empresas utilizando Libertya están trabajando con el plan de cuentas incluído en la distribución.

    #37739
    Daniel Delgado
    Participante

    Tuve el mismo problema y lo solucioné de la siguiente manera:

    1. En la clase ImportAcoount modifiqué todos los DB.executeUpdate() iniciales: “DB.executeUpdate(sql, get_TrxName())” por “DB.executeUpdate(sql, null)”. Esto porque los updates no se ejecutaban al momento de pasar por la línea de código sino después de ejecutar toda la clase.

    2. De igual manera modifiqué la declaración de la variable impEV:
    “X_I_ElementValue impEV = new X_I_ElementValue(getCtx(),rs, get_TrxName())” por “X_I_ElementValue impEV = new X_I_ElementValue(getCtx(),rs, null)”. La cuenta importada no se marcaba como importada hasta ejecutar toda la clase.

    3. Modifiqué un sql del método “private void updateDefaultAccounts( int C_AcctSchema_ID )”:

    El sql original es: “SELECT i.C_ElementValue_ID, t.TableName, c.ColumnName, i.I_ElementValue_ID ” + “FROM I_ElementValue i” + ” INNER JOIN AD_Column c ON (i.AD_Column_ID=c.AD_Column_ID)” + ” INNER JOIN AD_Table t ON (c.AD_Table_ID=t.AD_Table_ID) ” + “WHERE i.I_IsImported=’Y’ AND i.Processed=’Y’ AND Processing=’Y'” + ” AND i.C_ElementValue_ID IS NOT NULL AND C_Element_ID=?”;

    Y lo deje así unicamente modificando el where: “SELECT i.C_ElementValue_ID, t.TableName, c.ColumnName, i.I_ElementValue_ID ” + “FROM I_ElementValue i” + ” INNER JOIN AD_Column c ON (i.AD_Column_ID=c.AD_Column_ID)” + ” INNER JOIN AD_Table t ON (c.AD_Table_ID=t.AD_Table_ID) ” + “WHERE i.I_IsImported=’Y’ AND i.Processed=’N'” + ” AND i.C_ElementValue_ID IS NOT NULL AND C_Element_ID=?”

    Saludos,

Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Debes estar registrado para responder a este debate.