v. 20260419_2034

Validador Kardex NCRE

Sube un kardex CSV, ejecuta las reglas de negocio aprobadas y descarga el archivo completado con un resumen de los cambios. La app trata los documentos TIV igual que COM, pero cuando el NPR nace después de un TIV reconstruye el bloque con el stock vigente por agencia. La primera NPR del kardex se calcula como Saldo de la NPR x Valor Unit NCRE Prev; si la primera NPR insertada nace desde Saldo Inicial, se calcula con Saldo Inicial x Valor Unit NCRE Prev. Las demás NPR insertadas o corregidas después de una compra se calculan como Ingresos de la compra x Valor Unit NCRE Prev. Después de una COM/TIV, la app inserta un NPR automático solo si en los movimientos siguientes aparece una FAV o DFV antes de la próxima compra, y nunca reabre el ciclo desde una compra si el bloque anterior ya cerró con NDP. En items con varios documentos NPR, el primer cierre respeta el documento base con menor Unidades NCRE Prev; luego las reinserciones automáticas continúan solo con los documentos que todavía quedan pendientes. Antes de cada FAV o DFV, la app inserta un NPR unificado con Saldo antes del documento x Valor Unit NCRE Prev; cuando antes hubo un NDP, esa reinserción solo se hace si desde ese NDP ya hubo al menos un TEV. Si la siguiente operación también es una factura, no vuelve a insertar otro NPR. Si una fila AJE está seguida por una FAV o COM, la app inserta una NPR después del ajuste y calcula Costo Previsto = Saldo x Valor Unit NCRE Prev. El Saldo del NPR se copia de la fila anterior cuando el NPR es agregado por la app, salvo en el caso inicial donde toma el saldo inicial. Además, antes de cada TEV agrega un NDP usando el Saldo de la fila anterior por el Valor Unit NCRE Prev vigente, excepto cuando el TEV ya viene inmediatamente después de un bloque NPR o cuando después del último NDP ya no existen más FAV o DFV para ese item. Antes de cada AJE también inserta un NDP usando el Saldo anterior, con la fecha del AJE y una hora de 5 segundos antes. Si hay varias filas TEV consecutivas, crea un solo NDP unificado antes del primer TEV. Todo NDP generado toma la fecha y hora de referencia según el documento, respetando la separación de 5 segundos. También valida desde el inicio del item el acumulado FAV - DFV contra Unidades NCRE Prev; cuando ese límite se alcanza o se sobrepasa en items compatibles, inserta un NDP final ajustando el saldo por el exceso y ya no genera más líneas para ese item. Si después de un NDP ya no existen más FAV o DFV futuras en el item, la app no vuelve a insertar ni conserva líneas automáticas NPR/NDP posteriores. En items con varias notas previstas, la app conserva la estructura multi-documento existente y evita renumerar, completar o cerrar bloques NDP cuando la relación entre documentos es ambigua.

Descargar Resultado

Reglas Aplicadas

  • Se valida que los bloques NPR y la columna Total NCRE Prev queden consistentes.
  • Antes de la primera FAV de un ciclo se inserta un NPR faltante cuando existe saldo pendiente.
  • Los documentos TIV se tratan igual que COM y pueden abrir un nuevo bloque NPR.
  • La primera NPR del kardex se corrige o genera como Saldo de la NPR x Valor Unit NCRE Prev. Si la primera NPR insertada nace desde Saldo Inicial, se usa Saldo Inicial x Valor Unit NCRE Prev. Las demás NPR después de una compra usan Ingresos x Valor Unit NCRE Prev.
  • Después de una COM o TIV, se inserta un NPR automático solo si más adelante aparece una FAV o DFV antes de la próxima compra. Cuando el disparador es TIV, el bloque se reconstruye con el stock vigente por agencia. Si el ciclo anterior ya cerró con NDP, la compra no reabre un NPR.
  • En items con varios documentos NPR, el primer cierre respeta el documento base con menor Unidades NCRE Prev; después, las reinserciones automáticas continúan solo con los documentos que siguen pendientes.
  • Antes de toda FAV o DFV se inserta un NPR unificado con Saldo antes del documento x Valor Unit NCRE Prev. Si antes hubo un NDP, esa reinserción solo aplica cuando desde ese NDP ya hubo al menos un TEV. Si la siguiente operación también es una factura, no se inserta un NPR nuevo entre ellas.
  • Cuando se agrega un NPR, la columna Saldo copia el valor de la fila anterior.
  • Antes de toda TEV se agrega un NDP con el Saldo de la fila anterior por el Valor Unit NCRE Prev vigente, salvo cuando ese TEV ya viene inmediatamente después de un bloque NPR.
  • Antes de todo AJE se agrega un NDP con el Saldo de la fila anterior por el Valor Unit NCRE Prev vigente, usando la fecha del AJE y una hora de 5 segundos antes.
  • Si una fila AJE está seguida por FAV o COM, se inserta un NPR y se calcula Costo Previsto = Saldo x Valor Unit NCRE Prev.
  • Si hay varias filas TEV consecutivas, se crea un solo NDP unificado antes del primer TEV.
  • Toda NDP generada toma la Fecha y Hora de la fila anterior, y en la hora suma 5 segundos.
  • Si después de un NDP ya no existen más FAV o DFV futuras en el item, la app no vuelve a insertar ni conserva líneas automáticas NPR/NDP posteriores.
  • Se valida el acumulado de FAV - DFV frente a Unidades NCRE Prev; cuando el límite se alcanza o se sobrepasa en items compatibles, se genera un NDP final ajustando el saldo por el exceso y el item deja de generar más líneas. Si Unidades NCRE Prev = 0, se omite ese acumulado y el último movimiento del item se fuerza como NDP.
  • Al cierre de mes se agrega un NDP final por el saldo pendiente cuando corresponde.
  • En items con varias notas previstas, la app conserva la estructura multi-documento existente y evita completar o renumerar bloques NDP cuando la relación entre documentos es ambigua.
  • Se eliminan bloques NDP inválidos si no existe un NPR vigente, si hubo movimientos posteriores sin nuevo NPR o si el bloque excede el máximo permitido por la última NPR.
Archivo original -
Archivo generado -
Codificación detectada -

Conclusiones y cambios