Bloquear selección de stock del almacén 302 al inmovilizar lotes
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7e0a646853
commit
b02528a795
1 file changed
+15
-4
@@ -177,7 +177,13 @@ export default function InmovilizarLotesView() {
|
||||
}
|
||||
};
|
||||
|
||||
// El stock que ya está en el almacén de inmovilizados (302) no se puede
|
||||
// volver a inmovilizar, así que esa fila no es seleccionable.
|
||||
const isLockedRow = (row: BatchWarehouseStock) =>
|
||||
row.WarehouseCode === DEFAULT_TO_WAREHOUSE.code;
|
||||
|
||||
const toggleRow = (row: BatchWarehouseStock) => {
|
||||
if (isLockedRow(row)) return;
|
||||
const key = rowKey(row);
|
||||
setSelections((prev) => {
|
||||
if (key in prev) {
|
||||
@@ -378,22 +384,27 @@ export default function InmovilizarLotesView() {
|
||||
{group.rows.map((w) => {
|
||||
const key = rowKey(w);
|
||||
const isChecked = key in selections;
|
||||
const isLocked = isLockedRow(w);
|
||||
const rawQuantity = selections[key] ?? "";
|
||||
const rowQuantityError = isChecked ? quantityErrorFor(w, rawQuantity) : "";
|
||||
return (
|
||||
<tr
|
||||
key={key}
|
||||
onClick={() => toggleRow(w)}
|
||||
className={`cursor-pointer border-b border-[var(--color-border-light)] ${
|
||||
isChecked
|
||||
? "bg-[var(--color-primary-active)]"
|
||||
: "hover:bg-[var(--color-sidebar-hover)]"
|
||||
title={isLocked ? "Stock ya inmovilizado (almacén 302)" : undefined}
|
||||
className={`border-b border-[var(--color-border-light)] ${
|
||||
isLocked
|
||||
? "cursor-not-allowed opacity-50"
|
||||
: isChecked
|
||||
? "cursor-pointer bg-[var(--color-primary-active)]"
|
||||
: "cursor-pointer hover:bg-[var(--color-sidebar-hover)]"
|
||||
}`}
|
||||
>
|
||||
<td className="py-1.5 px-2" onClick={(e) => e.stopPropagation()}>
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={isChecked}
|
||||
disabled={isLocked}
|
||||
onChange={() => toggleRow(w)}
|
||||
/>
|
||||
</td>
|
||||
|
||||
Reference in new issue
Block a user