diff --git a/src/components/prioridades/PrioridadesPDFTemplate.tsx b/src/components/prioridades/PrioridadesPDFTemplate.tsx index 8f77a3e..6a2fa62 100644 --- a/src/components/prioridades/PrioridadesPDFTemplate.tsx +++ b/src/components/prioridades/PrioridadesPDFTemplate.tsx @@ -39,11 +39,11 @@ export const PrioridadesPDFTemplate: React.FC = ({ const getCoresPrioridade = (codigo: string) => { switch (codigo) { - case 'P1': return 'text-red-700 bg-red-100'; - case 'P2': return 'text-orange-700 bg-orange-100'; - case 'P3': return 'text-blue-700 bg-blue-100'; - case 'P4': return 'text-gray-700 bg-gray-200'; - default: return 'text-gray-700 bg-gray-200'; + case 'P1': return 'text-red-700 bg-red-100 border-red-300'; + case 'P2': return 'text-orange-700 bg-orange-100 border-orange-300'; + case 'P3': return 'text-blue-700 bg-blue-100 border-blue-300'; + case 'P4': return 'text-gray-700 bg-gray-200 border-gray-300'; + default: return 'text-gray-700 bg-gray-200 border-gray-300'; } }; @@ -54,7 +54,7 @@ export const PrioridadesPDFTemplate: React.FC = ({ const numBigBoxes = Math.floor(quantity / 5); const numSmallBoxes = quantity % 5; - // Quadrados grandes com "5" + // Quadrados com "5" for (let i = 0; i < numBigBoxes; i++) { boxes.push(
@@ -63,57 +63,150 @@ export const PrioridadesPDFTemplate: React.FC = ({ ); } - // Quadrados pequenos restantes + // Quadrados unitários restantes for (let i = 0; i < numSmallBoxes; i++) { boxes.push(
); } } else { - // Apenas quadrados pequenos + // Apenas quadrados unitários for (let i = 0; i < quantity; i++) { boxes.push(
); } } - return
{boxes}
; + return
{boxes}
; }; return (
- {/* Cabeçalho do Relatório */} -
-
-

Checklist de Produção

-

Formulário para apontamento da fabricação.

-
-
-

- Data de Emissão: {dataAtual} - {versaoAtual && ( - Rev. {versaoAtual.revisao} - )} -

-
-
- - {/* Informações da OF e Fase */} -
-
- {/* Coluna OF */} +
+ {/* Cabeçalho do Relatório */} +
-

Ordem de Fabricação (OF)

-

{ofNumber}

+

Checklist de Produção

+

Formulário para apontamento da fabricação.

- {/* Coluna Fase */} -
-

Fase

-

{etapaFase}

+
+

+ Data de Emissão: {dataAtual} + {versaoAtual && ( + Rev. {versaoAtual.revisao} + )} +

- {/* Coluna Processo */} -
-

PROCESSO

-
- {['Corte', 'Solda', 'Pintura', 'Expedição'].map((processo) => ( -
-
- {processo} -
- ))} +
+ + {/* Informações da OF e Fase */} +
+
+ {/* Coluna OF */} +
+

Ordem de Fabricação (OF)

+

{ofNumber}

-
-
-
- - {/* Legenda */} -
- Legenda: - Marca (Qtd) - (S/M) - = Sem Montagem, - (C/M) - = Com Montagem. Os quadrados -
- indicam o controle de peças fabricadas. -
- - {/* Itens por Prioridade */} -
- {['P1', 'P2', 'P3', 'P4'].map((codigo, priorityIndex) => { - const itens = itensPorPrioridade[codigo] || []; - if (itens.length === 0) return null; - - return ( -
0 ? 'page-break' : ''}> -

- {getPrioridadeNome(codigo)} -

- -
- {Array.from({ length: Math.ceil(itens.length / 3) }, (_, i) => { - const bgColorClass = i % 2 !== 0 ? 'bg-gray-50' : 'bg-white'; - const rowItems = itens.slice(i * 3, (i + 1) * 3); - - return ( -
- {rowItems.map((item) => { - const quantidade = item.quantidade_priorizada; - const marca = item.peca?.marca || 'N/A'; - const temComponentes = item.peca?.tem_componentes; - const infoType = temComponentes ? '(C/M)' : '(S/M)'; - - return ( -
-
- - {marca} ({quantidade}) - - {infoType} - {generateTickBoxes(quantidade)} -
-
-
Data/Operador:
-
-
- ); - })} - - {/* Preencher células vazias se necessário */} - {Array.from({ length: 3 - rowItems.length }, (_, emptyIndex) => ( -
- ))} -
- ); - })} + {/* Coluna Fase */} +
+

Fase

+

{etapaFase}

+
+ {/* Coluna Processo */} +
+

PROCESSO

+
+ {['Corte', 'Solda', 'Pintura', 'Expedição'].map((processo) => ( +
+ + {processo} +
+ ))}
- ); - })} +
+
+ + {/* Legenda */} +
+ Legenda: + Marca (Qtd) + (S/M) + = Sem Montagem, + (C/M) + = Com Montagem. Os quadrados + + indicam o controle de peças fabricadas. +
+ + {/* Itens por Prioridade */} +
+ {['P1', 'P2', 'P3', 'P4'].map((codigo, priorityIndex) => { + const itens = itensPorPrioridade[codigo] || []; + if (itens.length === 0) return null; + + return ( +
0 ? 'page-break' : ''}> +

+ {getPrioridadeNome(codigo)} +

+ +
+ {Array.from({ length: Math.ceil(itens.length / 3) }, (_, i) => { + const bgColorClass = i % 2 !== 0 ? 'bg-gray-50/70' : 'bg-white'; + const rowItems = itens.slice(i * 3, (i + 1) * 3); + + return ( +
+ {rowItems.map((item) => { + const quantidade = item.quantidade_priorizada; + const marca = item.peca?.marca || 'N/A'; + const temComponentes = item.peca?.tem_componentes; + const infoType = temComponentes ? '(C/M)' : '(S/M)'; + + return ( +
+
+ + {marca} ({quantidade}) + + {infoType} + {generateTickBoxes(quantidade)} +
+
+ Data/Operador: +
+
+ ); + })} + + {/* Preencher células vazias se necessário */} + {Array.from({ length: 3 - rowItems.length }, (_, emptyIndex) => ( +
+ ))} +
+ ); + })} +
+
+ ); + })} +
); diff --git a/src/pages/PrioridadesFabricacao.tsx b/src/pages/PrioridadesFabricacao.tsx index 973b8cb..27791de 100644 --- a/src/pages/PrioridadesFabricacao.tsx +++ b/src/pages/PrioridadesFabricacao.tsx @@ -68,7 +68,7 @@ const PrioridadesFabricacao = () => { boxesHtml += `
`; } } - return `
${boxesHtml}
`; + return `
${boxesHtml}
`; }; const handleImprimirRelatorio = async () => { @@ -141,13 +141,13 @@ const PrioridadesFabricacao = () => { itemsContent += `
-
- ${marca} (${quantidade}) - ${infoType} +
+ ${marca} (${quantidade}) + ${infoType} ${tickBoxes}
-
-
Data/Operador:
+
+ Data/Operador:
`; @@ -176,20 +176,136 @@ const PrioridadesFabricacao = () => { Checklist de Produção por Prioridade - +
-
+
-

Checklist de Produção

-

Formulário para apontamento da fabricação.

+

Checklist de Produção

+

Formulário para apontamento da fabricação.

-

Data de Emissão: ${dataAtual} - ${versaoAtual ? `Rev. ${versaoAtual.revisao}` : ''} +

Data de Emissão: ${dataAtual} + ${versaoAtual ? `Rev. ${versaoAtual.revisao}` : ''}

- -
-
+ +
+

Ordem de Fabricação (OF)

-

${ofSelecionada}

+

${ofSelecionada}

Fase

-

${faseSelecionada}

+

${faseSelecionada}

PROCESSO

-
-
Corte
-
Solda
-
Pintura
-
Expedição
+
+
Corte
+
Solda
+
Pintura
+
Expedição
-
+
Legenda: Marca (Qtd) (S/M) = Sem Montagem, (C/M) = Com Montagem. Os quadrados -
+ indicam o controle de peças fabricadas.