Git Product home page Git Product logo

erpcya / adempiere Goto Github PK

View Code? Open in Web Editor NEW

This project forked from adempiere/adempiere

2.0 2.0 5.0 1.53 GB

ADempiere Business Suite ERP/CRM/MFG/SCM/POS done the Bazaar way in an open and unabated fashion. Focus is on the Community that includes Subject Matter Specialists, Implementors and End-Users.

Home Page: www.adempiere.net

License: GNU General Public License v2.0

Batchfile 0.25% Shell 0.26% HTML 1.34% CSS 0.19% Makefile 0.01% Java 92.67% Scala 0.49% PLSQL 0.68% PLpgSQL 0.66% Prolog 2.35% XSLT 0.43% JavaScript 0.54% ZenScript 0.01% Faust 0.11% Perl 0.02% Python 0.01% Visual Basic 6.0 0.01%

adempiere's People

Contributors

carlosaparadam avatar dependabot[bot] avatar dixonmartinez avatar dram avatar e-evolution avatar edwinbetanc0urt avatar fjviejo avatar ganzt90 avatar gitter-badger avatar homebeaver avatar jobriantrinidad avatar marcalwestf avatar marekmosiewicz avatar mckayerp avatar metas-ts avatar niclopup avatar nsarlabos avatar ogomezislas avatar pawlbouden avatar piracio avatar raul-mz avatar rcapecce avatar sbouissa avatar susannecalderon avatar syvasoft avatar trifonnt avatar williamjmorenor avatar yamelsenih avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adempiere's Issues

[Feature Request] Cerrar Sesión de Open ID desde ADempiere

Descripción de la Característica

Se desea implementar la funcionalidad para que al ingresar a ADempiere con una autenticación de terceros como gMail, Keycloak u otro se pueda cerrar la sesión de Open ID al cerrar la sesión de ADempiere.

Esto sería ideal para ambientes donde se use keycloak para iniciar sesión en ADempiere y no se quiera dejar abierta la sesión de keycloak al cerrar la sesión de ADempiere.

¿Qué se propone agregar?

Se propone agregar una columna llamada ECA02_RevokeToken en los niveles:

  • Usuario
  • Rol
  • Organización

La razón de esta columna es para determinar si al cerrar sesión de ADempiere se cerrará la de Open ID o no

[Bug Report] Al hacer Logout no cierra sesión de ADempiere

Descripción del Error

Cuando se hace logout desde el ZK no se cierra correctamente la sesión de ADempiere, esto se puede notar si se busca la sesión anterior en la ventana de Auditoría de Sesión

Pasos para Reproducirlo

  • Haga login desde el ZK en ADempiere
  • Vaya a la ventana de sesión y busque la actual
    image
  • Cierre sesión desde el botón "Log Out"
  • Haga login nuevamente y busque la sesión previa
  • Note que la sesión anterior no está marcada como procesada
    image
  • Y ya existe una nueva sesión
    image

[Bug Report] NPE al generar un reporte

Bug report

Cuando se genera un reporte desde el ZK y la compañía no tiene logo asociado, da un error del tipo NPE.

===========> zkoss.handleError:1130: >>java.lang.NullPointerException
>>	at org.compiere.print.layout.LayoutEngine.createStandardHeaderFooter(LayoutEngine.java:958)
>>	at org.compiere.print.layout.LayoutEngine.layout(LayoutEngine.java:444)
>>	at org.compiere.print.layout.LayoutEngine.<init>(LayoutEngine.java:134)
>>	at org.compiere.print.ReportEngine.layout(ReportEngine.java:320)
>>	at org.compiere.print.ReportEngine.getLayout(ReportEngine.java:330)
>>	at org.compiere.print.ReportEngine.getCtx(ReportEngine.java:367)

Steps to reproduce

  1. Vaya a la ventana Compañía
  2. en la pestaña Información de Compañía elimine el logo de reportes
  3. Reinicie caché
  4. Genere un reporte del tipo detalle

Screenshot or Gif

error_en_ddh
Screenshot_20230720_142541

Link to minimal reproduction

Expected behavior

Si no existe logo en la compañía debería simplemente validar y no mostrarlo

Other relevant information

  • Your OS:
  • Java version:
  • ADempiere version:
  • Browser [e.g. chrome, safari]
  • Browser Version [e.g. 22]
  • DB Provider:
  • DB version:

Additional context

Add any other context about the problem here.

[Bug Report] Error NPE importando órdenes de compra

Reporte de Error

Cuando se importan órden es de compa desde el importador de órdenes de compra no hace la impoortación y queda todo marcado como "Error"

Steps to reproduce

  1. Cargue un archivo con órdenes de compra
  2. Asegúrese que en el archivo no se establezca el número de documento (se asume que se generará automáticamente)
  3. Importe el registro

Screenshot or Gif

Screenshot from 2023-10-24 10-07-20
Screenshot from 2023-10-24 10-07-12

trace1.log

Comportamiento Esperado

Debería generar el número de documento de manera automática en lugar de generar un error en tiempo de ejecución.

Additional context

Si se coloca un número de documento en el importador funciona

Referencia: adempiere#4240

[Bug Report] Recalculo de precios en devolución

Reporte de Error

Cuando se hace una devolución de cliente o proveedor desde una orden de ventas, no se mantienen los precios. Esto no es correcto puesto que las devoluciones siempre son valorizadas al precio del documento original.

Paso a Paso

  1. Cree una Orden de Ventas con al menos un producto y complete
  2. Cambie el precio del producto que se encuentra en la orden de ventas (desde la ventana de lista de precios)
  3. Haga una orden de devolución

adempiere#4255

[Bug Report] Error al instanciar clase de importación de I_Product_BOM

Bug report

Cuando se intenta instanciar la clase de importación de lista de materiales, da un error cargando las clases X y las I. El error es que no consigue la clase modelo para la tabla:

-----------> MTable.getClass: No class for table: I_Product_BOM [64]
===========> ImportProductBOM.process: class org.adempiere.model.GenericPO cannot be cast to class org.adempiere.core.domains.models.X_I_Product_BOM (org.adempiere.model.GenericPO and org.adempiere.core.domains.models.X_I_Product_BOM are in unnamed module of loader 'app') [64]
java.lang.ClassCastException: class org.adempiere.model.GenericPO cannot be cast to class org.adempiere.core.domains.models.X_I_Product_BOM (org.adempiere.model.GenericPO and org.adempiere.core.domains.models.X_I_Product_BOM are in unnamed module of loader 'app')
        at org.eevolution.manufacturing.process.ImportProductBOM.fillIDValues(ImportProductBOM.java:83)
        at org.eevolution.manufacturing.process.ImportProductBOM.doIt(ImportProductBOM.java:74)
        at org.compiere.process.SvrProcess.process(SvrProcess.java:176)
        at org.compiere.process.SvrProcess.startProcess(SvrProcess.java:129)
        at org.adempiere.util.ProcessUtil.startJavaProcess(ProcessUtil.java:171)
        at org.adempiere.util.ProcessUtil.startJavaProcess(ProcessUtil.java:116)
        at org.compiere.apps.ProcessCtl.startProcess(ProcessCtl.java:610)
        at org.compiere.apps.ProcessCtl.run(ProcessCtl.java:360)
        at java.base/java.lang.Thread.run(Thread.java:829)

Steps to reproduce

  1. Vaya System Admin -> Data -> Data Import -> Import Product BOM
  2. Presione el botón Import Product BOM
  3. Vea el error

Screenshot or Gif

Link to minimal reproduction

Expected behavior

A clear and concise description of what you expected to happen.

Other relevant information

  • Your OS:
  • Java version:
  • ADempiere version:
  • Browser [e.g. chrome, safari]
  • Browser Version [e.g. 22]
  • DB Provider:
  • DB version:

Additional context

Add any other context about the problem here.

[Bug Report] Error cargando imagen del tema

Bug report

Cuando se carga el ADempiere con una referencia de imagen o logo de la empresa en la información de la compañía y, la misma no tiene binario o activo de la imagen genera un error del tipo NPE como se describe a continuación:

-----------> MImage.load: NO Data found for AD_Image_ID=1000028 [31]
===========> ThemeManager.getLogo: Could not write logo file, using default [31]
java.lang.NullPointerException
	at java.base/java.io.FileOutputStream.write(FileOutputStream.java:341)
	at org.adempiere.webui.theme.ThemeManager.getLogo(ThemeManager.java:80)
	at org.adempiere.webui.theme.ThemeManager.getLogo(ThemeManager.java:100)
	at org.adempiere.webui.theme.ThemeManager.getLargeLogo(ThemeManager.java:116)
	at org.adempiere.webui.panel.RolePanel.init(RolePanel.java:174)
	at org.adempiere.webui.panel.RolePanel.<init>(RolePanel.java:117)
	at org.adempiere.webui.window.LoginWindow.loginOk(LoginWindow.java:98)
	at org.adempiere.webui.panel.LoginPanel.validateLogin(LoginPanel.java:528)
	at org.adempiere.webui.window.LoginWindow.onEvent(LoginWindow.java:160)
	at org.zkoss.zk.ui.impl.EventProcessor.process0(EventProcessor.java:197)
	at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:141)
	at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.process0(EventProcessingThreadImpl.java:519)
	at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.run(EventProcessingThreadImpl.java:446)

Steps to reproduce

  1. Coloque un ID de imagen o logo de la compañía que no tenga asociado una imagen
  2. Salga de ADempiere e inice sesión nuevamente

Screenshot or Gif

Link to minimal reproduction

Expected behavior

A clear and concise description of what you expected to happen.

Other relevant information

  • Your OS:
  • Java version:
  • ADempiere version:
  • Browser [e.g. chrome, safari]
  • Browser Version [e.g. 22]
  • DB Provider:
  • DB version:

Additional context

Add any other context about the problem here.

[Bug Report] Reportes ejecutados desde el Programador de Procesos no muestran los valores de parámetros

Reporte de Error

Cuando se ejecuta un reporte desde el progamador de procesos (Process Scheduler) no muestra correctamente el valor de los párámetros, en su lugar muestra el ID cuando se trata de una referencia a una tabla

Pasos para reproducir

  1. Agregue un proceso tipo reporte al programador de procesos, en mi caso agregué el informe de reabastecimiento
  2. Ejecute el Programador de Procesos
  3. Vea cómo se muestra el parámetro

Screenshot or Gif

2024-04-23_15-42

Comportamiento Esperado

Cuando el parámetro hace referencia a un tipo lookup debería mostrar el valor de visualización y no el ID tal como se muestra a continuación
2024-04-23_15-44

Conteto Adicional

Esto sucede porque los procesos ejecutados en background no tienen el valor de visualización, por lo general sucede en los procesos que se ejecutan desde el manejador ProcessBuilder

[Bug Report] Error con sesión duplicada

Bug report

Cuando se intenta cargar la misma sesión dos veces aparece un molesto mensaje que no permite cargar nuevamente la sesión.

Please report conditions to your system administrator or in sf tracker 2832968

Steps to reproduce

  1. Cargue dos veces el mismo usuario en dos navegadores
  2. Haga login

adempiere#4253

[Bug Report] Minor change, Error with payment processor

Bug report

When a payment processor throw a error this is add with english text:

Screenshot from 2023-08-07 18-26-10

log.log(Level.SEVERE, "processOnline", e);
setErrorMessage("Payment Processor Error: " + e.getMessage());

Steps to reproduce

  1. Run a Payment processor
    2.Wait a exeption
  2. See error message

Screenshot or Gif

Link to minimal reproduction

Expected behavior

A clear and concise description of what you expected to happen.

Other relevant information

  • Your OS:
  • Java version:
  • ADempiere version:
  • Browser [e.g. chrome, safari]
  • Browser Version [e.g. 22]
  • DB Provider:
  • DB version:

Additional context

Add any other context about the problem here.

adempiere#4251

[Bug Report] Error con reporte de Reabastecimiento y organización

Reporte de Error

Cuando se ingresa con organización * y se intenta reabastecer desde el visor Reabastecimiento de Almacén se genera un error con el almacén fuente.

Steps to reproduce

  1. Ingrese a ADempiere con organización *
  2. Vaya a Gestión de Materiales -> Reabastecimiento de Almacén
  3. Liste los reabastecimientos por hacer
  4. Seleccione en el parámetro de proceso Crear la opción Orden de Distribución
  5. Seleccione en el parámetro de proceso Tipo de Documento un tipo de documento de orden de distribución
  6. Procese
  7. Note que existe un error
ReplenishReport.process: @M_Warehouse_ID@ @InTransit@ @FillMandatory@  [20]
UserError: @M_Warehouse_ID@ @InTransit@ @FillMandatory@ 
	at org.compiere.process.ReplenishReport.createDO(ReplenishReport.java:660)
	at org.compiere.process.ReplenishReport.doIt(ReplenishReport.java:116)
	at org.compiere.process.SvrProcess.process(SvrProcess.java:176)
	at org.compiere.process.SvrProcess.startProcess(SvrProcess.java:129)
	at org.adempiere.util.ProcessUtil.startJavaProcess(ProcessUtil.java:171)
	at org.adempiere.util.ProcessUtil.startJavaProcess(ProcessUtil.java:116)
	at org.compiere.apps.ProcessCtl.startProcess(ProcessCtl.java:610)
	at org.compiere.apps.ProcessCtl.run(ProcessCtl.java:360)
	at org.eevolution.form.VBrowser.cmd_Process(VBrowser.java:552)
	at org.eevolution.form.VBrowser.actionPerformed(VBrowser.java:764)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
	at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
	at java.desktop/java.awt.Component.processEvent(Component.java:6400)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)

Comportamiento Esperado

Debe tomar el almacén fuente configurado en el reabastecimiento y sino entonces el configurado en el almacén que se encuentra en el reabastecimiento

[Bug Report] NPE imprimiendo reportes desde ventanas

Bug report

Cuando se intenta imprimir un reporte desde una ventana da error NPE

Steps to reproduce

  1. Vaya a la ventana "Proceso de Nómina"
  2. Busque un registro de nómina
  3. Imprima desde la ventana
500
java.lang.NullPointerException
	at org.adempiere.webui.desktop.DefaultDesktop.doCreatePart(DefaultDesktop.java:175)
	at org.adempiere.webui.part.AbstractUIPart.createPart(AbstractUIPart.java:41)
	at org.adempiere.webui.AdempiereWebUI.loginCompleted(AdempiereWebUI.java:232)
	at org.adempiere.webui.AdempiereWebUI.onCreate(AdempiereWebUI.java:136)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.zkoss.zk.ui.impl.EventProcessor.process0(EventProcessor.java:209)
	at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:141)
	at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.process0(EventProcessingThreadImpl.java:519)
	at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.run(EventProcessingThreadImpl.java:446)</pre>

Screenshot or Gif

Screenshot from 2023-08-21 18-00-30
image

adempiere#4249

[Bug Report] Comparación incorrecta en los Smart Browsers para Campos de Moneda

Bug report

Cuando un Smart Browser tiene una columna como C_Currency_ID_To (Que no termina en _ID) hace la comparación como si el campo en fuera String en lugar de numérico. Esto trae como consecuencia un error en la clausula WHERE del Smart Browser al ejecutar la consulta.

===========> WBrowser.getCount: SELECT COUNT(*) FROM  WH_Withholding wh LEFT JOIN WH_Definition whd ON (whd.WH_Definition_ID=wh.WH_Definition_ID) , C_Currency cto  WHERE wh.IsDeclared = 'N' AND wh.IsSimulation = 'N' AND wh.DocStatus IN ('CO','CL')  AND wh.Processed = 'Y' AND wh.SourceInvoice_ID IS NOT NULL AND NOT EXISTS (SELECT 1 FROM C_Invoice i WHERE wh.C_Invoice_ID = i.C_Invoice_ID AND i.DocStatus IN ('CO', 'CL', 'IP', 'IN')) AND wh.C_BPartner_ID=?  AND wh.AD_Org_ID=?  AND wh.IsManual=?  AND wh.C_Currency_ID=?  AND cto.C_Currency_ID=?  AND wh.AD_Client_ID IN (0,1000000) AND (wh.WH_Withholding_ID IS NULL OR wh.WH_Withholding_ID NOT IN ( SELECT Record_ID FROM AD_Private_Access WHERE AD_Table_ID = 54647 AND AD_User_ID <> 1000021 AND IsActive = 'Y' )) AND (cto.C_Currency_ID IS NULL OR cto.C_Currency_ID NOT IN ( SELECT Record_ID FROM AD_Private_Access WHERE AD_Table_ID = 141 AND AD_User_ID <> 1000021 AND IsActive = 'Y' )) [32]
org.postgresql.util.PSQLException: ERROR: operator does not exist: numeric = character varying
  Hint: No operator matches the given name and argument types. You might need to add explicit type casts.
  Position: 508; State=42883; ErrorCode=0
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2675)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2365)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:355)
	at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:490)
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:408)
	at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:166)
	at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:118)
	at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
	at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
	at jdk.internal.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.compiere.db.StatementProxy.invoke(StatementProxy.java:100)
	at com.sun.proxy.$Proxy9.executeQuery(Unknown Source)
	at org.eevolution.grid.Browser.getCount(Browser.java:422)
	at org.eevolution.grid.Browser.testCount(Browser.java:387)
	at org.eevolution.form.WBrowser.executeQuery(WBrowser.java:298)
	at org.eevolution.form.WBrowser.cmd_Search(WBrowser.java:745)
	at org.eevolution.form.WBrowser$7.onEvent(WBrowser.java:535)
	at org.zkoss.zk.ui.impl.EventProcessor.process0(EventProcessor.java:197)
	at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:141)

Steps to reproduce

  1. Agregue a un Smart Browser un campo que haga referencia al elemento C_Currency_ID_To
  2. Ejecute el Smart Browser con un valor cómo parámetro de búsqueda
  3. Vea el error

Screenshot or Gif

Link to minimal reproduction

Expected behavior

A clear and concise description of what you expected to happen.

Other relevant information

  • Your OS:
  • Java version:
  • ADempiere version:
  • Browser [e.g. chrome, safari]
  • Browser Version [e.g. 22]
  • DB Provider:
  • DB version:

Additional context

Add any other context about the problem here.

[Feature Request] Permitir acceder a las variables del procesador de pagos

Feature request

Actualmente ADempiere está en un punto donde cada proceso de negocio se encuentra en un paquete distinto, esto ha hecho que muchas funcionalidades por implementar se tengan que cambiar, una de ellas es el procesador de pagos. El mismo tiene variables que se encuentran declaradas como protegidas y no permiten el acceso desde un paquete diferente.

Las variables son:

protected MPaymentProcessor p_mpp = null;
protected MPayment			p_mp = null;

Describe the solution you'd like

Simplemte declarar como pública cada una de las varibles.

Additional context

adempiere#4241

[Bug Report] NPE al Completar Recepción con cargo

Reporte de Error

Cuando se intenta completar una recepción de materiales con un cargo asociado se genera un NPE

Pasos para Reproducir

  1. Cree una orden de compra con una linea con referencia a un cargo
  2. Vaya a la ventana "Recepción de Material" y cree una nueva recepción a partir de la orden de compras
  3. Intente completar la recepción
  4. Vea el error
===========> ModelValidationEngine.lambda$fireDocValidate$19: null [1852]
java.lang.NullPointerException
	at org.compiere.asset.model.validator.FixedAsset.docValidate(FixedAsset.java:203)
	at org.compiere.model.ModelValidationEngine.lambda$fireDocValidate$19(ModelValidationEngine.java:519)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
	at org.compiere.model.ModelValidationEngine.lambda$fireDocValidate$20(ModelValidationEngine.java:517)
	at java.base/java.util.Optional.ifPresent(Optional.java:183)
	at org.compiere.model.ModelValidationEngine.fireDocValidate(ModelValidationEngine.java:514)
	at org.compiere.model.ModelValidationEngine.fireDocValidate(ModelValidationEngine.java:462)
	at org.compiere.model.MInOut.completeIt(MInOut.java:1615)
	at org.compiere.process.DocumentEngine.completeIt(DocumentEngine.java:558)
	at org.compiere.process.DocumentEngine.prepareThenCompleteIt(DocumentEngine.java:343)
	at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:317)
	at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:288)
	at org.compiere.model.MInOut.processIt(MInOut.java:1080)
	at org.compiere.wf.MWFActivity.performWork(MWFActivity.java:861)
	at org.compiere.wf.MWFActivity.run(MWFActivity.java:781)
	at org.compiere.wf.MWFProcess.startNext(MWFProcess.java:341)
	at org.compiere.wf.MWFProcess.checkActivities(MWFProcess.java:256)
	at org.compiere.wf.MWFActivity.setWFState(MWFActivity.java:284)
	at org.compiere.wf.MWFActivity.run(MWFActivity.java:784)
	at org.compiere.wf.MWFProcess.startNext(MWFProcess.java:341)
	at org.compiere.wf.MWFProcess.checkActivities(MWFProcess.java:256)
	at org.compiere.wf.MWFActivity.setWFState(MWFActivity.java:284)
	at org.compiere.wf.MWFActivity.run(MWFActivity.java:784)
	at org.compiere.wf.MWFProcess.startWork(MWFProcess.java:471)
	at org.compiere.wf.MWorkflow.start(MWorkflow.java:736)
	at org.compiere.wf.MWorkflow.startWait(MWorkflow.java:798)

===========> ModelValidationEngine.lambda$fireDocValidate$19: null [1852]
java.lang.NullPointerException
	at org.compiere.asset.model.validator.FixedAsset.docValidate(FixedAsset.java:203)
	at org.compiere.model.ModelValidationEngine.lambda$fireDocValidate$19(ModelValidationEngine.java:519)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
	at org.compiere.model.ModelValidationEngine.lambda$fireDocValidate$20(ModelValidationEngine.java:517)
	at java.base/java.util.Optional.ifPresent(Optional.java:183)
	at org.compiere.model.ModelValidationEngine.fireDocValidate(ModelValidationEngine.java:514)
	at org.compiere.model.ModelValidationEngine.fireDocValidate(ModelValidationEngine.java:462)
	at org.compiere.model.MInOut.completeIt(MInOut.java:1615)
	at org.compiere.process.DocumentEngine.completeIt(DocumentEngine.java:558)
	at org.compiere.process.DocumentEngine.prepareThenCompleteIt(DocumentEngine.java:343)
	at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:317)
	at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:288)
	at org.compiere.model.MInOut.processIt(MInOut.java:1080)
	at org.compiere.wf.MWFActivity.performWork(MWFActivity.java:861)
	at org.compiere.wf.MWFActivity.run(MWFActivity.java:781)
	at org.compiere.wf.MWFProcess.startNext(MWFProcess.java:341)
	at org.compiere.wf.MWFProcess.checkActivities(MWFProcess.java:256)
	at org.compiere.wf.MWFActivity.setWFState(MWFActivity.java:284)
	at org.compiere.wf.MWFActivity.run(MWFActivity.java:784)
	at org.compiere.wf.MWFProcess.startNext(MWFProcess.java:341)
	at org.compiere.wf.MWFProcess.checkActivities(MWFProcess.java:256)
	at org.compiere.wf.MWFActivity.setWFState(MWFActivity.java:284)
	at org.compiere.wf.MWFActivity.run(MWFActivity.java:784)
	at org.compiere.wf.MWFProcess.startWork(MWFProcess.java:471)
	at org.compiere.wf.MWorkflow.start(MWorkflow.java:736)
	at org.compiere.wf.MWorkflow.startWait(MWorkflow.java:798)

-----------> MWFActivity.run: MWFNode[190-(DocComplete),Action=DocumentAction=CO] [1852]
org.adempiere.exceptions.AdempiereException: java.lang.NullPointerException
	at org.compiere.model.ModelValidationEngine.lambda$fireDocValidate$19(ModelValidationEngine.java:533)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
	at org.compiere.model.ModelValidationEngine.lambda$fireDocValidate$20(ModelValidationEngine.java:517)
	at java.base/java.util.Optional.ifPresent(Optional.java:183)
	at org.compiere.model.ModelValidationEngine.fireDocValidate(ModelValidationEngine.java:514)
	at org.compiere.model.ModelValidationEngine.fireDocValidate(ModelValidationEngine.java:462)
	at org.compiere.model.MInOut.completeIt(MInOut.java:1615)
	at org.compiere.process.DocumentEngine.completeIt(DocumentEngine.java:558)
	at org.compiere.process.DocumentEngine.prepareThenCompleteIt(DocumentEngine.java:343)
	at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:317)
	at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:288)
	at org.compiere.model.MInOut.processIt(MInOut.java:1080)
	at org.compiere.wf.MWFActivity.performWork(MWFActivity.java:861)
	at org.compiere.wf.MWFActivity.run(MWFActivity.java:781)
	at org.compiere.wf.MWFProcess.startNext(MWFProcess.java:341)
	at org.compiere.wf.MWFProcess.checkActivities(MWFProcess.java:256)
	at org.compiere.wf.MWFActivity.setWFState(MWFActivity.java:284)
	at org.compiere.wf.MWFActivity.run(MWFActivity.java:784)
	at org.compiere.wf.MWFProcess.startNext(MWFProcess.java:341)
	at org.compiere.wf.MWFProcess.checkActivities(MWFProcess.java:256)
	at org.compiere.wf.MWFActivity.setWFState(MWFActivity.java:284)
	at org.compiere.wf.MWFActivity.run(MWFActivity.java:784)
	at org.compiere.wf.MWFProcess.startWork(MWFProcess.java:471)
	at org.compiere.wf.MWorkflow.start(MWorkflow.java:736)
	at org.compiere.wf.MWorkflow.startWait(MWorkflow.java:798)

-----------> MWFActivity.run: MWFNode[190-(DocComplete),Action=DocumentAction=CO] [1852]
org.adempiere.exceptions.AdempiereException: java.lang.NullPointerException
	at org.compiere.model.ModelValidationEngine.lambda$fireDocValidate$19(ModelValidationEngine.java:533)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
	at org.compiere.model.ModelValidationEngine.lambda$fireDocValidate$20(ModelValidationEngine.java:517)
	at java.base/java.util.Optional.ifPresent(Optional.java:183)
	at org.compiere.model.ModelValidationEngine.fireDocValidate(ModelValidationEngine.java:514)
	at org.compiere.model.ModelValidationEngine.fireDocValidate(ModelValidationEngine.java:462)
	at org.compiere.model.MInOut.completeIt(MInOut.java:1615)
	at org.compiere.process.DocumentEngine.completeIt(DocumentEngine.java:558)
	at org.compiere.process.DocumentEngine.prepareThenCompleteIt(DocumentEngine.java:343)
	at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:317)
	at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:288)
	at org.compiere.model.MInOut.processIt(MInOut.java:1080)
	at org.compiere.wf.MWFActivity.performWork(MWFActivity.java:861)
	at org.compiere.wf.MWFActivity.run(MWFActivity.java:781)
	at org.compiere.wf.MWFProcess.startNext(MWFProcess.java:341)
	at org.compiere.wf.MWFProcess.checkActivities(MWFProcess.java:256)
	at org.compiere.wf.MWFActivity.setWFState(MWFActivity.java:284)
	at org.compiere.wf.MWFActivity.run(MWFActivity.java:784)
	at org.compiere.wf.MWFProcess.startNext(MWFProcess.java:341)
	at org.compiere.wf.MWFProcess.checkActivities(MWFProcess.java:256)
	at org.compiere.wf.MWFActivity.setWFState(MWFActivity.java:284)
	at org.compiere.wf.MWFActivity.run(MWFActivity.java:784)
	at org.compiere.wf.MWFProcess.startWork(MWFProcess.java:471)
	at org.compiere.wf.MWorkflow.start(MWorkflow.java:736)
	at org.compiere.wf.MWorkflow.startWait(MWorkflow.java:798)

Contexto adicional

Esto sucede cuando se tiene habilitado el validador de modelo org.compiere.asset.model.validator.FixedAsset

Referencia: adempiere#4238

[Bug Report] Mal uso de transacción dentro de un proceso

Bug report

En el proceso de Setup Storage for Files System cuando se exportan los adjuntos no está tomando la transacción creada para cada adjunto, en su lugar toma la del proceso.

int attachmentReferenceId = DB.getSQLValue(get_TrxName(), "SELECT AD_AttachmentReference_ID "
											+ "FROM AD_AttachmentReference "
											+ "WHERE AD_Attachment_ID = ? "
											+ "AND FileName = ? "
											+ "AND FileHandler_ID = ?", attachmentPair.getKey(), entry.getName(), getAppSupportId());
									if(attachmentReferenceId < 0) {
										try {
											AttachmentUtil.getInstance(getCtx())
												.withData(entry.getData())
												.withAttachmentId(attachmentPair.getKey())
												.withFileName(entry.getName())
												.withDescription(Msg.getMsg(getCtx(), "CreatedFromSetupExternalStorage"))
												.withFileHandlerId(getFileHandlerId())
												.saveAttachment();
											addLog(entry.getName() + ": @Ok@");
											processed.incrementAndGet();
										} catch (Exception e) {
											log.warning("Error: " + e.getLocalizedMessage());
											addLog("@ErrorProcessingFile@ " + entry.getName() + ": " + e.getLocalizedMessage());
											errors.incrementAndGet();
										}
									} else {
										addLog(entry.getName() + ": @Ignored@");
										ignored.incrementAndGet();
									}
								}

En el siguiente fragmento debería usar la variable trxName en lugar del método get_TrxName()

int attachmentReferenceId = DB.getSQLValue(get_TrxName(), 

Steps to reproduce

  1. Vaya a System Admin -> General Rules -> Setup Storage for Files System

Screenshot or Gif

Link to minimal reproduction

Expected behavior

Cuando Se ejecuta el proceso en paraleo no debería tomar en cuenta los archivos que ya se movieron.

Other relevant information

  • Your OS:
  • Java version:
  • ADempiere version:
  • Browser [e.g. chrome, safari]
  • Browser Version [e.g. 22]
  • DB Provider:
  • DB version:

Additional context

Add any other context about the problem here.
adempiere#4243

[Bug Report] Error con tipo de documento al Crear Requisición

Error

Se realiza una requisición de compras, y luego se crea la orden de compra desde el SB Generar orden de compra desde línea de la requisición, se selecciona el tipo de documento: Orden de Compra Nacional en la parte inferior, al crearse la orden se crea con el tipo de documento Orden de Compra Nacional, pero con el correlativo de OCI-XX, es decir, está tomando la secuencia del tipo de documento predeterminado.

Paso a Paso

  • Vaya al SB Generafr orden de compra desde línea de la requisición-Parámetros para la búsqueda:
    • Organización: Nombre de Organización
    • Fecha Requerida: 28/08/2023 hasta 28/08/2023
      -Seleccionar la línea de la requisición RCN-7
      -Información a llenar en la parte inferior:
      -Tipo de Documento: Orden de Compra Nacional
      -Seleccione el check de ok
  • Mire el error (Se genera la orden de compra con la secuencia de OCI)

Comportamiento Esperado

Que se genere la secuencia de la orden de compra según tenga configurado el documento que se selecciona en el SB.

Contexto Adicional

Esto sucede cuando se selecciona un tipo de documento en el Smart Browser, si no se selecciona funciona correctamente
adempiere#4181

[Bug Report] Uso de Colas basado en concurrencia

Reporte de Error

Cuando se usa el nuevo manejador de colas en ambientes multi-usuarios y de producción, se mezclan los datos de unos con otros, esto debido a que se definió una clase del tipo singleton

Steps to reproduce

  1. Habilite el uso de colas para envío de correos
  2. Con dos o más usuarios a la vez intente enviar varios correos
  3. Se generan errores del tipo NPE por referencias cambiadas

[Feature Request] Reporte de Estado de Cuenta por dimensiones contables

Feature request

No existe forma de generar un estado de cuentas por dimensiones contables en ADempiere, esto trae mucho problema si se desea aumarizar por columnas como Socio de Negocio, Producto u otra dimensión contable

Describe the solution you'd like

Un simple cambio en en el core para que permita cargar árboles en función de su dimensión contable.

Describe alternatives you've considered

Despúes se podrán agregar cambios al estado de cuentas para que lo haga de manera correcta

Additional context

Ésto sólo agrega la funcionalidad para cargar la consulta de árboles con una clausula where distinta.

[Bug Report] Error con balanceo de nómina

Bug report

Cuando se está contabilizando una nómina y se tiene una diferencia negativa se genera un error de balanceo.

Steps to reproduce

  1. Genere una Nómina: Debe tener más deducciones que asignaciones contabilizadas
  2. Complete la Nómina
  3. Verifique el botón de completar

Screenshot or Gif

fd5b2665-32c2-4b78-b43f-08c16f7ac93a

Expected behavior

Por lo general al contabilizar un documento de nómina debe llevarlo a la cuenta de balanceo si hay diferencia.

Aquí hay un problema porque está comparando valores absolutos:

if (totalDebit.abs().compareTo(totalCredit.abs()) > 0) {
  regTotal = fact.createLine(null, acct, getC_Currency_ID(), null, totalDebit.subtract(totalCredit));
} else {
  regTotal = fact.createLine(null, acct, getC_Currency_ID(), totalCredit.abs().subtract(totalDebit.abs()), null);
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.