application planning

This commit is contained in:
Jake Kasper
2025-08-23 13:18:53 -04:00
parent f2f3ee52cf
commit f480fddc2c
5 changed files with 294 additions and 26 deletions

View File

@@ -134,18 +134,45 @@ const Applications = () => {
try {
// Create a plan for each selected area
const planPromises = planData.selectedAreas.map(async (areaId) => {
// Get the area details for calculations
const selectedArea = selectedPropertyDetails.sections.find(s => s.id === areaId);
const areaSquareFeet = selectedArea?.area || 0;
// Get equipment details for calculations
const selectedEquipment = equipment.find(eq => eq.id === parseInt(planData.equipmentId));
// Get nozzle details if selected
const selectedNozzle = planData.nozzleId ? nozzles.find(n => n.id === parseInt(planData.nozzleId)) : null;
const planPayload = {
lawnSectionId: parseInt(areaId),
equipmentId: parseInt(planData.equipmentId),
nozzleId: planData.nozzleId ? parseInt(planData.nozzleId) : null,
plannedDate: new Date().toISOString().split('T')[0], // Default to today
notes: planData.notes || '', // Ensure notes is never null/undefined
notes: planData.notes || '',
areaSquareFeet: areaSquareFeet, // Pass area for calculations
equipment: {
id: selectedEquipment?.id,
categoryName: selectedEquipment?.categoryName,
tankSizeGallons: selectedEquipment?.tankSizeGallons,
pumpGpm: selectedEquipment?.pumpGpm,
sprayWidthFeet: selectedEquipment?.sprayWidthFeet,
capacityLbs: selectedEquipment?.capacityLbs,
spreadWidth: selectedEquipment?.spreadWidth
},
nozzle: selectedNozzle ? {
id: selectedNozzle.id,
flowRateGpm: selectedNozzle.flowRateGpm,
sprayAngle: selectedNozzle.sprayAngle
} : null,
products: [{
...(planData.selectedProduct?.isShared
? { productId: parseInt(planData.selectedProduct.id) }
: { userProductId: parseInt(planData.selectedProduct.id) }
),
rateAmount: parseFloat(planData.selectedProduct?.customRateAmount || planData.selectedProduct?.rateAmount || 1),
rateUnit: planData.selectedProduct?.customRateUnit || planData.selectedProduct?.rateUnit || 'per 1000sqft'
rateUnit: planData.selectedProduct?.customRateUnit || planData.selectedProduct?.rateUnit || 'per 1000sqft',
applicationType: planData.applicationType
}]
};