feat: suporte a pecas e OFs sem componentes cadastrados no corte e solda
This commit is contained in:
@@ -78,21 +78,21 @@ export const calcularSaldoProcessoPeca = (
|
||||
let qtdDisponivelParaEntrar = Number(peca.quantidade) || 0;
|
||||
let motivoBloqueio: string | null = null;
|
||||
|
||||
const kitInfo = mapaKits?.get(peca.id);
|
||||
const temControleComponentes = Boolean(kitInfo && kitInfo.tem_componentes && (kitInfo.componentes?.length || 0) > 0);
|
||||
|
||||
// REGRA 1: Peças sem montagem (S/M) não passam por Solda
|
||||
if (ehSemMontagem && ehSolda) {
|
||||
qtdDisponivelParaEntrar = 0;
|
||||
motivoBloqueio = 'Peça S/M (Pula Solda - vai direto para Pintura)';
|
||||
} else if (ehSolda && !ehSemMontagem && mapaKits?.has(peca.id)) {
|
||||
} else if (ehSolda && !ehSemMontagem && temControleComponentes && kitInfo) {
|
||||
// REGRA 1.1: REGRA DO KIT COMPLETO DE CORTE PARA A SOLDA!
|
||||
// Apenas peças com componentes 100% cortados (em lotes de kits inteiros) são liberadas para Solda!
|
||||
const kitInfo = mapaKits.get(peca.id)!;
|
||||
if (kitInfo.tem_componentes) {
|
||||
qtdDisponivelParaEntrar = kitInfo.kits_completos_cortados;
|
||||
if (kitInfo.kits_completos_cortados === 0) {
|
||||
motivoBloqueio = kitInfo.motivo_bloqueio_solda || 'Aguardando corte completo dos kits';
|
||||
} else if (kitInfo.kits_completos_cortados <= jaProduzidoAtual) {
|
||||
motivoBloqueio = `Todos os ${kitInfo.kits_completos_cortados} kits cortados já foram soldados (${jaProduzidoAtual}/${peca.quantidade})`;
|
||||
}
|
||||
qtdDisponivelParaEntrar = kitInfo.kits_completos_cortados;
|
||||
if (kitInfo.kits_completos_cortados === 0) {
|
||||
motivoBloqueio = kitInfo.motivo_bloqueio_solda || 'Aguardando corte completo dos kits';
|
||||
} else if (kitInfo.kits_completos_cortados <= jaProduzidoAtual) {
|
||||
motivoBloqueio = `Todos os ${kitInfo.kits_completos_cortados} kits cortados já foram soldados (${jaProduzidoAtual}/${peca.quantidade})`;
|
||||
}
|
||||
} else if (indexAtual > 0) {
|
||||
// REGRA 2: Encontrar processo anterior válido
|
||||
@@ -1217,7 +1217,7 @@ export const SmartProducaoFlow: React.FC<SmartProducaoFlowProps> = ({
|
||||
fase={faseSelecionada}
|
||||
onSelectPecaParaApontar={(pecaKit) => {
|
||||
const ehProcCorte = processoSelecionado?.id === procCorteId;
|
||||
if (ehProcCorte && pecaKit.tem_componentes) {
|
||||
if (ehProcCorte && pecaKit.tem_componentes && pecaKit.componentes.length > 0) {
|
||||
setPecaParaCorteModal(pecaKit);
|
||||
} else {
|
||||
const pItem = pecasComSaldo.find((p) => p.id === pecaKit.peca_id);
|
||||
|
||||
Reference in New Issue
Block a user