Error en recalcular existencia

Holaaaaaaa, yo por aqui de nuevo.

Quisiera saber si a ustedes les ha pasado algo como esto:

En servicio se crean las ordenes/entrega de acuerdo a los pedidos que llegan del cliente X entonces, cuando hacen la entrega y los librajes tiene cifras decimales pide que se recalcule pero cuando se hace no lo asume. Si la cantidad que se coloca en la cantidad es de números enteros no da este error.

(1) Debe volver a recalcular existencias. Articulo:

A lo que yo entendi que el inconveniente podian estar en los decimales del sistema, yendome por Gestion >>> Inicializacion del sistema >> Parametrizaciones Generales >> Visualizar.
vi que todo estaba bien.

Entonces realizamos la prueba con otros Productos. La prueba pasa correctamente aun teniendo decimales en el pesaje.
Asi que el error solo lo lanza con 3 productos especificos.

Yo ya verifique uno por uno los productos comparando la configuracion con los que estan correctos, y no veo la diferencia.

De verdad que estoy ya calvo, de tanto ver la pantalla.

Auxilio por favor.

Saludos,

Hola Ing.

Me suena a bloqueo en el Transaction Notification, ¿Ya revisaste que no tengas algún bloqueo al respecto?

Saludos.

Por cierto, cuando se trate de mensajes de error, procura teclear dicho mensaje, así facilitas que alguien con el mismo error pueda ser direccionado a este tema.

2 Me gusta

Disculpa Gera y gracias por la siempre disposicion, Ya corregi lo del post.

Lo que mencionas del Transaction Notification, lo estuve viendo pero no encontre donde asociar por producto/item, porque como mencione, para unos productos funciona correctamente, aun trabajando con decimales.

Ejemplo esto es lo que tengo en el TN:

DECLARE @totalitement varchar(10)
select @totalitement = a.itemcode 
  FROM (select t1.itemcode , COUNT(*)[cantidad] 
          FROM dln1 T1 INNER JOIN OITM T2 ON T1.ITEMCODE = T2.ITEMCODE
	     where t1.DocEntry = @list_of_cols_val_tab_del and 
		 	  (t1.Quantity * t1.PriceBefDi )  <> t1.U_TOTAL       
      group by T1.[ItemCode]
        having COUNT (*) >0
        ) as a

if (@totalitement is not null)
  		begin
			set @error = '1'
			set @error_message = 'Debe volver a recalcular existencias. Artículo: ' + @totalitement

		End

Ves algo fuera de lo normal?

Saludos.

Según quien programó el bloqueo ¿Que es lo que bloquea?

Si el TN está bloqueando 3 artículos es porque esos 3 artículos cumplen con las condiciones del bloqueo.

¿Qué es lo que almacenas en el campo U_Total?

Efectivamente creo que el problema son los decimales, imagino que la multiplicación de t1.Quantity * t1.PriceBefDi en esos artículos siempre es diferente a lo que almacenas en el campo U_TOTAL

1 me gusta

Hola Gera, quien programo no me supo dar informacion sobre este proceso de bloqueo.

En el U_TOTAL se almacena la cantidad del producto multiplicado por el precio del mismo.

Me puse a verificar el transaction notification completo. Hoy parezco zombie. Pero encontre algo que me llamo la atencion y es que el Bloqueo tanto mencionado, estaba ejecutandose dos veces, la misma cuestion dandose pelea entre ellas ´es lo que pense´. Pues tome la Base de datos y restaure una en pruebas para hacer el cambio. Lo que hice fue “Comentar”, el segundo bloque de comandos y guarde mi Store Procedure.

Hice la prueba realizando el pedido>>> convirtiendolo en entrega >>> Luego en factura… y con decimales y todo, que crees paso de una!

Quiero que me digas @Gera_Mendez, fue correcto mi procedimiento? siento que ha sido muy facil y tengo miedo de arruinarla realmente.

Gracias infinitas por todo.

Saludos.

Hay varias cosas que no me “cuadran”…

¿Para que tener un campo de usuario con la multiplicación del precio unitario por la cantidad si tienes el campo LineTotal?

Sobre los dos bloqueos, tal vez en su momento se dieron cuenta de esta problemática o “mal funcionamiento” y crearon un nuevo bloque con el código corregido (olvidando eliminar el anterior) y sin querer acertaste eliminando el bloque mal programado, ese es el único escenario que se me ocurre.

No dudes en probar que el bloque del TN funciona para la finalidad que fue programado y mejor aun, si no sirve de nada… elimínalo, y de paso revisa todo el TN en búsqueda de código obsoleto.

Saludos Ing.

1 me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.