fix: status de conclusao estrito e badges de aguardando anterior no Modo Smart
This commit is contained in:
@@ -792,7 +792,8 @@ export const SmartProducaoFlow: React.FC<SmartProducaoFlowProps> = ({
|
|||||||
pecasComSaldo.map((item) => {
|
pecasComSaldo.map((item) => {
|
||||||
const pendenciasItem = pecasPendentesMap.get(item.id) || [];
|
const pendenciasItem = pecasPendentesMap.get(item.id) || [];
|
||||||
const temPendencia = pendenciasItem.length > 0;
|
const temPendencia = pendenciasItem.length > 0;
|
||||||
const concluida = item.saldo <= 0;
|
const concluida = item.jaProduzido >= item.quantidade;
|
||||||
|
const aguardandoAnterior = !concluida && item.saldo <= 0;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
@@ -802,6 +803,8 @@ export const SmartProducaoFlow: React.FC<SmartProducaoFlowProps> = ({
|
|||||||
? 'animate-pulse-red-fast bg-red-50/70 dark:bg-red-950/40 border-red-500 shadow-md shadow-red-500/20'
|
? 'animate-pulse-red-fast bg-red-50/70 dark:bg-red-950/40 border-red-500 shadow-md shadow-red-500/20'
|
||||||
: concluida
|
: concluida
|
||||||
? 'bg-slate-50 dark:bg-slate-900/60 border-slate-200 dark:border-slate-800 opacity-75'
|
? 'bg-slate-50 dark:bg-slate-900/60 border-slate-200 dark:border-slate-800 opacity-75'
|
||||||
|
: aguardandoAnterior
|
||||||
|
? 'bg-slate-50/70 dark:bg-slate-900/40 border-slate-200 dark:border-slate-800/80 opacity-60'
|
||||||
: 'bg-white dark:bg-slate-800/95 border-slate-200 dark:border-slate-700/90 hover:border-amber-400 dark:hover:border-amber-500/80'
|
: 'bg-white dark:bg-slate-800/95 border-slate-200 dark:border-slate-700/90 hover:border-amber-400 dark:hover:border-amber-500/80'
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
@@ -828,7 +831,7 @@ export const SmartProducaoFlow: React.FC<SmartProducaoFlowProps> = ({
|
|||||||
<div className="text-xs text-slate-600 dark:text-slate-300 mt-0.5 line-clamp-1">
|
<div className="text-xs text-slate-600 dark:text-slate-300 mt-0.5 line-clamp-1">
|
||||||
{item.descricao || 'Peça Estrutural'}
|
{item.descricao || 'Peça Estrutural'}
|
||||||
</div>
|
</div>
|
||||||
{item.motivoBloqueio && item.saldo === 0 && !concluida && (
|
{item.motivoBloqueio && aguardandoAnterior && (
|
||||||
<div className="text-[11px] text-amber-700 dark:text-amber-400/90 font-medium mt-1 flex items-center gap-1">
|
<div className="text-[11px] text-amber-700 dark:text-amber-400/90 font-medium mt-1 flex items-center gap-1">
|
||||||
<AlertTriangle className="h-3.5 w-3.5 shrink-0 text-amber-600 dark:text-amber-400" />
|
<AlertTriangle className="h-3.5 w-3.5 shrink-0 text-amber-600 dark:text-amber-400" />
|
||||||
<span>{item.motivoBloqueio}</span>
|
<span>{item.motivoBloqueio}</span>
|
||||||
@@ -871,8 +874,8 @@ export const SmartProducaoFlow: React.FC<SmartProducaoFlowProps> = ({
|
|||||||
Disponível: {item.saldo}
|
Disponível: {item.saldo}
|
||||||
</span>
|
</span>
|
||||||
) : (
|
) : (
|
||||||
<span className="inline-flex items-center gap-1 text-[11px] font-bold text-slate-600 dark:text-slate-400 px-2 py-0.5 rounded-full bg-slate-100 dark:bg-slate-800 border border-slate-300 dark:border-slate-700 mt-1">
|
<span className="inline-flex items-center gap-1 text-[11px] font-bold text-slate-600 dark:text-slate-400 px-2 py-0.5 rounded-full bg-slate-100 dark:bg-slate-800 border border-slate-300 dark:border-slate-700 mt-1" title={item.motivoBloqueio || 'Aguardando processo anterior'}>
|
||||||
Pendente ant.
|
{item.motivoBloqueio ? item.motivoBloqueio.slice(0, 22) : 'Aguardando anterior'}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
@@ -919,7 +922,7 @@ export const SmartProducaoFlow: React.FC<SmartProducaoFlowProps> = ({
|
|||||||
onClick={() => handleIniciarApontamentoPeca(item, item.saldo)}
|
onClick={() => handleIniciarApontamentoPeca(item, item.saldo)}
|
||||||
className={`sm:col-span-2 h-13 text-sm font-black rounded-xl uppercase tracking-wider transition-all active:scale-[0.98] ${
|
className={`sm:col-span-2 h-13 text-sm font-black rounded-xl uppercase tracking-wider transition-all active:scale-[0.98] ${
|
||||||
concluida
|
concluida
|
||||||
? 'bg-slate-100 text-slate-400 border border-slate-200 dark:bg-slate-800 dark:text-slate-500 dark:border-slate-700'
|
? 'bg-slate-100 text-slate-400 border border-slate-200 dark:bg-slate-800 dark:text-slate-500 dark:border-slate-700 cursor-not-allowed'
|
||||||
: item.saldo <= 0
|
: item.saldo <= 0
|
||||||
? 'bg-slate-100 text-slate-400 border border-slate-200 dark:bg-slate-800 dark:text-slate-400 dark:border-slate-700 cursor-not-allowed'
|
? 'bg-slate-100 text-slate-400 border border-slate-200 dark:bg-slate-800 dark:text-slate-400 dark:border-slate-700 cursor-not-allowed'
|
||||||
: 'bg-amber-500 hover:bg-amber-400 active:bg-amber-600 text-slate-950 shadow-md shadow-amber-900/20 dark:shadow-amber-950/30'
|
: 'bg-amber-500 hover:bg-amber-400 active:bg-amber-600 text-slate-950 shadow-md shadow-amber-900/20 dark:shadow-amber-950/30'
|
||||||
@@ -928,7 +931,7 @@ export const SmartProducaoFlow: React.FC<SmartProducaoFlowProps> = ({
|
|||||||
{concluida
|
{concluida
|
||||||
? 'Processo Concluído'
|
? 'Processo Concluído'
|
||||||
: item.saldo <= 0
|
: item.saldo <= 0
|
||||||
? item.motivoBloqueio || 'Indisponível neste processo'
|
? item.motivoBloqueio || 'Aguardando processo anterior'
|
||||||
: `DIGITAR / ESCOLHER QUANTIDADE`}
|
: `DIGITAR / ESCOLHER QUANTIDADE`}
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user