ERP - Almacén - Explicación de errores de stock

Creado por Aitana Ferrandis García, Modificado el Mar, 15 Oct a 12:43 P. M. por Adolfo Gonzalvo B

Voy a tratar de explicarte los errores y cómo solucionarlos.


En primer lugar, como sabes, las tablas de stocks y movimientos han de estar cuadrados para que cuando se realizan inventarios, cierres y valoraciones los datos sean reales y el programa pueda realizar los cálculos correctamente.

Las tablas son:


Articulos_Stock, Articulos_Stock_Ubicaciones, Articulos_Almacenes_Lotes (solo si el artículo lleva lotes), Articulos_Nseries (solo si el artículo lleva números de serie).

  

Además, estan las tablas Almacen_Hist_Mov y  Almacen_Hist_Mov_NSeries (solo si el artículo lleva series, en cuyo caso ambas tablas están enlazadas a través de IdDoc e IdDocmovAlm respectivamente)

 

Las cantidades que aparecen en la primera (Almacen_Hist_Mov ) deben cuadrar con el sumatorio, según el tipo de movimiento (entrada o salida), de los registros que aparecen en la segunda (Almacen_Hist_Mov_NSeries).

 

La cuestión es que todas las tablas deben proporcionar la misma información coherente del artículo. Si la información es incoherente y cada tabla nos dice una cosa, la regularización de inventarios no hará que las tablas cuadren. Y la valoración de inventarios también nos mostrará errores.

 

A continuación te explico las formas de proceder.

 

Forma de proceder

 

Lanzar ZZZ_CompruebaStocks. Procedimiento el cual devuelve todos los errores existentes actualmente en los stocks.

Para que sea mas fácil, se debe ir en los artículos uno a uno lanzando el procedimiento:


       ZZZ_CompruebaStocks null,4,'Articulo'   --parámetros: idalmacen, numdecimales, idarticulo


Se puede ir editando la stored ZZZ_CompruebaStocks y buscar la descripción de error. 

A continuación, comprobar la consulta que se ejecuta para lanzar ese error y ejecutarla fuera, adaptándola al artículo y almacén en cuestión.

 


 Explicación errores:

 

T1_DESCUADRE_MOVS_STOCKS:  el sumatorio de los registros de Almacen_Hist_Mov para el artículo y almacén (SUM(Cantidad*Efecto)) difiere del Stock de Articulos_Stock.

 

T2_DESCUADRE_MOVS_STOCKS_UBICACIONES:  el sumatorio de los registros de Almacen_Hist_Mov  para el artículo  y almacén (SUM(Cantidad*Efecto)) difiere del Stock de Articulos_Stock_Ubicaciones.

 

S5 Descuadres de Stock de series con Articulos_Stock_Ubicaciones:  el sumatorio de las cantidades de Articulos_NSeries para el articulo y almacén (en estado 1,2,4) da diferente del Stock de Articulos_Stock_Ubicaciones.

 

S6 Descuadres de Stock de series con Articulos_Stock: el sumatorio de las cantidades de Articulos_NSeries para el articulo y almacén (en estado 1,2,4) difiere del Stock de Articulos_Stock.

 

S7 Movimientos que no cuadran con las cantidades de las series asociadas a él: la cantidad de Almacen_Hist_Mov  para el articulo y almacén difiere del sumatorio de la cantidad de Almacen_Hist_Mov_NSeries.

 

S.8 MOVIMIENTOS DE SERIES VS ARTICULOS_NSERIES: el sumatorio de las cantidades de Almacen_Hist_Mov_NSeries para el articulo y almacén da diferente de la cantidad especificada en Articulos_NSeries.

 

S9 Movimientos de nº de series sin su correspondiente movimiento en Almacen_Hist_Mov_NSeries: hay registros en Almacen_Hist_Mov  para ese artículo, que lleva series y falta el registro correspondiente en Almacen_Hist_Mov_NSeries.

 

 

T3_DESCUADRE_MOVS_STOCKS_Lotes:  el sumatorio de la cantidad de Almacen_Hist_Mov  para el artículo y almacén da diferente del sumatorio de unidades de Articulos_Almacenes_Lotes (hay que agrupar por lotes).

 

T4_DESCUADRE_MOVS_STOCKS_Propiedades: el sumatorio de la cantidad de Almacen_Hist_Mov  para el articulo y almacén da diferente del del sumatorio de unidades de Articulos_Almacenes_Lotes  (hay que agrupar por lotes y propiedades).

 

T5_Movimientos SIN lotes, de artículos CON lotes: Hay movimientos que no llevan lotes para el articulo y almacén  y sin embargo el articulo esta marcado para trabajar con lotes.

 

T6_Movimientos CON lotes, de artículos SIN lotes: Hay movimientos que  llevan lotes para el artículo y almacén  y sin embargo el artículo no está marcado para trabajar con lotes.

 

T7_Movimientos SIN lotepropiedades, de artículos CON propiedades y SIN lotes: Hay movimientos que no llevan propiedades para el articulo y almacén  y sin embargo el artículo está marcado para trabajar con propiedades

 

T8_Movimientos CON lotes, de artículos SIN propiedades SIN lotes: Hay movimientos que llevan propiedades para el articulo y almacén y sin embargo el articulo no esta marcado para trabajar con propiedades

 

T9_Diferencias Articulos_Stock con Articulos_Almacenes_lotes:  el Stock de Articulos_Stock para el articulo y almacén da diferente que el sumatorio de unidades de Articulos_Almacenes_Lotes 

 

T10_Diferencias entre Articulos_Stock y Articulos_Stock_Ubicaciones:  el Stock de Articulos_Stock para el articulo y almacén da diferente que el sumatorio de stock de Stock de Articulos_Stock_Ubicaciones

 

T11_Diferencias entre Articulos_Stock_Ubicaciones y Articulos_Almacenes_Lotes: el Stock de Articulos_Stock_Ubicaciones para el articulo y almacén da diferente del sumatorio de las unidades de Articulos_Almacenes_Lotes  (hay que agrupar por ubicación)

 

T12_Articulos Sin lote propiedades de artículos con propiedades: existen registros sin lotes y con propiedades en Articulos_Almacenes_Lotes para el articulo y almacén, que no tiene puesto el LotePropiedad (no trabaja con lotes)

 

T13_Articulos con lote  de artículos sin propiedades ni lotes: existen registros sin lotes y sin propiedades en Articulos_Almacenes_Lotes para el articulo y almacén, que tienen puesto un lote.

 

S0 Articulos_Nseries sin almacén o ubicación informado: existen registros en Articulos_NSeries para el articulo que no tienen relleno el almacen o la ubicacion

 

S1 Artículos con series que no tienen series: existen registros en Articulos_NSeries para el articulo y el articulo no trabaja con series

 

S2. Movimientos con series de artículos que no tienen series: existen registros en Almacen_Hist_Mov_NSeries para el articulo y el articulo no trabaja con series

 

S3.Numeros de serie en almacén sin movimientos: existen registros en Articulos_NSeries para ese articulo de series  en circulacion  y no hay movimientos de almacén 

 

S4 Descuadres de Stock de series con Articulos_Almacenes_Lotes: el sumatorio de la cantidad de Articulos_NSeries para el para el articulo y almacén, da diferente del sumatorio de unidades de Articulos_Almacenes_Lotes (agrupando por lote y ubicación).

 

 

Hay muchas formas de proceder, se pueden por ejemplo insertar los movimientos faltantes o borrar los sobrantes, eliminar movimientos requerirá desactivar triggers.

Hay casos en que un nº de serie está enlazado a un artículo en articulos_nseries y sin embargo los movimientos están con otro articulo (caso del articulo 0532018)

En los movimientos de almacén tenemos el objeto e iddocobjeto que los generó, podemos ir a las ubicaciones de los objetos y ver los lotes y los nº de serie, nos puede servir para tomar decisiones.

 

 

 

Ejemplo de arreglo de 2 de los errores de   '0532018':

 

begin tran

 

alter table articulos_nseries disable trigger Articulos_NSeries_UTrig

update articulos_nseries set idarticulo= '99991303002' where nserie='180651-2'

alter table articulos_nseries enable trigger Articulos_NSeries_UTrig

 

exec zzz_compruebastocks null,4,'0532018'

 

rollback tran 

 

 

 

 

 

¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo