- {stats.map(stat => (
-
-
{stat.label}
-
{stat.value}
-
- ))}
+
+
+
Compra sugerida
+
{suggestedPurchaseSummary}
+
necessidade após saldo e recebimentos
+
+
+
- {[
- { id: 'materials' as const, label: `Materiais (${materialNeeds.length} linhas)` },
- { id: 'services' as const, label: `Serviços (${serviceNeeds.length})` },
- { id: 'mapping' as const, label: `Mapear dados (${impactedSkuCount || mappingNeeds.length} SKUs)` },
- ].map(tab => (
-
- ))}
+
+
+ {[
+ { id: 'materials' as const, label: `Compra (${purchaseItemCount})` },
+ { id: 'services' as const, label: `Serviços (${serviceNeeds.length})` },
+ { id: 'mapping' as const, label: `Mapear dados (${mappingNeeds.length})` },
+ ].map(tab => (
+
+ ))}
+
+
+ {activeTab === 'materials' && (
+
+ {materialFilters.map(filter => (
+
+ ))}
+
+ )}
{isLoading ? (
@@ -2000,7 +2144,9 @@ const PurchaseNeedsScreen = () => {
) : visibleNeeds.length ? (
- {activeTab === 'mapping' ? (
+ {activeTab === 'materials' ? (
+
+ ) : activeTab === 'mapping' ? (
@@ -2079,11 +2225,11 @@ const PurchaseNeedsScreen = () => {
| Demanda |
- {activeTab === 'services' ? 'Serviço' : 'Material'} |
- {activeTab === 'services' ? 'Volume previsto' : 'Necessário'} |
- {activeTab === 'services' ? 'Agendado' : 'Estoque atual'} |
- {activeTab === 'services' ? 'Em aberto' : 'Pendente'} |
- {activeTab === 'services' ? 'Contratar' : 'Comprar'} |
+ Serviço |
+ Volume previsto |
+ Agendado |
+ Em aberto |
+ Contratar |
Situação |
@@ -2127,24 +2273,14 @@ const PurchaseNeedsScreen = () => {
{formatNeedQuantity(need, need.plannedKg)} |
- {activeTab === 'services' ? '—' : formatNeedQuantity(need, need.stockKg)} |
- {activeTab === 'services' ? '—' : formatNeedQuantity(need, need.pendingKg)} |
+ — |
+ — |
0 ? 'text-amber-300' : 'text-emerald-300'}`}>{formatNeedQuantity(need, need.purchaseKg)} |
- {activeTab === 'services' ? 'Programar serviço' : getNeedStatusLabel(need)}
+ Programar serviço
|
@@ -2160,7 +2296,7 @@ const PurchaseNeedsScreen = () => {
totalPages={totalPages}
pageSize={itemsPerPage}
pageSizeOptions={[10, 20, 50, 100]}
- itemLabel="materiais"
+ itemLabel={activeTab === 'materials' ? 'materiais' : activeTab === 'services' ? 'serviços' : 'pendências'}
pageSizeLabel="itens por página"
startIndex={startIndex}
endIndex={Math.min(startIndex + itemsPerPage, visibleNeeds.length)}