You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: income_statement_printer.rb
    path of file: ./repos/ekylibre/app/services/printers
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

# This object allow printing the general ledger
module Printers
  class IncomeStatementPrinter < BalanceSheetPrinter
    def compute_dataset
      dataset = []
      document_scope = :profit_and_loss_statement
      current_compute = AccountancyComputat
    
    def compute_dataset
      dataset = []
      document_scope = :profit_and_loss_statement
      current_compute = AccountancyComputation.new(@financial_year)
      previous_compute = AccountancyComputation.new(@financial_year.previous) if @financial_year.previous
      # products
      g1 = HashWithIndifferentAccess.new
      g1[:group_name] = :operating_revenues.tl
      g1[:items] = []
      if @accounting_system.in?(AGRI_PCG)
        items = [:products_sales, :animal_sales, :productions_sales,
                 :inventory_variations, :capitalised_production, :subsidies,
                 :provisions_revenues, :other_products]
      elsif @accounting_system.in?(GENERAL_PCG)
        items = [:products_sales, :productions_sales, :services_sales,
                 :inventory_variations, :capitalised_production, :subsidies,
                 :provisions_revenues, :other_products]
      end