require 'active_support/concern'

module SeedImpostosAliquotas extend ActiveSupport::Concern
	def cria_impostos_aliquotas
		exercicio_anterior = self.exercicio.to_f - 1
		orcamento_anterior = Orcamento.find_by(exercicio: exercicio_anterior)

    if orcamento_anterior.present?
      ####### INSS
      impostos_inss = orcamento_anterior.inss_pessoas_juridicas
      impostos_inss.each do |imposto_inss|
        self.inss_pessoas_juridicas.find_or_create_by!(codigo: imposto_inss.codigo, descricao: imposto_inss.descricao, aliquota: imposto_inss.aliquota, percentual_base_calculo: imposto_inss.percentual_base_calculo)
      end

      ####### IRRF
      impostos_irrf = orcamento_anterior.irrfs_pessoas_juridicas
      impostos_irrf.each do |imposto_irrf|
        self.irrfs_pessoas_juridicas.find_or_create_by!(codigo: imposto_irrf.codigo, descricao: imposto_irrf.descricao, aliquota: imposto_irrf.aliquota, percentual_da_base_de_calculo: imposto_irrf.percentual_da_base_de_calculo)
      end

      ####### ISS
      impostos_iss = orcamento_anterior.imposto_sobre_servicos
      impostos_iss.each do |imposto_iss|
        self.imposto_sobre_servicos.find_or_create_by!(codigo: imposto_iss.codigo, descricao: imposto_iss.descricao, aliquota: imposto_iss.aliquota, credor_externo_paga_imposto: imposto_iss.credor_externo_paga_imposto)
      end
    end
  end
end
