diff --git a/src/components/JobCardMetrics.tsx b/src/components/JobCardMetrics.tsx index 8de07ef..1c65141 100644 --- a/src/components/JobCardMetrics.tsx +++ b/src/components/JobCardMetrics.tsx @@ -30,14 +30,14 @@ const JobCardMetrics: React.FC = ({ job }) => { const margin = totalIncome > 0 ? ((profit / totalIncome) * 100) : 0; // Calculate performance metrics - const soldQuantity = job.produced || 0; + const itemsSold = sortedIncome.reduce((sum, tx) => sum + tx.quantity, 0); const expectedRevenuePerItem = job.projectedRevenue && job.outputQuantity > 0 ? job.projectedRevenue / job.outputQuantity : 0; - const actualRevenuePerItem = soldQuantity > 0 ? totalIncome / soldQuantity : 0; + const actualRevenuePerItem = itemsSold > 0 ? totalIncome / itemsSold : 0; const performanceRatio = expectedRevenuePerItem > 0 ? (actualRevenuePerItem / expectedRevenuePerItem) : 0; const performancePercentage = performanceRatio * 100; // Show performance indicator only if we have the necessary data - const showPerformanceIndicator = job.projectedRevenue > 0 && job.outputQuantity > 0 && soldQuantity > 0; + const showPerformanceIndicator = job.projectedRevenue > 0 && job.outputQuantity > 0 && itemsSold > 0; const handleFieldClick = (fieldName: string, currentValue: number, e: React.MouseEvent) => { e.stopPropagation(); @@ -146,22 +146,17 @@ const JobCardMetrics: React.FC = ({ job }) => { )} {showPerformanceIndicator && ( -
-
- {formatISK(actualRevenuePerItem)}/item vs {formatISK(expectedRevenuePerItem)}/item -
-
= 100 - ? 'bg-green-900/50 text-green-400' - : performancePercentage >= 90 - ? 'bg-yellow-900/50 text-yellow-400' - : 'bg-red-900/50 text-red-400' - }`} - title={`Performance: ${performancePercentage.toFixed(1)}% of expected revenue per item`} - > - {performancePercentage >= 100 ? '📈' : performancePercentage >= 90 ? '⚠️' : '📉'} {performancePercentage.toFixed(0)}% -
+
= 100 + ? 'bg-green-900/50 text-green-400' + : performancePercentage >= 90 + ? 'bg-yellow-900/50 text-yellow-400' + : 'bg-red-900/50 text-red-400' + }`} + title={`Performance: ${formatISK(actualRevenuePerItem)}/item vs ${formatISK(expectedRevenuePerItem)}/item expected (${performancePercentage.toFixed(1)}%)`} + > + {performancePercentage >= 100 ? '📈' : performancePercentage >= 90 ? '⚠️' : '📉'} {performancePercentage.toFixed(0)}%
)}