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) => {
|
const toggleRow = (row: BatchWarehouseStock) => {
|
||||||
|
if (isLockedRow(row)) return;
|
||||||
const key = rowKey(row);
|
const key = rowKey(row);
|
||||||
setSelections((prev) => {
|
setSelections((prev) => {
|
||||||
if (key in prev) {
|
if (key in prev) {
|
||||||
@@ -378,22 +384,27 @@ export default function InmovilizarLotesView() {
|
|||||||
{group.rows.map((w) => {
|
{group.rows.map((w) => {
|
||||||
const key = rowKey(w);
|
const key = rowKey(w);
|
||||||
const isChecked = key in selections;
|
const isChecked = key in selections;
|
||||||
|
const isLocked = isLockedRow(w);
|
||||||
const rawQuantity = selections[key] ?? "";
|
const rawQuantity = selections[key] ?? "";
|
||||||
const rowQuantityError = isChecked ? quantityErrorFor(w, rawQuantity) : "";
|
const rowQuantityError = isChecked ? quantityErrorFor(w, rawQuantity) : "";
|
||||||
return (
|
return (
|
||||||
<tr
|
<tr
|
||||||
key={key}
|
key={key}
|
||||||
onClick={() => toggleRow(w)}
|
onClick={() => toggleRow(w)}
|
||||||
className={`cursor-pointer border-b border-[var(--color-border-light)] ${
|
title={isLocked ? "Stock ya inmovilizado (almacén 302)" : undefined}
|
||||||
isChecked
|
className={`border-b border-[var(--color-border-light)] ${
|
||||||
? "bg-[var(--color-primary-active)]"
|
isLocked
|
||||||
: "hover:bg-[var(--color-sidebar-hover)]"
|
? "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()}>
|
<td className="py-1.5 px-2" onClick={(e) => e.stopPropagation()}>
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
checked={isChecked}
|
checked={isChecked}
|
||||||
|
disabled={isLocked}
|
||||||
onChange={() => toggleRow(w)}
|
onChange={() => toggleRow(w)}
|
||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
Reference in new issue
Block a user