spreader stuff

This commit is contained in:
Jake Kasper
2025-08-24 13:41:12 -04:00
parent 3ad4782021
commit 229454c466
10 changed files with 616 additions and 17 deletions

View File

@@ -133,7 +133,8 @@ function calculateGranularApplication(areaSquareFeet, rateAmount, rateUnit, equi
console.log(`Calculating granular application:
Area: ${areaSquareFeet} sq ft (${areaAcres.toFixed(3)} acres, ${area1000sqft.toFixed(1)} x 1000sqft)
Rate: ${rateAmount} ${rateUnit}
Equipment: ${equipment?.categoryName}`);
Equipment: ${equipment?.categoryName} (${equipment?.spreaderBrand || 'unknown brand'})
Spreader Setting: ${equipment?.spreaderSetting || 'not specified'}`);
// Calculate product amount based on rate unit
if (rateUnit.includes('lbs/1000sqft') || rateUnit.includes('lbs per 1000sqft') || rateUnit.includes('lb/1000sqft')) {
@@ -145,6 +146,17 @@ function calculateGranularApplication(areaSquareFeet, rateAmount, rateUnit, equi
} else if (rateUnit.includes('oz/1000sqft') || rateUnit.includes('oz per 1000sqft')) {
// Rate is ounces per 1000 square feet, convert to pounds
productPounds = (area1000sqft * rateAmount) / 16; // 16 oz = 1 lb
} else if (rateUnit.includes('covers') || rateUnit.includes('coverage')) {
// Handle bag coverage rates like "50 lb covers 16,000 sq ft"
// Format: "weight coverage_area" (e.g., "50 16000")
// rateAmount should be the coverage area per unit weight
const coveragePerPound = rateAmount; // sq ft per pound
productPounds = areaSquareFeet / coveragePerPound;
console.log(`Bag coverage calculation: ${areaSquareFeet} sq ft / ${coveragePerPound} sq ft per lb = ${productPounds.toFixed(2)} lbs`);
} else if (rateUnit.includes('lb covers') || rateUnit.includes('lbs cover')) {
// Alternative format: "1 lb covers X sq ft"
const coveragePerPound = rateAmount;
productPounds = areaSquareFeet / coveragePerPound;
} else {
// Fallback: assume rate is per 1000 sq ft
productPounds = area1000sqft * rateAmount;