Skip to content

Commit

Permalink
Added default nmp file
Browse files Browse the repository at this point in the history
  • Loading branch information
dallascrichmond committed Dec 31, 2024
1 parent 944a4b6 commit 4e52196
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 28 deletions.
96 changes: 96 additions & 0 deletions frontend/src/constants/DefaultNMPFile.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
import NMPFile from '../types/NMPFile';

const defaultNMPFile: NMPFile = {
farmDetails: {
Year: '',
FarmName: '',
FarmRegion: 0,
FarmSubRegion: null,
SoilTests: null,
TestingMethod: null,
Manure: null,
HasSelectedFarmType: false,
ImportsManureCompost: false,
HasAnimals: false,
HasDairyCows: false,
HasBeefCows: false,
HasPoultry: false,
HasMixedLiveStock: false,
HasHorticulturalCrops: false,
HasBerries: false,
HasVegetables: false,
LeafTests: null,
LeafTestingMethod: null,
UserJourney: 0,
},
unsaved: false,
years: [
{
Year: '',
Fields: [
{
Id: 0,
FieldName: '',
Area: 0,
Comment: null,
Nutrients: null,
HasNutrients: false,
Crops: [
{
id: 0,
cropId: '',
cropOther: null,
yield: 0,
reqN: 0,
stdN: 0,
reqP2o5: 0,
reqK2o: 0,
remN: 0,
remP2o5: 0,
remK2o: 0,
crudeProtien: 0,
prevCropId: 0,
coverCropHarvested: null,
prevYearManureAppl_volCatCd: 0,
yieldHarvestUnit: 0,
yieldByHarvestUnit: 0,
plantAgeYears: null,
numberOfPlantsPerAcre: 0,
distanceBtwnPlantsRows: null,
willPlantsBePruned: false,
whereWillPruningsGo: null,
willSawdustBeApplied: false,
},
],
FeedForageAnalyses: [],
SoilTest: null,
LeafTest: null,
HasSoilTest: false,
PreviousYearManureApplicationFrequency: '',
PreviousYearManureApplicationNitrogenCredit: null,
SoilTestNitrateOverrideNitrogenCredit: null,
IsSeasonalFeedingArea: false,
SeasonalFeedingArea: null,
FeedingDaysSpentInFeedingArea: null,
FeedingPercentageOutsideFeeingArea: null,
MatureAnimalCount: null,
GrowingAnimalCount: null,
MatureAnimalAverageWeight: null,
GrowingAnimalAverageWeight: null,
MatureAnimalDailyFeedRequirementId: 0,
GrowingAnimalDailyFeedRequirementId: 0,
},
],
FarmAnimals: [],
FarmManures: [],
GeneratedManures: [],
ImportedManures: [],
SeparatedSolidManures: [],
ManureStorageSystems: [],
},
],
LastAppliedFarmManureId: null,
NMPReleaseVersion: 0,
};

export default defaultNMPFile;
33 changes: 5 additions & 28 deletions frontend/src/views/FarmInformation/FarmInformation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import React, { useState, useEffect } from 'react';
import useAppService from '@/services/app/useAppService';
import NMPFile from '@/types/NMPFile';
import defaultNMPFile from '../../constants/DefaultNMPFile';
import {
CardHeader,
Banner,
Expand Down Expand Up @@ -56,36 +57,12 @@ export default function FarmInformation() {
];

const handleSubmit = () => {
const data = state.nmpFile;
let nmpFile: NMPFile;
if (data) {
try {
nmpFile = JSON.parse(data);

if (!nmpFile.farmDetails) {
nmpFile.farmDetails = {};
}
nmpFile.farmDetails.Year = formData.Year;
nmpFile.farmDetails.FarmName = formData.FarmName;
nmpFile.farmDetails.FarmRegion = formData.FarmRegion;
nmpFile.farmDetails.HasHorticulturalCrops = formData.Crops === 'true';
nmpFile.farmDetails.HasVegetables = formData.HasVegetables;
nmpFile.farmDetails.HasBerries = formData.HasBerries;
} catch (error) {
console.error('Failed to parse JSON data:', error);
return;
}
} else {
nmpFile = { farmDetails: {} };
nmpFile.farmDetails = {
Year: formData.Year,
FarmName: formData.FarmName,
FarmRegion: formData.FarmRegion,
HasHorticulturalCrops: formData.Crops === 'true',
HasVegetables: formData.HasVegetables,
HasBerries: formData.HasBerries,
};
}
if (state.nmpFile) nmpFile = JSON.parse(state.nmpFile);
else nmpFile = defaultNMPFile;

nmpFile.farmDetails = { ...nmpFile.farmDetails, ...formData };

setNMPFile(JSON.stringify(nmpFile));
};
Expand Down

0 comments on commit 4e52196

Please sign in to comment.