diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index 9f0456796899dcdff01cebcbe0617a8a3039ae0c..38cdcafb7a877c6a331aa963270c25c6273dc5cd 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -151,26 +151,35 @@ namespace TUGraz.VectoCore.Models.Declaration grossVehicleWeight - curbWeight).Value() / 100, 0) * 100).SI<Kilogram>(); } - public static VehicleClass GetVehicleGroupGroup(IVehicleDeclarationInputData vehicleData) + public static Tuple<VehicleClass, bool?> GetVehicleGroupGroup(IVehicleDeclarationInputData vehicleData) { switch (vehicleData.VehicleCategory) { case VehicleCategory.Van: case VehicleCategory.RigidTruck: case VehicleCategory.Tractor: - var truckSegment = DeclarationData.TruckSegments.Lookup(vehicleData.VehicleCategory, - vehicleData.AxleConfiguration, vehicleData.GrossVehicleMassRating, vehicleData.CurbMassChassis, - vehicleData.VocationalVehicle); - return truckSegment.VehicleClass; + try { + var truckSegment = DeclarationData.TruckSegments.Lookup(vehicleData.VehicleCategory, + vehicleData.AxleConfiguration, vehicleData.GrossVehicleMassRating, + vehicleData.CurbMassChassis, + vehicleData.VocationalVehicle); + return Tuple.Create(truckSegment.VehicleClass, (bool?)false); + } catch (VectoException) { + var truckSegment = DeclarationData.TruckSegments.Lookup(vehicleData.VehicleCategory, + vehicleData.AxleConfiguration, vehicleData.GrossVehicleMassRating, + vehicleData.CurbMassChassis, + false); + return Tuple.Create(truckSegment.VehicleClass, (bool?)false); + } case VehicleCategory.HeavyBusPrimaryVehicle: var primarySegment = DeclarationData.PrimaryBusSegments.Lookup(vehicleData.VehicleCategory, vehicleData.AxleConfiguration, vehicleData.Articulated); - return primarySegment.VehicleClass; + return Tuple.Create(primarySegment.VehicleClass, (bool?)null); case VehicleCategory.HeavyBusCompletedVehicle: var segment = DeclarationData.CompletedBusSegments.Lookup(vehicleData.AxleConfiguration.NumAxles(), vehicleData.VehicleCode, vehicleData.RegisteredClass, vehicleData.NumberPassengerSeatsLowerDeck, vehicleData.Height, vehicleData.LowEntry); - return segment.VehicleClass; + return Tuple.Create(segment.VehicleClass, (bool?)null); } throw new VectoException("No Group found for vehicle"); @@ -189,7 +198,7 @@ namespace TUGraz.VectoCore.Models.Declaration .Sum(x => x.ElectricMachine.R85RatedPower * x.Count) ?? 0.SI<Watt>()) + (vehicleData.Components?.IEPC?.R85RatedPower ?? 0.SI<Watt>()) + (vehicleData.MaxNetPower1 ?? 0.SI<Watt>()); - var co2Group = WeightingGroup.Lookup(vehicleGroup, vehicleData.SleeperCab ?? false, propulsionPower); + var co2Group = WeightingGroup.Lookup(vehicleGroup.Item1, vehicleData.SleeperCab ?? false, propulsionPower); return co2Group; default: return Declaration.WeightingGroup.Unknown; @@ -1402,7 +1411,7 @@ namespace TUGraz.VectoCore.Models.Declaration } return new WeightedResult(first) { AverageSpeed = first.AverageSpeed, - FuelConsumption = first.FuelData.Select(x => Tuple.Create(x, + FuelConsumption = first.FuelData?.Select(x => Tuple.Create(x, first.FuelConsumptionFinal(x.FuelType).TotalFuelConsumptionCorrected)) .ToDictionary(x => x.Item1, x => x.Item2), ElectricEnergyConsumption = first.ElectricEnergyConsumption, diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs index efe80c1e4452956bda945de6c14c7fdd64bfef08..a6933484220806c97757a7905236c88237f33fb1 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs @@ -38,7 +38,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation new XElement(_cif + XMLNames.Vehicle_VehicleCategory, vehicleData.LegislativeClass.ToXMLFormat()), new XElement(_cif + XMLNames.Vehicle_AxleConfiguration, vehicleData.AxleConfiguration.ToXMLFormat()), new XElement(_cif + XMLNames.Vehicle_TPMLM, XMLHelper.ValueAsUnit(vehicleData.GrossVehicleMassRating, "kg")), - new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).GetClassNumber()), + new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).Item1.GetClassNumber()), new XElement(_cif + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()), }; @@ -58,7 +58,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation new XElement(_cif + XMLNames.Vehicle_VehicleCategory, consolidatedVehicleData.LegislativeClass.ToXMLFormat()), new XElement(_cif + XMLNames.Vehicle_AxleConfiguration, primary.AxleConfiguration.ToXMLFormat()), new XElement(_cif + XMLNames.Vehicle_TPMLM, XMLHelper.ValueAsUnit(consolidatedVehicleData.GrossVehicleMassRating, "kg")), - new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(consolidatedVehicleData).GetClassNumber()), + new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(consolidatedVehicleData).Item1.GetClassNumber()), new XElement(_cif + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(multiStageInputDataProvider).ToXMLFormat()), }; return result; @@ -77,6 +77,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) { var vehicleData = inputData.JobInputData.Vehicle; + var vehicleGroup = DeclarationData.GetVehicleGroupGroup(vehicleData); var result = new List<XElement>() { new XElement(_cif + XMLNames.Component_Manufacturer, vehicleData.Manufacturer), new XElement(_cif + XMLNames.Component_ManufacturerAddress, vehicleData.ManufacturerAddress), @@ -88,7 +89,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation // ? vehicleData.VehicleTypeApprovalNumber // : null), new XElement(_cif + XMLNames.CorrectedActualMass, vehicleData.CurbMassChassis.ValueAsUnit("kg")), - new XElement(_cif + XMLNames.Vehicle_VocationalVehicle, vehicleData.VocationalVehicle), + new XElement(_cif + XMLNames.Vehicle_VocationalVehicle, vehicleGroup.Item2), new XElement(_cif + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab), new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicleData.ZeroEmissionVehicle), new XElement(_cif + XMLNames.Vehicle_HybridElectricHDV, vehicleData.HybridElectricHDV) diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputGroup.cs index 782667d1ffbbaa4d44b8fee981635bfc9f02ff14..f9f284c0131548351baa282e98534ef3d12817cf 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputGroup.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputGroup.cs @@ -37,7 +37,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. new XElement(_mrf + XMLNames.Vehicle_VehicleCategory, vehicleData.LegislativeClass.ToXMLFormat()), new XElement(_mrf + XMLNames.Vehicle_AxleConfiguration, vehicleData.AxleConfiguration.ToXMLFormat()), new XElement(_mrf + XMLNames.TPMLM, vehicleData.GrossVehicleMassRating.ToXMLFormat(0)), - new XElement(_mrf + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).GetClassNumber()), + new XElement(_mrf + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).Item1.GetClassNumber()), new XElement(_mrf + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()), }; diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs index 555d815b60e212ac49f226210c1cb3fa7eb2c30f..d95397123d7d6a2af9a4e0d5ddfb0654038afe98 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using System.Xml.Linq; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; using TUGraz.VectoCore.Utils; @@ -18,6 +19,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) { var vehicle = inputData.JobInputData.Vehicle; + var vehicleGoup = DeclarationData.GetVehicleGroupGroup(vehicle); var elements = new List<XElement>(); elements.AddRange(new List<XElement>() { new XElement(_mrf + XMLNames.Component_Manufacturer, vehicle.Manufacturer), @@ -27,7 +29,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. elements.AddRange(new List<XElement>() { // new XElement(mrf + "CO2StandardGroup", vehicle.) //CO2 Standardgroup new XElement(_mrf + XMLNames.CorrectedActualMass, vehicle.CurbMassChassis.ToXMLFormat(0)), - new XElement(_mrf + XMLNames.Vehicle_VocationalVehicle, vehicle.VocationalVehicle), + new XElement(_mrf + XMLNames.Vehicle_VocationalVehicle, vehicleGoup.Item2), new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle), new XElement(_mrf + XMLNames.Vehicle_HybridElectricHDV, vehicle.HybridElectricHDV), }); diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs index f9fcdad04e4b98b369be19adf97e8869a3a00e33..6d641102a33eb37d0477c66a1ece17920319089e 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs @@ -45,7 +45,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport new XElement(tns + XMLNames.Vehicle_CurbMassChassis, XMLHelper.ValueAsUnit(modelData.VehicleData.CurbMass, XMLNames.Unit_kg)), new XElement(tns + XMLNames.TPMLM, XMLHelper.ValueAsUnit(modelData.VehicleData.GrossVehicleMass, XMLNames.Unit_t, 2)), - new XElement(tns + XMLNames.Vehicle_VocationalVehicle, modelData.VehicleData.ZeroEmissionVehicle), + //new XElement(tns + XMLNames.Vehicle_VocationalVehicle, modelData.VehicleData.ZeroEmissionVehicle), new XElement(tns + XMLNames.Vehicle_ZeroEmissionVehicle, modelData.VehicleData.ZeroEmissionVehicle), new XElement(tns + XMLNames.Vehicle_HybridElectricHDV, modelData.VehicleData.HybridElectricHDV), new XElement(tns + XMLNames.Vehicle_DualFuelVehicle, modelData.VehicleData.DualFuelVehicle),