select dados.cod_grupoempresa,
       dados.cod_empresa,
       dados.cod_filial,
       dados.ano_ordemservico,
       dados.nr_ordemservico,
       dados.ano_aplicacao,
       dados.numero_aplicacao,
       dados.data_inicio,
       dados.data_termino,
       dados.data_geracao,
       dados.data_encerramento,
       dados.usuario_criacao,
       dados.cod_responsavel,
       dados.nome_responsavel,
       dados.cod_fazenda,
       dados.descricao_fazenda,
       dados.zona,
       dados.cod_talhao,
       dados.area,
       dados.cod_safra,
       dados.cod_objetocusto,
       dados.cod_operacao,
       dados.descricao,
       dados.situacao,
       dados.tipo,
       dados.codigo_tipo_insumo,
       dados.descricao_tipoinsumo,
       dados.OS_APONTAMENTO,
       dados.rendimento,
       dados.utilizacao,
       dados.cod_unidade
from (
select 'O.S' OS_APONTAMENTO,
       a.cod_grupoempresa,
       a.cod_empresa,
       a.cod_filial,
       a.ano_ordemservico,
       a.nr_ordemservico,
       null ano_aplicacao,
       null numero_aplicacao,
       a.data_inicio,
       a.data_termino,
       a.data_geracao,
       a.data_encerramento,
       (select distinct i.usuario from agricola.ordemservicoitemlog i where i.cod_grupoempresa  = a.cod_grupoempresa
                                                                        and i.cod_empresa       = a.cod_empresa
                                                                        and i.cod_filial        = a.cod_filial
                                                                        and i.ano_ordemservico  = a.ano_ordemservico
                                                                        and i.nr_ordemservico   = a.nr_ordemservico
                                                                        and i.item_ordemservico = b.item_ordemservico
                                                                        and i.operacao          = 'I'
                                                                        and rownum = 1) usuario_criacao,
       b.cod_funcionario cod_responsavel,
       h.nome nome_responsavel,
       b.cod_fazenda,
       c.descricao descricao_fazenda,
       b.zona,
       b.cod_talhao,
       b.area,
       b.cod_safra,
       b.cod_objetocusto,
       b.cod_operacao,
       e.descricao,
       case when b.situacao = 'A' then 'Aberta'
            when b.situacao = 'P' then 'Parc. Atendida'
            when b.situacao = 'T' then 'Totalmente Atendida'
            when b.situacao = 'C' then 'Encerrado sem Execução'
              else '' end situacao,
       case when j.tipo_insumo = 'E' then 'Equipamento'
            when j.tipo_insumo = 'M' then 'Material'
            when j.tipo_insumo = 'C' then 'Mão de obra' else '' end tipo,
       
       j.cod_insumo codigo_tipo_insumo,
       case when j.tipo_insumo = 'M' then (select xa.descricao from material.material xa where xa.cod_material = j.cod_insumo)
            when j.tipo_insumo = 'E' then (select xb.descricao from automotivo.equipamento xb where xb.cod_equipamento = j.cod_insumo)
              else '' end descricao_tipoinsumo,
       j.rendimento,
       j.utilizacao,
       j.cod_unidade
       

from agricola.ordemservico     a
   , agricola.ordemservicoitem b
   , agricola.fazenda          c
   , agricola.talhao           d
   , rh.operacaoagricola       e
   , rh.funcionario            f
   , rh.fisica                 g
   , rh.pessoa                 h
   , agricola.ordemservicoinsumo j
   
   
where b.cod_grupoempresa       = a.cod_grupoempresa
  and b.cod_empresa            = a.cod_empresa
  and b.cod_filial             = a.cod_filial
  and b.ano_ordemservico       = a.ano_ordemservico
  and b.nr_ordemservico        = a.nr_ordemservico
  and c.cod_fazenda            = b.cod_fazenda
  and d.cod_fazenda            = c.cod_fazenda
  and d.zona                   = b.zona
  and d.cod_talhao             = b.cod_talhao
  and d.cod_safra              = b.cod_safra
  and e.cod_operacaoagricola   = b.cod_operacao
  and f.cod_grupoempresa       = a.cod_grupoempresa
  and f.cod_funcionario        = b.cod_funcionario
  and g.cpf                    = f.cpf 
  and h.cod_pessoa             = g.cod_pessoa
  
  and j.cod_grupoempresa       = b.cod_grupoempresa
  and j.cod_empresa            = b.cod_empresa
  and j.cod_filial             = b.cod_filial
  and j.ano_ordemservico       = b.ano_ordemservico
  and j.nr_ordemservico        = b.nr_ordemservico
  and j.item_ordemservico      = b.item_ordemservico
    
  and a.ano_ordemservico      between :ANO_INICIO and :ANO_FINAL
  and a.nr_ordemservico       between :NR_INICIO  and :NR_FINAL

union all

select 'Apontamento' OS_APONTAMENTO,
       a.cod_grupoempresa,
       a.cod_empresa,
       a.cod_filial,
       a.ano_os_referencia,
       a.nr_os_referencia,
       a.ano_apontamento,
       a.nr_apontamento,
       NULL,
       NULL,
       a.data_apontamento,
       NULL,
       '' usuario_criacao,
       b.cod_funcionario cod_responsavel,
       h.nome nome_responsavel,
       b.cod_fazenda,
       c.descricao,
       b.zona,
       b.cod_talhao,
       b.area,
       b.cod_safra,
       b.cod_objetocusto,
       b.cod_operacao,
       e.descricao,
       '' SITUACAO,
       case when j.tipo_insumo = 'E' then 'Equipamento'
            when j.tipo_insumo = 'M' then 'Material'
            when j.tipo_insumo = 'C' then 'Mão de obra' else '' end tipo,
       
       j.cod_insumo codigo_tipo_insumo,
       case when j.tipo_insumo = 'M' then (select xa.descricao from material.material xa where xa.cod_material = j.cod_insumo)
            when j.tipo_insumo = 'E' then (select xb.descricao from automotivo.equipamento xb where xb.cod_equipamento = j.cod_insumo)
              else '' end descricao,
       j.rendimento,
       j.utilizacao,
       j.cod_unidade
       

from agricola.apontamento      a
   , agricola.apontamentoitem  b
   , agricola.fazenda          c
   , agricola.talhao           d
   , rh.operacaoagricola       e
   , rh.funcionario            f
   , rh.fisica                 g
   , rh.pessoa                 h
   , agricola.Apontamentoinsumo j
   
   
where b.cod_grupoempresa       = a.cod_grupoempresa
  and b.cod_empresa            = a.cod_empresa
  and b.cod_filial             = a.cod_filial
  and b.ano_apontamento        = a.ano_apontamento
  and b.nr_apontamento         = a.nr_apontamento
  and c.cod_fazenda            = b.cod_fazenda
  and d.cod_fazenda            = c.cod_fazenda
  and d.zona                   = b.zona
  and d.cod_talhao             = b.cod_talhao
  and d.cod_safra              = b.cod_safra
  and e.cod_operacaoagricola   = b.cod_operacao
  and f.cod_grupoempresa       = a.cod_grupoempresa
  and f.cod_funcionario        = b.cod_funcionario
  and g.cpf                    = f.cpf 
  and h.cod_pessoa             = g.cod_pessoa
  
  and j.cod_grupoempresa       = b.cod_grupoempresa
  and j.cod_empresa            = b.cod_empresa
  and j.cod_filial             = b.cod_filial
  and j.ano_apontamento        = b.ano_apontamento
  and j.nr_apontamento         = b.nr_apontamento
  and j.item_apontamento       = b.item_apontamento  
  and a.ano_os_referencia      between :ANO_INICIO and :ANO_FINAL
  and a.nr_os_referencia       between :NR_INICIO  and :NR_FINAL

union all

select 'Apontamento' OS_APONTAMENTO,
       a.cod_grupoempresa,
       a.cod_empresa,
       a.cod_filial,
       a.ano_os_referencia,
       a.nr_os_referencia,
       a.ano_apontamento,
       a.nr_apontamento,
       NULL,
       NULL,
       a.data_apontamento,
       NULL,
       '' usuario_criacao,
       b.cod_funcionario cod_responsavel,
       h.nome nome_responsavel,
       b.cod_fazenda,
       c.descricao,
       b.zona,
       b.cod_talhao,
       b.area,
       b.cod_safra,
       b.cod_objetocusto,
       b.cod_operacao,
       e.descricao,
       '' SITUACAO,
       'Material' tipo,
       k.cod_material,
       k.descricao,
       j.rendimento,
       j.quantidade,
       j.cod_unidade
       

from agricola.apontamento      a
   , agricola.apontamentoitem  b
   , agricola.fazenda          c
   , agricola.talhao           d
   , rh.operacaoagricola       e
   , rh.funcionario            f
   , rh.fisica                 g
   , rh.pessoa                 h
   , agricola.apontamentomaterial j
   , material.material            k   
   
where b.cod_grupoempresa       = a.cod_grupoempresa
  and b.cod_empresa            = a.cod_empresa
  and b.cod_filial             = a.cod_filial
  and b.ano_apontamento        = a.ano_apontamento
  and b.nr_apontamento         = a.nr_apontamento
  and c.cod_fazenda            = b.cod_fazenda
  and d.cod_fazenda            = c.cod_fazenda
  and d.zona                   = b.zona
  and d.cod_talhao             = b.cod_talhao
  and d.cod_safra              = b.cod_safra
  and e.cod_operacaoagricola   = b.cod_operacao
  and f.cod_grupoempresa       = a.cod_grupoempresa
  and f.cod_funcionario        = b.cod_funcionario
  and g.cpf                    = f.cpf 
  and h.cod_pessoa             = g.cod_pessoa
  
  and j.cod_grupoempresa       = b.cod_grupoempresa
  and j.cod_empresa            = b.cod_empresa
  and j.cod_filial             = b.cod_filial
  and j.ano_apontamento        = b.ano_apontamento
  and j.nr_apontamento         = b.nr_apontamento
  and j.item_apontamento       = b.item_apontamento  
  and k.cod_material           = j.cod_material
  
  and a.ano_os_referencia      between :ANO_INICIO and :ANO_FINAL
  and a.nr_os_referencia       between :NR_INICIO  and :NR_FINAL ) dados
order by dados.cod_grupoempresa
       , dados.cod_empresa
       , dados.cod_filial
       , dados.cod_fazenda
       , dados.zona
       , dados.cod_talhao
       , dados.codigo_tipo_insumo
       , dados.OS_APONTAMENTO

