Skip to content

0033. Raleos y cosecha final: una sola entidad Harvest con type

Estado

Aceptada

Contexto

Raleos y cosecha final comparten prácticamente todos los campos y fórmulas derivadas; modelarlos como entidades separadas duplicaría lógica.

Decisión

Una entidad Harvest con campo type (raleo | cosecha_final), asociada al ciclo. type es inmutable en edición. Derivados: animales = lbs × 454 ÷ pesoProm; %sob = animales ÷ cantidadSembrada × 100 (null si el ciclo no tiene siembra); díasCultivo = fechaCosecha − fechaSiembra. La cosecha final cierra y bloquea el ciclo: lo pone en cerrada (libera la piscina para nueva siembra), permite una sola por ciclo, y bloquea nuevos registros sobre ese ciclo. Borrar la cosecha final reabre el ciclo (cerrada → activa), salvo que la piscina ya tenga otro ciclo activa (→ 409). Todo en una transacción Prisma.

Consecuencias

Menos código y un histórico unificado de raleos/cosecha por ciclo. No se registra destino de venta (confidencial: pertenece a Planta de Procesamiento / Exportaciones).