124 lines
No EOL
5.9 KiB
JavaScript
124 lines
No EOL
5.9 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.escopo3rodoviario4 = void 0;
|
|
const resposta_1 = require("../../../../resposta");
|
|
const fatorEmissaoCombustivel_1 = require("../../../ListasFatoresEmissao/fatorEmissaoCombustivel");
|
|
const gwp_1 = require("../../../ListasFatoresEmissao/gwp");
|
|
const listaFatorAno_1 = require("../../../ListasFatoresEmissao/listaFatorAno");
|
|
const listas_1 = require("../../../ListasFatoresEmissao/listas");
|
|
const tiposVeiculos_1 = require("../../../ListasFatoresEmissao/tiposVeiculos");
|
|
const interfaces_1 = require("../../../interfaces");
|
|
exports.escopo3rodoviario4 = {
|
|
escopo: "Escopo3",
|
|
idTipoFonte: "escopo3rodoviario4",
|
|
descricao: "(Upstream) Rodoviário por distância percorrida no ano",
|
|
estruturaCadastro: [
|
|
{
|
|
idCampo: "tipo",
|
|
descricao: "Tipo da frota de veículo",
|
|
tipo: interfaces_1.tiposCamposGee.opcoes,
|
|
opcoes: listas_1.listaVeiculos,
|
|
},
|
|
{
|
|
idCampo: "ano",
|
|
descricao: "Ano do veículo",
|
|
tipo: interfaces_1.tiposCamposGee.opcoes,
|
|
opcoes: listas_1.listaAno,
|
|
},
|
|
],
|
|
estruturaRegistro: [
|
|
{
|
|
campo: "distancia",
|
|
descricao: "Distância mensal percorrida (Km)",
|
|
tipo: interfaces_1.tiposCamposGee.numero,
|
|
},
|
|
],
|
|
formula: ({ cad, reg, inventario }) => {
|
|
//Cadastro e Registro
|
|
const detalheTipoVeiculo = Object.values(tiposVeiculos_1.tiposDeVeiculosDetalhe).find((a) => a.descricao == cad.tipo);
|
|
if (!detalheTipoVeiculo) {
|
|
return resposta_1.respostaCM.addErro("não foi encontrado tipo de veiculo");
|
|
}
|
|
const ano = cad.ano;
|
|
if (!ano) {
|
|
return resposta_1.respostaCM.addErro("não foi encontrado ano da frota");
|
|
}
|
|
const distancia = reg.distancia;
|
|
const fatorAno = listaFatorAno_1.listaFatorAno.find((a) => a.ano == Number(ano));
|
|
if (!fatorAno) {
|
|
return resposta_1.respostaCM.addErro("não foi encontrado fator de ano");
|
|
}
|
|
const consumoMedio = fatorAno[detalheTipoVeiculo.tipo];
|
|
const calculoCombustivel = distancia / consumoMedio;
|
|
//Fatores de emissão
|
|
let [CH4, CO2, N2O, BIO, QTDCombustivelBio, QTDCombustivelFossil] = [
|
|
0, 0, 0, 0, 0, 0,
|
|
];
|
|
//Seleção de gasolina
|
|
if (detalheTipoVeiculo.categoria == "Gasolina") {
|
|
CH4 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[0].fator_emissao_CH4;
|
|
CO2 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[0].fator_emissao_CO2;
|
|
N2O = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[0].fator_emissao_N2O;
|
|
BIO = 1;
|
|
QTDCombustivelFossil =
|
|
calculoCombustivel *
|
|
(1 -
|
|
listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percGasolina);
|
|
QTDCombustivelBio =
|
|
calculoCombustivel *
|
|
(1 - listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percBio);
|
|
}
|
|
//Seleção de etanol
|
|
else if (detalheTipoVeiculo.categoria == "Etanol") {
|
|
CH4 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[8].fator_emissao_CH4;
|
|
CO2 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[8].fator_emissao_CO2;
|
|
N2O = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[8].fator_emissao_N2O;
|
|
BIO = 1;
|
|
QTDCombustivelFossil =
|
|
calculoCombustivel *
|
|
(1 -
|
|
listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percGasolina);
|
|
QTDCombustivelBio =
|
|
calculoCombustivel *
|
|
(1 - listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percBio);
|
|
}
|
|
//Seleção do GNV
|
|
else if (detalheTipoVeiculo.categoria == "GNV") {
|
|
CH4 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[2].fator_emissao_CH4;
|
|
CO2 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[2].fator_emissao_CO2;
|
|
N2O = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[2].fator_emissao_N2O;
|
|
BIO = 1;
|
|
QTDCombustivelFossil = calculoCombustivel;
|
|
}
|
|
//Seleção do Diesel
|
|
else if (detalheTipoVeiculo.categoria == "Diesel") {
|
|
CH4 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[1].fator_emissao_CH4;
|
|
CO2 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[1].fator_emissao_CO2;
|
|
N2O = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[1].fator_emissao_N2O;
|
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
BIO = 1;
|
|
QTDCombustivelFossil =
|
|
calculoCombustivel *
|
|
(1 -
|
|
listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percGasolina);
|
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
QTDCombustivelBio =
|
|
calculoCombustivel *
|
|
(1 - listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percBio);
|
|
}
|
|
const fatores = listaFatorAno_1.listaFatorAno.find((a) => a.ano == Number(ano));
|
|
fatores?.automovelEtanol;
|
|
//seleção de consumo médio sugerido
|
|
const emissaoCO2 = QTDCombustivelFossil * (CO2 / 1000);
|
|
const emissaoCH4 = (CH4 * calculoCombustivel) / 1000;
|
|
const emissaoN2O = (N2O * calculoCombustivel) / 1000;
|
|
//Calculo de carbono Final
|
|
const carbono = emissaoCO2 * Number(gwp_1.gwp[0].gwp) +
|
|
emissaoCH4 * Number(gwp_1.gwp[1].gwp) +
|
|
emissaoN2O * Number(gwp_1.gwp[2].gwp);
|
|
const bio = QTDCombustivelBio * (BIO / 1000);
|
|
//Arredondamento
|
|
return resposta_1.respostaCM.addResultado([carbono, bio]);
|
|
},
|
|
};
|
|
//# sourceMappingURL=rodoviario4.js.map
|