table style="width: 100%; border-collapse: collapse;" thead tr th style="width: 20%; text-align: left;" Subgrupo th style="width: 20%; text-align: right;" Valor Bruto Contábil th style="width: 20%; text-align: right;" Depreciação Acumulada th style="width: 20%; text-align: right;" Reavaliação th style="width: 20%; text-align: right;" Valor Líquido Contábil tbody - total_valor_bruto = 0 - total_depreciacao = 0 - total_reavaliacao = 0 - total_valor_liquido = 0 - grouped_bens = bens.group_by { |bem| bem.sub_elemento_de_despesa.try(:codigo_e_descricao) || 'Sem Subgrupo' } - grouped_bens.sort_by { |subgrupo, bens| subgrupo.present? ? subgrupo.split(" - ") : ['Sem Subgrupo'] }.each do |subgrupo, bens| - subtotal_valor_bruto = bens.sum { |bem| bem.dados_extras_do_bem.valor_de_aquisicao } - subtotal_depreciacao = bens.sum { |bem| bem.depreciacao_ate_data(bem.data_transferencia).to_f.round(2) } - subtotal_reavaliacao = bens.sum { |bem| bem.avaliacoes_dos_bens.sum(:valor_diferenca) } - subtotal_valor_liquido = bens.sum { |bem| bem.valor_atualizado_do_bem_ate_data(bem.data_transferencia) } tr td style="text-align: left; font-weight: bold;" = subgrupo td style="text-align: right;" = subtotal_valor_bruto.valor_contabil td style="text-align: right;" = subtotal_depreciacao.valor_contabil td style="text-align: right;" = subtotal_reavaliacao.valor_contabil td style="text-align: right;" = subtotal_valor_liquido.valor_contabil - total_valor_bruto += subtotal_valor_bruto - total_depreciacao += subtotal_depreciacao - total_reavaliacao += subtotal_reavaliacao - total_valor_liquido += subtotal_valor_liquido tr td style="text-align: left; font-weight: bold;" Total td style="text-align: right; font-weight: bold;" = total_valor_bruto.valor_contabil td style="text-align: right; font-weight: bold;" = total_depreciacao.to_f.round(2) td style="text-align: right; font-weight: bold;" = total_reavaliacao.valor_contabil td style="text-align: right; font-weight: bold;" = total_valor_liquido.valor_contabil