select distinct
       tabela.cod_grupoempresa||' - '||tabela.cod_empresa||' - '||tabela.cod_filial GEF,
       --tabela.data_inicio,
       tabela.data_geracao,
       tabela.ano_ordemservico,
       tabela.nr_ordemservico,
       tabela.item_ordemservico,
       tabela.cod_fazenda,
       tabela.descricao_fazenda,
       tabela.zona,
       tabela.cod_talhao,
       tabela.numerocorte,
       tabela.cod_safra,
       --tabela.cod_cultura,
       --tabela.descricao_cultura,
       --tabela.cod_operacao,
       --tabela.descricao_operacao,
       tabela.negocio||' - '||tabela.descricao_negocio||' - '||tabela.processo||' - '||tabela.descricao_processo||' - '||tabela.subprocesso||' - '||tabela.descricao_subprocesso DADOS_OBJETO,
       --tabela.atividade,
       --tabela.cod_objetocusto,
       --tabela.descricao_objetocusto,
       --tabela.validacao
       tabela.usuario
from (
select dados.cod_grupoempresa,
       dados.cod_empresa,
       dados.cod_filial,
       dados.data_inicio,
       dados.data_geracao,
       dados.ano_ordemservico,
       dados.nr_ordemservico,
       dados.item_ordemservico,
       dados.cod_fazenda,
       dados.descricao_fazenda,
       dados.zona,
       dados.cod_talhao,
       dados.numerocorte,
       dados.cod_safra,
       dados.cod_cultura,
       dados.descricao_cultura,
       dados.cod_operacao,
       dados.descricao_operacao,
       dados.negocio,
       dados.descricao_negocio,
       dados.processo,
       dados.descricao_processo,
       dados.subprocesso,
       dados.descricao_subprocesso,
       dados.atividade,
       dados.cod_objetocusto,
       dados.descricao_objetocusto,
       case when dados.negocio = 2 and dados.processo = 2 and dados.subprocesso = 2 and dados.cod_cultura = 1 and dados.numerocorte > 0 then 'OK'
            when dados.negocio = 2 and dados.processo = 2 and dados.subprocesso = 2 and dados.cod_cultura = 1 and dados.numerocorte <= 0 then 'VERIFICAR'
            when dados.negocio = 2 and dados.processo = 1 and dados.cod_cultura = 1 and dados.numerocorte > 0 then 'VERIFICAR'  
            when dados.negocio = 2 and dados.processo = 1 and dados.cod_cultura = 1 and dados.numerocorte <= 0 then 'OK'
            when dados.negocio = 2 and dados.processo = 2 and dados.subprocesso = 1 and dados.cod_cultura = 1 and dados.numerocorte > 1 then 'VERIFICAR'
            when dados.negocio = 2 and dados.processo = 2 and dados.subprocesso = 1 and dados.cod_cultura = 1 and dados.numerocorte = 0 then 'VERIFICAR'
            when dados.negocio = 2 and dados.processo = 2 and dados.subprocesso = 1 and dados.cod_cultura = 1 and dados.numerocorte = 1 then 'OK'  
              else 'OK' end VALIDACAO,
      dados.usuario
from (
select a.cod_grupoempresa
     , a.cod_empresa
     , a.cod_filial
     , a.data_inicio
     , a.data_geracao
     , a.ano_ordemservico
     , a.nr_ordemservico
     , b.item_ordemservico
     , b.cod_fazenda
     , j.descricao descricao_fazenda
     , b.zona
     , b.cod_talhao
     , to_number(decode(nvl(d.numerocorte,0),'N/A',0,'12M',1,'18M',1,'00',0,nvl(d.numerocorte,0))) numerocorte
     , b.cod_safra
     , d.cod_cultura
     , k.desc_cultura descricao_cultura
     , b.cod_operacao
     , e.descricao descricao_operacao
     , g.negocio
     , g.descricao descricao_negocio
     , h.processo
     , h.descricao descricao_processo
     , i.subprocesso
     , i.descricao descricao_subprocesso
     , f.atividade
     , b.cod_objetocusto
     , f.descricao descricao_objetocusto
     , o.usuario
            
from agricola.ordemservico a
   , agricola.ordemservicoitem b
   , agricola.ordemservicoinsumo c
   , agricola.talhao d
   , rh.operacaoagricola e
   , rh.objetocusto f
   , rh.objetocusto g
   , rh.objetocusto h
   , rh.objetocusto i
   , agricola.fazenda j
   , agricola.cultura k
   , rh.funcionario l
   , rh.fisica m
   , rh.pessoa n
   , agricola.ordemservicoitemlog o
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_grupoempresa     = b.cod_grupoempresa
  and c.cod_empresa          = b.cod_empresa
  and c.cod_filial           = b.cod_filial
  and c.ano_ordemservico     = b.ano_ordemservico
  and c.nr_ordemservico      = b.nr_ordemservico
  and c.item_ordemservico    = b.item_ordemservico
  and d.cod_fazenda          = b.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_objetocusto      = b.cod_objetocusto
  and g.negocio              = f.negocio
  and g.processo             = 0
  and h.negocio              = f.negocio
  and h.processo             = f.processo
  and h.subprocesso          = 0
  and i.negocio              = f.negocio
  and i.processo             = f.processo
  and i.subprocesso          = f.subprocesso
  and i.atividade            = 0  
  and j.cod_fazenda          = b.cod_fazenda
  and k.cod_cultura          = d.cod_cultura
  and d.cod_cultura          = 1
  and l.cod_grupoempresa     = b.cod_grupoempresa
  and l.cod_funcionario      = b.cod_funcionario
  and m.cpf                  = l.cpf
  and n.cod_pessoa           = m.cod_pessoa
  and o.cod_grupoempresa     = a.cod_grupoempresa
  and o.cod_empresa          = a.cod_empresa
  and o.cod_filial           = a.cod_filial
  and o.ano_ordemservico     = a.ano_ordemservico
  and o.nr_ordemservico      = a.nr_ordemservico
  and o.operacao             = 'I'
  
  --and b.cod_safra >= 10 
  ) dados ) tabela
where tabela.validacao not like 'OK'
  and tabela.data_geracao >= to_date('01/10/2025','dd/mm/rrrr')
  --and (tabela.cod_fazenda = :COD_FAZENDA or :COD_FAZENDA = 0)
  --and (tabela.cod_talhao = :COD_TALHAO or :COD_TALHAO = 0)
  --and (tabela.cod_safra >= :COD_SAFRA or :COD_SAFRA = 0)
  and tabela.cod_operacao  not in (181,1005) ---- Verificado com Zé, Reforma
  --and tabela.cod_fazenda in (50,44001)
order by tabela.cod_grupoempresa||' - '||tabela.cod_empresa||' - '||tabela.cod_filial,
       --tabela.data_inicio,
       tabela.data_geracao,
       tabela.ano_ordemservico,
       tabela.nr_ordemservico,
       tabela.item_ordemservico,
       tabela.cod_fazenda,
       tabela.descricao_fazenda,
       tabela.zona,
       tabela.cod_talhao,
       tabela.numerocorte,
       tabela.cod_safra,
       tabela.negocio||' - '||tabela.descricao_negocio||' - '||tabela.processo||' - '||tabela.descricao_processo||' - '||tabela.subprocesso||' - '||tabela.descricao_subprocesso;


