"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.escopo3veiculoParticular3 = 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.escopo3veiculoParticular3 = { escopo: "Escopo3", idTipoFonte: "escopo3veiculoParticular3", descricao: "Deslocamento - Veículo Particular por distância percorrida", 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; //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 = distancia * (1 - listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percGasolina); QTDCombustivelBio = distancia * (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 = distancia * (1 - listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percGasolina); QTDCombustivelBio = distancia * (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 = distancia; } //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; BIO = 1; QTDCombustivelFossil = distancia * (1 - listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percGasolina); QTDCombustivelBio = distancia * (1 - listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percBio); } const fatores = listaFatorAno_1.listaFatorAno.find((a) => a.ano == Number(ano)); fatores?.automovelEtanol; 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; const emissaoCO2 = QTDCombustivelFossil * (CO2 / 1000); const emissaoCH4 = (CH4 * calculoCombustivel) / 1000; const emissaoN2O = (N2O * calculoCombustivel) / 1000; 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); return resposta_1.respostaCM.addResultado([carbono, bio]); }, }; //# sourceMappingURL=veiculoParticular3.js.map