Formula para ajuste de inventario

Hola! como estan?
Bueno, el tema es el siguiente, estoy haciendo un control de stock con la posibilidad de hacer ajustes manuales de inventario, o sea, hay ingresos de mercaderia (tabla CORTE), hay egresos de mercaderia [tabla PEDIDOS_DETALLE) Y tengo una tabla que se llama MODELOS POR PRODUCTO donde cada producto tiene una columna que se llama STOCK DISPONIBLE, donde deberia reflejarse el stock real, y otra columna que se llama INVENTARIO CONTADO donde, si el recuento manual de la mercaderia no coincide con el stock de ingresos y egresos, se puede ingresar a la edicion de ese producto y poner de forma manual la cantidad contada, esa columna tiene aparejada otra que guarda automaticamente el dia y la hora que se modifico (ULTIMO RECUENTO) y otra que guarda la cantidad del ultimo recuento (ULTIMO AJUSTE).
Lo que une a todas estas tablas es el EAN (Key), que es el codigo de barra unico para cada producto, modelo y variante de color.

Ahora, aca viene la parte complicada, STOCK DISPONIBLE deberia mostrar el stock real, ingreso-egreso, pero, si INVENTARIO CONTADO tiene otro numero, deberia respetar ese. Esto se resolveria facil con un con algo tipo IF(ISBLANK....), pero lo que pasa es que, si inventario contado queda con el numero que se puso de forma manual guardado en esa celda, la formula siempre vuelve a ese numero, si automatizo que esa celda vuelva a valor cero, obvimente deja de tener en cuenta ese valor y hace ingreso - egreso.

Y lo que necesito que haga es que si hay un ajuste manual, tome ese valor como base para seguir sumando ingresos y restando egresos.
Entonces, la forma que encontre es, aprovechando las fechas de todas las tablas y de ULTIMO RECUENTO, hice un bot que, cuando se modifica el valor de INVENTARIO CONTADO, copia ese valor a ULTIMO AJUSTE y despues vuelve INVENTARIO CONTADO a cero.
Y a STOCK DISPONIBLE le arme la siguiente formula:

[ULTIMO AJUSTE]
+ (SUM(SELECT(CORTE[PRIMERA], AND([MODELO] = [_THISROW].[EAN DUX], [FECHA] > [_THISROW].[ULTIMO RECUENTO])))
- SUM(SELECT(PEDIDOS_DETALLE[CANTIDAD SEPARADO], AND([EAN] = [_THISROW].[EAN DUX], [FECHA] > [_THISROW].[ULTIMO RECUENTO]))))

*Aclaracion EAN, EAN DUX y MODELO son todas columnas donde esta el KEY

Esto deberia hacer que tome el valor de ULTIMO AJUSTE, y despues siga sumando los ingresos y egresos a partir de ese valor y de esa fecha de cada modelo en particular.
Lo que me esta pasando es que hasta la partde a poner el valor manual vamos bien, lo pongo y lo actualiza en stock disponible, pero cuando vuelve a ingresar mercaderia de ese EAN no la suma.
Alguno ve algun erro en la formula, en la logica o se le ocurre una solucion mas facil?

Aguardo respuestas y buenas ideas!! 🙂 se me esta prendiendo fuego el cerebro para resolver esto jajaja
Saludos!

0 1 245
1 REPLY 1

Te aconsejo que no dejes ninguna opción de tipear manualmente el stock. Deja los cálculos solo a AppSheet y si hubiese que hacer ajustes, que se creen filas de entrada o salida para hacer dicho ajuste.

Top Labels in this Space