Páginas filhas
  • ER_AGRPIMS01-2_Apontamento_unificado_de_atividades_agrícolas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.

 

(Obrigatório)

Informações Gerais

Especificação

Produto

PIMSMULTICULTIVOS

Módulo

Atividades e Recursos

Segmento Executor

Agroindústria

Projeto1

AGRO PIMS

IRM1

AGRPIMS01-1

Requisito1

AGRPIMS01-2

Subtarefa1

AGRPIMS01-5

País

(X) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

<Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>.

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 


 

Obrigatório)

Objetivo


 Apontamento Agrícola Unificado.  

 

(Obrigatório)

Definição da Regra de Negócio

Cadastro de Tipo de Apontamento Agrícola


Objetivo: Cadastro de Tipo de Apontamento Agrícola. O usuário poderá cadastrar os tipos de apontamentos agrícolas à serem utilizadas no sistema, configurar para quais as unidades administrativas, os usuários/grupos de usuários e os usuários de aplicativos móveis que poderão utilizar cada Tipo de Apontamento Agrícola.
Menu: Tabelas > Básicos > Tipo de Apontamento Agrícola
Entrada de menu: CFCM0080
Esboço da tela:




Campos Obrigatórios:

  • Código: Código do Tipo de Apontamento Agrícola. Não é permitido mais de um registro de Tipo de Apontamento Agrícola com o mesmo Código. Exemplo: 1, 2, 3, A, B e etc. Código formado por números e/ou letras (maiúsculas). (Tamanho do campo: 10 caracteres).
  • Descrição: Descrição do Tipo de Apontamento Agrícola. Não é permitido mais de um registro de Tipo de Apontamento Agrícola com a mesma Descrição. (Tamanho do campo: 50 caracteres).
  • Tipo: Identificação do Tipo de Apontamento Agrícola. Se houver registro de apontamento para o Tipo de Apontamento não poderá ser alterada a configuração do Tipo (todos os tipos ficam desabilitados). Tipos:
    • Mecanizada: Apontamento de Atividade Mecanizada.
    • Manual: Apontamento de Atividade Manual.
    • Insumo: Apontamento de Aplicação de Insumo.
    • Plantio: Apontamento de Plantio.
    • Produção: Apontamento de Atividade de Produção.
  • Permite Local de Produção diferente da Ordem de Serviço: Indica se permite informar Local de Produção diferente da Ordem de Serviço Campo (quando informada). Quando marcado indica que permite informar Local de Produção diferente da Ordem de Serviço Campo (quando informada), caso contrário não permite. Por padrão o campo é marcado.



Cabeçalho - Comum
Objetivo: Configurar os campos Comuns do Cabeçalho para o Tipo de Apontamento, indicando se o mesmo será utilizado, se será obrigatório e se estará habilitado. O grupo de campos "Cabeçalho - Comum" é habilitado para qualquer Tipo de apontamento.









  • Número: Número do Boletim de Apontamento.
    • Utiliza: Indica que o campo Número é utilizado. Campo marcado e desabilitado ao usuário.
    • Obrigatório: Indica que o campo Número é obrigatório. Campo marcado e desabilitado ao usuário.
    • Habilitado: Quando marcado indica que o campo Número é habilitado ao usuário para informar o número manualmente, caso contrário o número será gerado automaticamente de maneira sequencial por Tipo de Apontamento e Unidade Administrativa ficando desabilitado ao usuário. Ao indicar que não será Habilitado, se houverem registros de Apontamento será gerada uma Sequência com o último número de apontamento +1.

 

  • Data: Data do Apontamento.
    • Utiliza: Indica que o campo Data é utilizado. Campo marcado e desabilitado ao usuário.
    • Obrigatório: Indica que o campo Data é obrigatório. Campo marcado e desabilitado ao usuário.
    • Habilitado: Indica que o campo Data é habilitado. Campo marcado e desabilitado ao usuário.

 

  • Turno: Turno (Diurno/Noturno) do Apontamento.
    • Utiliza: Quando marcado indica que o campo Turno é utilizado.
    • Obrigatório: Quando marcado indica que o campo Turno é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Equipe: Equipe que realizou a operação.
    • Utiliza: Quando marcado indica que o campo Equipe é utilizado.
    • Obrigatório: Quando marcado indica que o campo Equipe é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Observação: Observação referente ao Apontamento.
    • Utiliza: Quando marcado indica que o campo Observação é utilizado.
    • Obrigatório: Quando marcado indica que o campo Observação é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Temperatura: Temperatura no momento em que foi realizada a operação.
    • Utiliza: Quando marcado indica que o campo Temperatura é utilizado.
    • Obrigatório: Quando marcado indica que o campo Temperatura é obrigatório, campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Umidade: Umidade relativa do ar no momento em que foi realizada a operação.
    • Utiliza: Quando marcado indica que o campo Umidade é utilizado.
    • Obrigatório: Quando marcado indica que o campo Umidade é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Velocidade do Vento: Velocidade do Vento no momento em que foi realizada a operação.
    • Utiliza: Quando marcado indica que o campo Velocidade do Vento é utilizado.
    • Obrigatório: Quando marcado indica que o campo Velocidade do Vento é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Direção do Vento: Direção do Vento no momento em que foi realizada a operação.
    • Utiliza: Quando marcado indica que o campo Direção do Vento é utilizado.
    • Obrigatório: Quando marcado indica que o campo Direção do Vento é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Condição do Solo: Condição do Solo no momento em que foi realizada a operação.
    • Utiliza: Quando marcado indica que o campo Condição do Solo é utilizado.
    • Obrigatório: Quando marcado indica que o campo Condição do Solo é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Condição do Tempo: Condição do Tempo no momento em que foi realizada a operação.
    • Utiliza: Quando marcado indica que o campo Condição do Tempo é utilizado.
    • Obrigatório: Quando marcado indica que o campo Condição do Tempo é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Ordem de Serviço de Campo: Ordem de Serviço de Campo utilizada para realização da operação.
    • Utiliza: Quando marcado indica que o campo Ordem de Serviço de Campo é utilizado.
    • Obrigatório: Quando marcado indica que o campo Ordem de Serviço de Campo é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Ano Agrícola: Ano Agrícola do Local de Produção. Configuração visível somente quando configurado que Utiliza Ano Agrícola na identificação do Local de Produção.
    • Utiliza: Quando marcado indica que o campo Ano Agrícola é utilizado no Cabeçalho - Comum. Se o Tipo for de Insumo e/ou Plantio é obrigatório informar o Ano Agrícola no Cabeçalho Comum ou no Detalhe do Local de Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe do Local de Produção estará desmarcado e vice-versa.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Período de Produção: Período de Produção do Local de Produção.
    • Utiliza: Quando marcado indica que o campo Período de Produção é utilizado no Cabeçalho - Comum. Se o Tipo for de Insumo e/ou Plantio é obrigatório informar o Período de Produção no Cabeçalho Comum ou no Detalhe do Local de Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe do Local de Produção estará desmarcado e vice-versa. Para utilizar o Período de Produção no Cabeçalho - Comum é necessário configurar a utilização do Ano Agrícola no Cabeçalho - Comum se o sistema estiver configurado para utilizar Ano Agrícola (configuração do Local de Produção).
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Fazenda]: Nível 1 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Fazenda] é utilizado no Cabeçalho Comum. Se o Tipo for de Insumo e/ou Plantio é obrigatório informar o campo [Fazenda] no Cabeçalho Comum ou no Detalhe do Local de Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe do Local de Produção estará desmarcado e vice-versa.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Setor]: Nível 2 do Local de Produção. Configuração visível somente quando configurado que Utiliza [Setor] / Nível 2 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Setor] é utilizado no Cabeçalho - Comum. Se o Tipo for de Insumo e/ou Plantio, e utilizar [Setor] (configuração do Local de Produção), é obrigatório informar o [Setor] no Cabeçalho Comum ou no Detalhe do Local de Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe do Local de Produção o campo estará desmarcado e vice-versa. Para utilizar o [Setor] no Cabeçalho – Comum é necessário configurar a utilização da [Fazenda] no Cabeçalho – Comum.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Talhão]: Nível 3 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Talhão] é utilizado no Cabeçalho - Comum. Se o Tipo for de Insumo e/ou Plantio, é obrigatório informar o [Talhão] no Cabeçalho Comum ou no Detalhe do Local de Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe do Local de Produção o campo estará desmarcado e vice-versa. Para utilizar o [Talhão] no Cabeçalho - Comum é necessário configurar a utilização do [Setor] (se configurado que utiliza [Setor] na configuração do Local de Produção no Cabeçalho - Comum). Para utilizar o [Talhão] no Cabeçalho - Comum é necessário configurar a utilização da [Fazenda] e do Período de Produção no Cabeçalho - Comum.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Centro de Custo: Centro de Custo referente à operação realizada.
    • Utiliza: Quando marcado indica que o campo Centro de Custo é utilizado no Cabeçalho do Apontamento. Se o Tipo for Insumo ou Plantio, o campo é marcado e desabilitado ao usuário. Se o Tipo for Mecanizada e for informada a Área no "Detalhe – Local de Produção" ou no "Cabeçalho – Comum" é obrigatório utilizar o Centro de Custo no Cabeçalho - Comum.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Operação: Operação realizada.
    • Utiliza: Quando marcado indica que o campo Operação é utilizado no Cabeçalho do Apontamento. Se o Tipo for Insumo ou Plantio, o campo é marcado e desabilitado ao usuário. Se informado que utiliza Operação no Cabeçalho é obrigatório informar o campo Centro de Custo também no Cabeçalho. Se o Tipo for Mecanizada e for informada a Área no "Detalhe – Local de Produção" ou no "Cabeçalho – Comum" é obrigatório utilizar a Operação no Cabeçalho - Comum.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Área: Área Trabalhada.
    • Utiliza: Quando marcado indica que o campo Área é utilizado no Cabeçalho - Comum. Campo marcado quando o Local de Produção/[Talhão] estiver configurado para ser informado no cabeçalho, o tipo de apontamento deve ser Mecanizada, Plantio ou Insumo, caso contrário o mesmo estará desmarcado. Se marcado para Utilizar no Cabeçalho, no Detalhe do Local de Produção o campo estará desmarcado e vice-versa. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado e indica que o campo Área é obrigatório no Cabeçalho – Comum. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado e indica que o campo Área é habilitado no Cabeçalho - Comum, caso contrário o mesmo estará desmarcado. Campo desabilitado ao usuário.

 

  • Equipamento: Equipamento utilizado na execução da atividade.
    • Utiliza: Campo marcado indicando que o Equipamento é utilizado quando o Tipo de Apontamento for "Mecanizado". Campo desabilitado ao usuário quando o Tipo de Apontamento for "Mecanizado".
    • Obrigatório: Quando configurado que Utiliza, o mesmo é marcado indicando que o Equipamento é obrigatório. Campo desabilitado ao usuário quando o Tipo de Apontamento for "Mecanizado".
    • Habilitado: Quando configurado que Utiliza, o mesmo é marcado indicando que o Equipamento é habilitado. Campo desabilitado ao usuário.

 

  • Dispositivo Móvel - Número: Número do Dispositivo Móvel.
    • Utiliza: Quando marcado indica que o campo Número do Dispositivo Móvel é utilizado.
    • Obrigatório: Campo desmarcado indicando que o Número do Dispositivo Móvel não é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo desmarcado indicando que o Número do Dispositivo Móvel é desabilitado. Campo desabilitado ao usuário.

 

  • Dispositivo Móvel - Número Apontamento: Número do Apontamento no Dispositivo Móvel.
    • Utiliza: Quando marcado indica que o campo Número do Apontamento no Dispositivo Móvel é utilizado.
    • Obrigatório: Campo desmarcado indicando que o Número do Apontamento no Dispositivo Móvel não é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo desmarcado indicando que o Número do Apontamento no Dispositivo Móvel é desabilitado. Campo desabilitado ao usuário.

 

  • Dispositivo Móvel - Usuário: Usuário que realizou o apontamento no Dispositivo Móvel.
    • Utiliza: Quando marcado indica que o campo Usuário do Dispositivo Móvel é utilizado.
    • Obrigatório: Campo desmarcado indicando que o Usuário do Dispositivo Móvel não é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo desmarcado indicando que o Usuário do Dispositivo Móvel é desabilitado. Campo desabilitado ao usuário.


Cabeçalho - Plantio
Objetivo: Configurar os campos do Cabeçalho para o Tipo de Apontamento de Plantio, indicando se o mesmo será utilizado, se será obrigatório e se estará habilitado. O grupo de campos "Cabeçalho - Plantio" somente é habilitado quando o Tipo for Plantio.



  • Replantio: Indica se o Local de Produção está sendo replantado (Sim/Não).
    • Utiliza: Quando marcado indica que o campo Replantio é utilizado no cabeçalho de Plantio. Campo marcado quando o Local de Produção/[Talhão] estiver configurado para ser informado no cabeçalho, caso contrário o mesmo estará desmarcado. Campo desabilitado ao usuário.
    • Obrigatório: Quando marcado indica que o campo Replantio é obrigatório no cabeçalho de Plantio. Campo marcado quando o Local de Produção/[Talhão] estiver configurado para ser informado no cabeçalho, caso contrário o mesmo estará desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando marcado indica que o campo Replantio é habilitado no cabeçalho de Plantio. Campo marcado quando o Local de Produção/[Talhão] estiver configurado para ser informado no cabeçalho, caso contrário o mesmo estará desmarcado. Campo desabilitado ao usuário.

 

  • Tratamento de Semente/Muda: Número do Tratamento de Semente/Muda.
    • Utiliza: Quando marcado indica que o campo Tratamento de Semente/Muda é utilizado. Campo habilitado somente quando o Período de Produção estiver marcado no Cabeçalho Comum, caso contrário o mesmo fica desmarcado e desabilitado.
    • Obrigatório: Quando marcado indica que o campo Tratamento de Semente/Muda é obrigatório, porém descrito que será condicionalmente, ou seja, se marcado como Obrigatório o mesmo será obrigatório somente quando configurado "Informar Tratamento de Sementes/Mudas no Plantio" para a Cultura/Ocupação. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, porém descrito que será condicionalmente, ou seja, será habilitado somente configurado que "Utiliza Semente no Plantio" para a Cultura/Ocupação. Se não utiliza Tratamento de Semente/Muda o campo Habilitado é desmarcado. Campo desabilitado ao usuário.

 

  • Peneira: Número da Peneira referente à semente utilizada no Plantio.
    • Utiliza: Quando marcado indica que o campo Peneira é utilizado.
    • Obrigatório: Quando marcado indica que o campo Peneira é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, porém descrito que será condicionalmente, ou seja, será habilitado somente configurado que "Utiliza Semente no Plantio" para a Cultura/Ocupação. Se não utiliza Peneira o campo Habilitado é desmarcado. Campo desabilitado ao usuário.

 

  • Vigor (%): Percentual de vigor referente à semente utilizada no Plantio.
    • Utiliza: Quando marcado indica que o campo Vigor é utilizado.
    • Obrigatório: Quando marcado indica que o campo Vigor é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, porém descrito que será condicionalmente, ou seja, será habilitado somente configurado que "Utiliza Semente no Plantio" para a Cultura/Ocupação. Se não utiliza Vigor o campo Habilitado é desmarcado. Campo desabilitado ao usuário.

 

  • Germinação (%): Percentual de germinação referente à semente utilizada no Plantio.
    • Utiliza: Quando marcado indica que o campo Germinação é utilizado.
    • Obrigatório: Quando marcado indica que o campo Germinação é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, porém descrito que será condicionalmente, ou seja, será habilitado somente configurado que "Utiliza Semente no Plantio" para a Cultura/Ocupação. Se não utiliza Germinação o campo Habilitado é desmarcado. Campo desabilitado ao usuário.

 

  • Densidade (Semente-Muda/m): Densidade em metros da Semente/Muda plantada.
    • Utiliza: Quando marcado indica que o campo Densidade é utilizado.
    • Obrigatório: Quando marcado indica que o campo Densidade é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Sistema de Cultivo: Sistema de Cultivo a ser utilizado no Local de Produção.
    • Utiliza: Quando marcado indica que o campo Sistema de Cultivo é utilizado.
    • Obrigatório: Quando marcado indica que o campo Sistema de Cultivo é obrigatório, porém descrito que será condicionalmente, ou seja, se marcado como Obrigatório o mesmo será obrigatório somente quando configurado "Obrigar informar Sistema de Cultivo" para a Cultura/Ocupação. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Sistema de Plantio: Sistema de Plantio a ser utilizado no Local de Produção.
    • Utiliza: Quando marcado indica que o campo Sistema de Plantio é utilizado.
    • Obrigatório: Quando marcado indica que o campo Sistema de Plantio é obrigatório, porém descrito que será condicionalmente, ou seja, se marcado como Obrigatório o mesmo será obrigatório somente quando configurado "Obrigar informar Sistema de Plantio" para a Cultura/Ocupação. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Número de Linhas: Número de Linhas a ser utilizada no Plantio.
    • Utiliza: Quando marcado indica que o campo Número de Linhas é utilizado.
    • Obrigatório: Quando marcado indica que o campo Número de Linhas é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Royalties: Indica se a semente/muda plantada possui royalties (Sim/Não).
    • Utiliza: Quando marcado indica que o campo Royalties é utilizado.
    • Obrigatório: Quando marcado indica que o campo Royalties é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Espaçamento: Espaçamento utilizado no plantio.
    • Utiliza: Quando marcado indica que o campo Espaçamento é utilizado.
    • Obrigatório: Quando marcado indica que o campo Espaçamento é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Variedade: Variedade a ser plantada.
    • Utiliza: Quando marcado indicando que o campo Variedade é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Quando marcado indicando que o campo Variedade é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Quando marcado indicado que o campo Variedade é obrigatório. Campo desabilitado ao usuário.



Cabeçalho - Insumo
Objetivo: Configurar os campos do Cabeçalho para o Tipo de Apontamento de Insumos e Plantio, indicando se o mesmo será utilizado, se será obrigatório e se estará habilitado. O grupo de campos "Cabeçalho - Insumo" somente é habilitado quando o Tipo for Insumo e/ou Plantio.

  • Tipo de Aplicação: Tipo/Número de aplicação.
    • Utiliza: Quando marcado indica que o campo Tipo de Aplicação é utilizado.
    • Obrigatório: Quando marcado indica que o campo Tipo de Aplicação é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Tipo de Bico: Tipo de Bico utilizado na aplicação de insumo.
    • Utiliza: Quando marcado indica que o campo Tipo de Bico é utilizado.
    • Obrigatório: Quando marcado indica que o campo Tipo de Bico é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Sistema de Aplicação: Sistema utilizado na aplicação de insumo.
    • Utiliza: Quando marcado indica que o campo Sistema de Aplicação é utilizado.
    • Obrigatório: Quando marcado indica que o campo Sistema de Aplicação é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Vazão Programada/ha: Vazão programada por hectare planejada na aplicação de insumo.
    • Utiliza: Quando marcado indica que o campo Vazão Programada/ha é utilizado.
    • Obrigatório: Quando marcado indica que o campo Vazão Programada/ha é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Volume Aplicado: Volume total utilizado na aplicação de insumo.
    • Utiliza: Quando marcado indica que o campo Volume Aplicado é utilizado.
    • Obrigatório: Quando marcado indica que o campo Volume Aplicado é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • pH Calda: pH da Calda utilizada na aplicação de insumo.
    • Utiliza: Quando marcado indica que o campo pH Calda é utilizado.
    • Obrigatório: Quando marcado indica que o campo pH Calda é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.



Cabeçalho - Mecanizada
Objetivo: Configurar os campos do Cabeçalho para o Tipo de Apontamento de Mecanizada, indicando se o mesmo será utilizado, se será obrigatório e se estará habilitado. O grupo de campos "Cabeçalho - Mecanizada" somente é habilitado quando o Tipo for Mecanizada.

  • Operador: Operador do equipamento.
    • Utiliza: Quando marcado indica que o campo Operador é utilizado.
    • Obrigatório: Quando marcado indica que o campo Operador é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Hora Inicial – Jornada do Operador: Hora Inicial da Jornada do Operador.
    • Utiliza: Quando marcado indica que o campo Hora Inicial é utilizado. Quando marcado para utilizar, automaticamente os campos "Hora Final - Jornada do Operador" e "Jornada do Operador" são marcados para sua utilização.
    • Obrigatório: Quando marcado indica que o campo Hora Inicial – Jornada do Operador é obrigatório. Quando marcado como obrigatório, automaticamente os campos "Hora Final - Jornada do Operador" e "Jornada do Operador" são marcados como obrigatórios. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Hora Final – Jornada do Operador: Hora Final da Jornada do Operador.
    • Utiliza: Quando marcado indica que o campo Hora Final é utilizado. A configuração de utilização do campo Hora Final da Jornada do Operador será sempre a mesma configuração informada para a utilização do campo Hora Inicial - Jornada do Operador. Campo desabilitado ao usuário.
    • Obrigatório: Quando marcado indica que o campo Hora Final é obrigatório. A configuração de obrigatoriedade do campo Hora Final da Jornada do Operador será sempre a mesma configuração informada para a obrigatoriedade do campo Hora Inicial - Jornada do Operador. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Jornada do Operador: Jornada total do Operador (campo calculado pelo sistema).
    • Utiliza: Quando marcado indica que o campo Jornada do Operador é utilizado. A configuração de utilização do campo Jornada do Operador será sempre a mesma configuração informada para a utilização do campo Hora Inicial - Jornada do Operador. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado quando configurado que utiliza a Jornada do Operador. Campo desabilitado ao usuário.
    • Habilitado: Campo desmarcado indicando que o mesmo não é habilitado. Campo desabilitado ao usuário.



Cabeçalho - Produção
Objetivo: Configurar os campos do Cabeçalho para o Tipo de Apontamento de Produção, indicando se o mesmo será utilizado, se será obrigatório e se estará habilitado. O grupo de campos "Cabeçalho - Produção" somente é habilitado quando o Tipo for Produção.

  • Produção: Produção da Operação.
    • Utiliza: Quando marcado indica que o campo Produção é utilizado no cabeçalho de Produção. Campo marcado quando o Local de Produção/[Talhão] estiver configurado para ser informado no Cabeçalho Comum, caso contrário o mesmo estará desmarcado. Campo desabilitado ao usuário.
    • Obrigatório: Quando marcado indica que o campo Produção é obrigatório no cabeçalho de Produção. Campo marcado quando o Local de Produção/[Talhão] estiver configurado para ser informado no cabeçalho, caso contrário o mesmo estará desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando marcado indica que o campo Produção é habilitado no cabeçalho de Produção. Campo marcado quando o Local de Produção/[Talhão] estiver configurado para ser informado no cabeçalho, caso contrário o mesmo estará desmarcado. Campo desabilitado ao usuário.



Detalhe - Insumo
Objetivo: Configurar os campos do Detalhe para o Tipo de Apontamento de Insumos, indicando se o mesmo será utilizado, se será obrigatório e se estará habilitado. O grupo de campos "Detalhe - Insumo" somente é habilitado quando o Tipo for Insumo e/ou Plantio.

  • Insumo: Insumo aplicado.
    • Utiliza: Campo marcado indicando que o campo Insumo é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Insumo é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo marcado indicando que o campo Insumo é habilitado. Campo desabilitado ao usuário.

 

  • Número de Lote: Número do Lote do insumo aplicado.
    • Utiliza: Campo marcado indicando que o campo Número de Lote é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Número de Lote é obrigatório, porém descrito que é condicionalmente, ou seja, se o Insumo for controlado por Lote o mesmo será obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo marcado indicando que o campo Número de Lote é habilitado. Campo desabilitado ao usuário.

 

  • Depósito: Depósito para baixa de estoque do insumo. Quando se utiliza integração para movimentação de estoque é necessário utilizar o Depósito e o mesmo ser obrigatório.
    • Utiliza: Quando marcado indica que o campo Depósito é utilizado.
    • Obrigatório: Quando marcado indica que o campo Depósito é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Dose Programada/ha: Dose programada por hectare para o Insumo.
    • Utiliza: Quando marcado indica que o campo Dose Programada/ha é utilizado.
    • Obrigatório: Quando marcado indica que o campo Dose Programada/ha é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Quantidade Total: Quantidade Total do Insumo aplicado.
    • Utiliza: Campo marcado indicando que o campo Quantidade Total é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Quantidade Total é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo marcado indicando que o campo Quantidade Total é habilitado. Campo desabilitado ao usuário.

 

  • Procedência: Procedência da Semente/Muda.
    • Utiliza: Quando marcado indica que o campo Procedência é utilizado.
    • Obrigatório: Quando marcado indica que o campo Procedência é obrigatório, porém descrito que será condicionalmente, ou seja, se marcado como Obrigatório o mesmo será obrigatório somente para Semente/Muda. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, porém descrito que será condicionalmente, ou seja, será habilitado somente para Semente/Muda. Se não utiliza Procedência o campo Habilitado é desmarcado. Campo desabilitado ao usuário.



Detalhe - Local de Produção
Objetivo: Configurar os campos do Detalhe para o Local de Produção, indicando se o mesmo será utilizado, se será obrigatório e se estará habilitado. O grupo de campos "Detalhe - Local de Produção" somente é habilitado quando o Tipo for Mecanizada, e/ou Insumo e/ou Plantio.



  • Ano Agrícola: Ano Agrícola do Local de Produção. Configuração visível somente quando configurado que Utiliza Ano Agrícola na identificação do Local de Produção.
    • Utiliza: Quando marcado indica que o campo Ano Agrícola é utilizado no Detalhe do Local de Produção. Se o Tipo for de Insumo e/ou Plantio é obrigatório informar o Ano Agrícola no Cabeçalho Comum ou no Detalhe do Local de Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe do Local de Produção estará desmarcado e vice-versa. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Período de Produção: Período de Produção do Local de Produção.
    • Utiliza: Quando marcado indica que o campo Período de Produção é utilizado no Detalhe do Local de Produção. Se o Tipo for de Insumo e/ou Plantio é obrigatório informar o Período de Produção no Cabeçalho Comum ou no Detalhe do Local de Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe do Local de Produção estará desmarcado e vice-versa. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Fazenda]: Nível 1 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Fazenda] é utilizado no Detalhe do Local de Produção. Se o Tipo for de Insumo e/ou Plantio é obrigatório informar o campo [Fazenda] no Cabeçalho Comum ou no Detalhe do Local de Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe do Local de Produção estará desmarcado e vice-versa. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Setor]: Nível 2 do Local de Produção. Configuração visível somente quando configurado que Utiliza [Setor] / Nível 2 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Setor] é utilizado no Detalhe do Local de Produção. Se o Tipo for de Insumo e/ou Plantio, e utilizar [Setor] (configuração do Local de Produção), é obrigatório informar o [Setor] no Cabeçalho Comum ou no Detalhe do Local de Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe do Local de Produção o campo estará desmarcado e vice-versa. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Talhão]: Nível 3 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Talhão] é utilizado no Detalhe do Local de Produção. Se o Tipo for de Insumo e/ou Plantio é obrigatório informar o [Talhão] no Cabeçalho Comum ou no Detalhe do Local de Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe do Local de Produção o campo estará desmarcado e vice-versa. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Área: Área trabalhada.
    • Utiliza: Quando marcado indica que o campo Área é utilizado no Detalhe do Local de Produção. Somente é possível utilizar a área quando o [Talhão] está configurado para ser utilizado no "Detalhe – Local de Produção" ou no "Cabeçalho – Comum". Campo marcado quando o Local de Produção/[Talhão] estiver configurado para ser informado no Detalhe – Local de Produção. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado e indica que o campo Área é obrigatório no Detalhe – Local de Produção. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado e indica que o campo Área é habilitado no Detalhe – Local de Produção, caso contrário o mesmo estará desmarcado. Campo desabilitado ao usuário.

 

  • Replantio: Indica se o Local de Produção está sendo replantado (Sim/Não).
    • Utiliza: Quando marcado indica que o campo Replantio é utilizado no Detalhe do Local de Produção. Campo marcado quando o Tipo for Plantio e o Local de Produção/[Talhão] não estiver configurado para ser informado no cabeçalho comum, caso contrário o mesmo estará desmarcado. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.



Detalhe - Mecanizada
Objetivo: Configurar os campos do Detalhe para Mecanizada, indicando se o mesmo será utilizado, se será obrigatório e se estará habilitado. O grupo de campos "Detalhe - Mecanizada" somente é habilitado quando o Tipo for Mecanizada.




  • Ordem de Serviço de Campo: Ordem de Serviço de Campo utilizada para realização da operação.
    • Utiliza: Quando marcado indica que o campo Ordem de Serviço de Campo é utilizado. Se a Ordem de Serviço de Campo estiver marcada no "Cabeçalho - Comum", esse campo fica desmarcado e desabilitado.
    • Obrigatório: Quando marcado indica que o campo Ordem de Serviço de Campo é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Ano Agrícola: Ano Agrícola do Local de Produção. Configuração visível somente quando configurado que Utiliza Ano Agrícola na identificação do Local de Produção.
    • Utiliza: Quando marcado indica que o campo Ano Agrícola é utilizado no Detalhe da Mecanizada. Se marcado para Utilizar no Cabeçalho, no Detalhe da Mecanizada estará desmarcado e desabilitado.
    • Obrigatório: Quando marcado indica que o campo Ano Agrícola é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Período de Produção: Período de Produção do Local de Produção.
    • Utiliza: Quando marcado indica que o campo Período de Produção é utilizado no Detalhe da Mecanizada. Se marcado para Utilizar no Cabeçalho, no Detalhe da Mecanizada estará desmarcado e desabilitado. Para utilizar o Período de Produção no Detalhe da Mecanizada é necessário configurar a utilização do Ano Agrícola no Cabeçalho - Comum ou no Detalhe da Mecanizada, se o sistema estiver configurado para utilizar Ano Agrícola (configuração do Local de Produção).
    • Obrigatório: Quando marcado indica que o campo Período de Produção é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Fazenda]: Nível 1 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Fazenda] é utilizado no Detalhe da Mecanizada. Se marcado para Utilizar no Cabeçalho, no Detalhe da Mecanizada estará desmarcado e desabilitado.
    • Obrigatório: Quando marcado indica que o campo [Fazenda] é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Setor]: Nível 2 do Local de Produção. Configuração visível somente quando configurado que Utiliza [Setor] / Nível 2 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Setor] é utilizado no Detalhe da Mecanizada. Se marcado para Utilizar no Cabeçalho, no Detalhe da Mecanizada o campo estará desmarcado e desabilitado. Se configurado para Utilizar, é necessário que o campo [Fazenda] esteja configurado para utilizar no Cabeçalho ou no Detalhe de Mecanizada.
    • Obrigatório: Quando marcado indica que o campo [Setor] é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Talhão]: Nível 3 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Talhão] é utilizado no Detalhe da Mecanizada. Se marcado para Utilizar no Cabeçalho, no Detalhe da Mecanizada o campo estará desmarcado e desabilitado. Para utilizar o [Talhão] no Detalhe da Mecanizada é necessário configurar a utilização do [Setor] (se configurado que utiliza [Setor] na configuração do Local de Produção) no Cabeçalho - Comum ou no Detalhe da Mecanizada. Para utilizar o [Talhão] no Detalhe da Mecanizada é necessário configurar a utilização da [Fazenda] e do Período de Produção no Cabeçalho - Comum ou no Detalhe da Mecanizada.
    • Obrigatório: Quando marcado indica que o campo [Talhão] é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Centro de Custo: Centro de Custo referente à operação realizada.
    • Utiliza: Quando marcado indica que o campo Centro de Custo é utilizado no Detalhe da Mecanizada. Se não marcado para Utilizar no Cabeçalho Comum, no Detalhe da Mecanizada estará marcado e desabilitado.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Operação: Operação realizada.
    • Utiliza: Quando marcado indica que o campo Operação é utilizado no Detalhe da Mecanizada. Se não marcado para Utilizar no Cabeçalho Comum, no Detalhe da Mecanizada estará marcado e desabilitado.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Operação Principal: Operação principal realizada.
    • Utiliza: Quando marcado indica que o campo Operação Principal é utilizado no Detalhe da Mecanizada.
    • Obrigatório: Quando marcado indica que o campo Ordem de Serviço de Campo é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Implemento: Implemento agrícola utilizado na realização da operação.
    • Utiliza: Campo marcado indicando que o campo Implemento é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Implemento é obrigatório, porém descrito que é condicionalmente, ou seja, se o Operação estiver configurada que utiliza Implemento o mesmo será obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo marcado indicando que o campo Implemento é habilitado. Campo desabilitado ao usuário.

 

  • Hr/Km Inicial: Horímetro/Odômetro inicial.
    • Utiliza: Campo marcado indicando que o campo Hr/Km Inicial é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Hr/Km Inicial é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo marcado indicando que o campo Hr/Km Inicial é habilitado. Campo desabilitado ao usuário.

 

  • Hr/Km Final: Horímetro/Odômetro final.
    • Utiliza: Campo marcado indicando que o campo Hr/Km Final é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Hr/Km Final é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo marcado indicando que o campo Hr/Km Final é habilitado. Campo desabilitado ao usuário.

 

  • Hr/Km Total: Horímetro/Odômetro total.
    • Utiliza: Campo marcado indicando que o campo Hr/Km total é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Hr/Km Final é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo desmarcado indicando que o campo Hr/Km Final é desabilitado. Campo desabilitado ao usuário.

 

  • Produção: Produção do equipamento (informativo).
    • Utiliza: Quando marcado indica que o campo Produção é utilizado no Detalhe da Mecanizada.
    • Obrigatório: Campo marcado indicando que o campo Produção é obrigatório, porém descrito que é condicionalmente, ou seja, se a Operação estiver configurada que informa Produção na Mecanizada o mesmo será obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.


Detalhe - Manual
Objetivo: Configurar os campos do Detalhe para Manual, indicando se o mesmo será utilizado, se será obrigatório e se estará habilitado. O grupo de campos "Detalhe - Manual" somente é habilitado quando o Tipo for Manual.



  • Ordem de Serviço de Campo: Ordem de Serviço de Campo utilizada para realização da operação.
    • Utiliza: Quando marcado indica que o campo Ordem de Serviço de Campo é utilizado. Se a Ordem de Serviço de Campo estiver marcada no "Cabeçalho - Comum", esse campo fica desmarcado e desabilitado.
    • Obrigatório: Quando marcado indica que o campo Ordem de Serviço de Campo é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Ano Agrícola: Ano Agrícola do Local de Produção. Configuração visível somente quando configurado que Utiliza Ano Agrícola na identificação do Local de Produção.
    • Utiliza: Quando marcado indica que o campo Ano Agrícola é utilizado no Detalhe - Manual. É obrigatório informar o Ano Agrícola no Cabeçalho Comum ou no Detalhe - Manual. Se marcado para Utilizar no Cabeçalho, no Detalhe - Manual estará desmarcado e vice-versa. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Período de Produção: Período de Produção do Local de Produção.
    • Utiliza: Quando marcado indica que o campo Período de Produção é utilizado no Detalhe - Manual. É obrigatório informar o Período de Produção no Cabeçalho Comum ou no Detalhe - Manual. Se marcado para Utilizar no Cabeçalho, no Detalhe - Manual estará desmarcado e vice-versa. Para utilizar o Período de Produção no Detalhe - Manual é necessário configurar a utilização do Ano Agrícola no Cabeçalho - Comum ou no Detalhe - Manual, se o sistema estiver configurado para utilizar Ano Agrícola (configuração do Local de Produção). Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Fazenda]: Nível 1 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Fazenda] é utilizado no Detalhe - Manual. Se marcado para Utilizar no Cabeçalho, no Detalhe - Manual estará desmarcado, caso contrário estará marcado. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Setor]: Nível 2 do Local de Produção. Configuração visível somente quando configurado que Utiliza [Setor] / Nível 2 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Setor] é utilizado no Detalhe - Manual. Se marcado para Utilizar no Cabeçalho, no Detalhe - Manual o campo estará desmarcado, caso contrário estará marcado. Se configurado para Utilizar, é necessário que o campo [Fazenda] esteja configurado para utilizar no Cabeçalho ou no Detalhe - Manual. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Talhão]: Nível 3 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Talhão] é utilizado no Detalhe - Manual. Se marcado para Utilizar no Cabeçalho, no Detalhe - Manual o campo estará desmarcado, caso contrário estará marcado. Para utilizar o [Talhão] no Detalhe - Manual é necessário configurar a utilização do [Setor] (se configurado que utiliza [Setor] na configuração do Local de Produção) no Cabeçalho - Comum ou no Detalhe - Manual. Para utilizar o [Talhão] no Detalhe - Manual é necessário configurar a utilização da [Fazenda] e do Período de Produção no Cabeçalho - Comum ou no Detalhe - Manual. Campo desabilitado ao usuário.
    • Obrigatório: Quando marcado indica que o campo [Talhão] é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Centro de Custo: Centro de Custo referente à operação realizada.
    • Utiliza: Quando marcado indica que o campo Centro de Custo é utilizado no Detalhe - Manual.

Se marcado para Utilizar no Cabeçalho, no Detalhe da Manual estará desmarcado, caso contrário estará marcado. Campo desabilitado ao usuário.

    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Operação: Operação realizada.
    • Utiliza: Quando marcado indica que o campo Operação é utilizado no Detalhe - Manual. Se marcado para Utilizar no Cabeçalho, no Detalhe - Manual estará desmarcado, caso contrário estará marcado. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Funcionário: Funcionário que realizou a operação.
    • Utiliza: Campo marcado indicando que o campo Funcionário é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Funcionário é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo marcado indicando que o campo Funcionário é habilitado. Campo desabilitado ao usuário.

 

  • Hora Inicial: Hora inicial de realização da operação.
    • Utiliza: Campo marcado indicando que o campo Hora Inicial é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Hora Inicial é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo marcado indicando que o campo Hora Inicial é habilitado. Campo desabilitado ao usuário.

 

  • Hora Final: Hora final de realização da operação.
    • Utiliza: Campo marcado indicando que o campo Hora Final é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Hora Final é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo marcado indicando que o campo Hora Final é habilitado. Campo desabilitado ao usuário.

 

  • Quantidade de Recursos: Quantidade recursos (funcionários) utilizados para realização da operação.
    • Utiliza: Campo marcado indicando que o campo Quantidade de Recursos é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Quantidade de Recursos é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo marcado indicando que o campo Quantidade de Recursos é habilitado, porém descrito que é condicionalmente, ou seja, se o Funcionário estiver configurado que é Coletivo o mesmo será habilitado, caso contrário será desabilitado. Campo desabilitado ao usuário.

 

  • Jornada: Jornada/duração para realização da operação.
    • Utiliza: Campo marcado indicando que o campo Jornada é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Jornada é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo marcado indicando que o campo Jornada é habilitado. Campo desabilitado ao usuário.

 

  • Produção: Produção da operação.
    • Utiliza: Quando marcado indica que o campo Produção é utilizado.
    • Obrigatório: Quando marcado indica que o campo Produção é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado. A obrigatoriedade poderá ter as condições:
      • Não (não será obrigatório).
      • Sim (será sempre obrigatório).
      • Quando Terceiros (será obrigatório quando o funcionário for Terceiro, ou seja, não for próprio).
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.


Detalhe - Produção
Objetivo: Configurar os campos do Detalhe para Produção da operação, indicando se o mesmo será utilizado, se será obrigatório e se estará habilitado. O grupo de campos "Detalhe - Produção" somente é habilitado quando o Tipo for Produção.


  • Ordem de Serviço de Campo: Ordem de Serviço de Campo utilizada para realização da operação.
    • Utiliza: Quando marcado indica que o campo Ordem de Serviço de Campo é utilizado. Se a Ordem de Serviço de Campo estiver marcada no "Cabeçalho - Comum", esse campo fica desmarcado e desabilitado.
    • Obrigatório: Quando marcado indica que o campo Ordem de Serviço de Campo é obrigatório. Campo habilitado quando configurado que Utiliza, caso contrário fica desmarcado e desabilitado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Ano Agrícola: Ano Agrícola do Local de Produção. Configuração visível somente quando configurado que Utiliza Ano Agrícola na identificação do Local de Produção.
    • Utiliza: Quando marcado indica que o campo Ano Agrícola é utilizado no Detalhe - Produção. É obrigatório informar o Ano Agrícola no Cabeçalho Comum ou no Detalhe - Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe - Produção estará desmarcado e vice-versa. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Período de Produção: Período de Produção do Local de Produção.
    • Utiliza: Quando marcado indica que o campo Período de Produção é utilizado no Detalhe - Produção. É obrigatório informar o Período de Produção no Cabeçalho Comum ou no Detalhe - Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe - Produção estará desmarcado e vice-versa. Para utilizar o Período de Produção no Detalhe - Produção é necessário configurar a utilização do Ano Agrícola no Cabeçalho - Comum ou no Detalhe - Produção, se o sistema estiver configurado para utilizar Ano Agrícola (configuração do Local de Produção). Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Fazenda]: Nível 1 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Fazenda] é utilizado no Detalhe - Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe - Produção estará desmarcado, caso contrário estará marcado. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Setor]: Nível 2 do Local de Produção. Configuração visível somente quando configurado que Utiliza [Setor] / Nível 2 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Setor] é utilizado no Detalhe - Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe - Produção o campo estará desmarcado, caso contrário estará marcado. Se configurado para Utilizar, é necessário que o campo [Fazenda] esteja configurado para utilizar no Cabeçalho ou no Detalhe - Produção. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • [Talhão]: Nível 3 do Local de Produção.
    • Utiliza: Quando marcado indica que o campo [Talhão] é utilizado no Detalhe - Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe - Produção o campo estará desmarcado, caso contrário estará marcado. Para utilizar o [Talhão] no Detalhe - Produção é necessário configurar a utilização do [Setor] (se configurado que utiliza [Setor] na configuração do Local de Produção) no Cabeçalho - Comum ou no Detalhe - Produção. Para utilizar o [Talhão] no Detalhe - Produção é necessário configurar a utilização da [Fazenda] e do Período de Produção no Cabeçalho - Comum ou no Detalhe - Produção. Campo desabilitado ao usuário.
    • Obrigatório: Quando marcado indica que o campo [Talhão] é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Centro de Custo: Centro de Custo referente à operação realizada.
    • Utiliza: Quando marcado indica que o campo Centro de Custo é utilizado no Detalhe - Produção.

Se marcado para Utilizar no Cabeçalho, no Detalhe da Produção estará desmarcado, caso contrário estará marcado. Campo desabilitado ao usuário.

    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Operação: Operação realizada.
    • Utiliza: Quando marcado indica que o campo Operação é utilizado no Detalhe - Produção. Se marcado para Utilizar no Cabeçalho, no Detalhe - Produção estará desmarcado, caso contrário estará marcado. Campo desabilitado ao usuário.
    • Obrigatório: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.
    • Habilitado: Quando configurado que Utiliza o mesmo é marcado, caso contrário é desmarcado. Campo desabilitado ao usuário.

 

  • Produção: Produção da operação.
    • Utiliza: Campo marcado indicando que o campo Produção é utilizado. Campo desabilitado ao usuário.
    • Obrigatório: Campo marcado indicando que o campo Produção é obrigatório. Campo desabilitado ao usuário.
    • Habilitado: Campo marcado indicando que o campo Produção é habilitado. Campo desabilitado ao usuário.



Unidades
Objetivo: Configurar para quais Unidades Administrativas o tipo de apontamento agrícola unificado está disponível para inclusão de novos apontamentos.


Campos Obrigatórios:

  • Unidade Administrativa: Unidade Administrativa para a qual o Tipo de Apontamento Agrícola pertence. A Unidade Administrativa deve estar previamente cadastrada. Não pode registrar mais de uma vez a mesma Unidade Administrativa para o mesmo Tipo de Apontamento Agrícola Unificado.
  • Ativo: Indica se o tipo de apontamento está "ativo" para a Unidade Administrativa. Quando marcado indica que o está "ativo", caso contrário, indica que está "inativo". Somente será permitido incluir novos apontamentos para os tipos de apontamentos que estão ativos para a Unidade Administrativa corrente.


Demais validações:

  • Não é permitido alterar/excluir Unidade Administrativa se já possuir apontamento para o Tipo de Apontamento Agrícola e a Unidade Administrativa.




Direitos de Acesso
Objetivo: Configurar os Grupos de Usuários e Usuários que podem utilizar o Tipo de Apontamento Agrícola Unificado. Se não for informado nenhum Grupo de Usuário e/ou Usuário indica que o Tipo de Apontamento Agrícola Unificado pode ser utilizado por qualquer Usuário.




Grupos de usuários:

  • Permite configurar quais os Grupos de Usuários podem utilizar o Tipo de Apontamento Agrícola.


Exceções:

  • Permite configurar quais os usuários deverão ser tratados como exceção.
  • ID usuário: Usuário que será tratado como exceção.
  • Permite (Sim/Não): Indica como será tratada a exceção para o usuário (Sim-Indica que será permitido utilizar o Tipo de Apontamento Agrícola Unificado para o usuário independente se o Grupo do Usuário estar ou não configurado para permissão. Não-Indica que "não" será permitido utilizar o Tipo de Apontamento Agrícola Unificado para o usuário independente se o Grupo do Usuário está ou não configurado para permitir.




Usuários - Aplicativos Móveis
Objetivo: Configurar os Usuários - Aplicativos Móveis que podem utilizar o Tipo de Apontamento Agrícola.




Campos Obrigatórios:

  • Usuário: Código do usuário do Aplicativo Móvel com permissão para utilizar o Tipo de Apontamento Agrícola Unificado. O usuário deve estar previamente cadastrado e pertencer as Unidades Administrativas associadas ao Tipo de Apontamento Agrícola Unificado. (Tamanho do Campo: 10 Inteiros).



Filtros:

  • Código: Código do Tipo de Apontamento. (Tamanho do Campo: 10 Caracteres).
  • Descrição: Descrição do Tipo de Apontamento. (Tamanho do Campo: 50 Caracteres).
  • Tipo: Identificação do Tipo de Apontamento Agrícola. Tipos:
    • Mecanizada: Apontamento de Atividade Mecanizada.
    • Manual: Apontamento de Atividade Manual.
    • Insumo: Apontamento de Aplicação de Insumo.
    • Plantio: Apontamento de Plantio.



Relatório:

  • Os filtros da tela serão aplicados para o relatório.






Campos:

  • Código: Código do Tipo de Apontamento.
  • Descrição: Descrição do Tipo de Apontamento.
  • Mecanizada: Indica se o tipo de apontamento é de Mecanizada (Sim/Não)
  • Manual: Indica se o tipo de apontamento é de Manual (Sim/Não)
  • Insumo: Indica se o tipo de apontamento é de Insumo (Sim/Não)
  • Plantio: Indica se o tipo de apontamento é de Plantio (Sim/Não)
  • Produção: Indica se o tipo de apontamento é de Produção (Sim/Não)



Especificação técnica:
Tabelas:

Descrição

Nome

Situação

Definição do Grupo de Campos do Tipo de Apontamento Agrícola

AU_DEF_GRPCPO

Novo

Definição de Campos do Apontamento Agrícola

AU_DEF_CPO

Novo

Tipo de Apontamento Agrícola Unificado

AU_TIPO

Novo

Configuração de Campos do Tipo de Apontamento

AU_TIPO_CPO

Novo

Unidades Administrativas para o Tipo de Apontamento

AU_TIPO_ADM

Novo

Grupos de Usuários para o Tipo de Apontamento

AU_TIPO_GROUPS

Novo

Exceções de Usuários do Tipo de Apontamento

AU_TIPO_USREXC

Novo

Usuário Mobile do Tipo de Apontamento

AU_TIPO_MOB

Novo















  • Campos tipados da tabela AU_DEF_CPO:

    Tabela

    Campo

    Padrão

    Visualização

    Gravação

    AU_DEF_CPO

    FG_UTILIZA

     

    Sim

    S

     

     

    Não

    N

     

     

     

     

    Null

     

    FG_OBRIGATORIO

     

    Sim

    S

     

     

    Não

    N

     

     

     

     

    Null

     

    FG_HABILITADO

     

    Sim

    S

     

     

    Não

    N

     

     

     

     

    Null

  • Campos tipados da tabela AU_TIPO:

    Tabela

    Campo

    Padrão

    Visualização

    Gravação

    AU_TIPO

    FG_MECANIZADO

     

    Sim

    S

     

     

    Não

    N

     

     

     

     

     

     

    FG_MANUAL

     

    Sim

    S

     

     

    Não

    N

     

     

     

     

     

     

    FG_INSUMO

     

    Sim

    S

     

     

    Não

    N

     

     

     

     

     

     

    FG_PLANTIO

     

    Sim

    S

     

     

    Não

    N

     

     

     

     

     

     

    FG_PRODUCAO

     

    Sim

    S

     

     

    Não

    N

     

     

     

     

     

     

    FG_LC_DIF_OS

    Sim

    S

     

     

     

    Não

    N

  • Campos tipados da tabela AU_TIPO_CPO:

 

Tabela

Campo

Padrão

Visualização

Gravação

AU_TIPO_CPO

FG_UTILIZA

 

Sim

S

 

 

Não

N

 

 

 

 

 

 

FG_OBRIGATORIO

 

Sim

S

 

 

Não

N

 

 

 

Condicionalmente

C

 

 

 

Executado por Terceiro

T

 

 

 

 

 

 

FG_HABILITADO

 

Sim

S

 

 

Não

N

 

 

 

Condicionalmente

C

 

 

 

 

 

 

  • Campos tipados da tabela AU_TIPO_ADM:

 

Tabela

Campo

Padrão

Visualização

Gravação

AU_TIPO_ADM

FG_ATIVO

 

Sim

S

 

 

 

Não

N

 

 

 

 

 

 

  • Campos tipados da tabela AU_TIPO_USREXC:

 

Tabela

Campo

Padrão

Visualização

Gravação

AU_TIPO_USREXC

FG_PERMITE

 

Sim

S

 

 

 

Não

N

 

 

 

 

 

 

  • Criação da tabela de grupo de campos:


CREATE TABLE AU_DEF_GRPCPO
(
ID_AU_DEF_GRPCPONUMBER(38,0) NOT NULL,
DE_AU_DEF_GRPCPOVARCHAR2(50) NOT NULL,
ID_TERMO NUMBER(38,0) NOT NULL,
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_DEF_GRPCPO_PK PRIMARY KEY (ID_AU_DEF_GRPCPO)
);
CREATE INDEX AU_DEF_GRPCPO_UN1 ON AU_DEF_GRPCPO (DE_AU_DEF_GRPCPO);
CREATE UNIQUE INDEX AU_DEF_GRPCPO_UN ON AU_DEF_GRPCPO (ID_TERMO);
ALTER TABLE AU_DEF_GRPCPO ADD CONSTRAINT AU_DEF_GRPCPO_FK_TERMO FOREIGN KEY (ID_TERMO) REFERENCES TERMO;

  • Inserção dos registros referentes aos grupos de definição de campos:


INSERT INTO AU_DEF_GRPCPO(ID_AU_DEF_GRPCPO, DE_AU_DEF_GRPCPO, ID_TERMO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (1,'Cabeçalho - Comum', 'X', 1, DATE, 'PRX');
INSERT INTO AU_DEF_GRPCPO(ID_AU_DEF_GRPCPO, DE_AU_DEF_GRPCPO, ID_TERMO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (2,'Cabeçalho - Plantio','X', 1, DATE, 'PRX');
INSERT INTO AU_DEF_GRPCPO(ID_AU_DEF_GRPCPO, DE_AU_DEF_GRPCPO, ID_TERMO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (3,'Cabeçalho - Insumo', 'X', 1, DATE, 'PRX');
INSERT INTO AU_DEF_GRPCPO(ID_AU_DEF_GRPCPO, DE_AU_DEF_GRPCPO, ID_TERMO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (4,'Cabeçalho - Mecanizada', 'X', 1, DATE, 'PRX');
INSERT INTO AU_DEF_GRPCPO(ID_AU_DEF_GRPCPO, DE_AU_DEF_GRPCPO, ID_TERMO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (5,'Cabeçalho - Produção', 'X', 1, DATE, 'PRX');
INSERT INTO AU_DEF_GRPCPO(ID_AU_DEF_GRPCPO, DE_AU_DEF_GRPCPO, ID_TERMO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (6,'Detalhe - Insumo', 'X', 1, DATE, 'PRX');
INSERT INTO AU_DEF_GRPCPO(ID_AU_DEF_GRPCPO, DE_AU_DEF_GRPCPO, ID_TERMO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (7,'Detalhe - Local de Produção', 'X', 1, DATE, 'PRX');
INSERT INTO AU_DEF_GRPCPO(ID_AU_DEF_GRPCPO, DE_AU_DEF_GRPCPO, ID_TERMO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (8,'Detalhe - Mecanizada', 'X', 1, DATE, 'PRX');
INSERT INTO AU_DEF_GRPCPO(ID_AU_DEF_GRPCPO, DE_AU_DEF_GRPCPO, ID_TERMO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (9,'Detalhe - Manual', 'X', 1, DATE, 'PRX');
INSERT INTO AU_DEF_GRPCPO(ID_AU_DEF_GRPCPO, DE_AU_DEF_GRPCPO, ID_TERMO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (10,'Detalhe - Produção', 'X', 1, DATE, 'PRX');
Observação: Os campos ID_TERMO preenchidos com 'X', significam que o ID_TERMO relacionado a tabela AU_DEF_GRPCPO, deverão ser criados na tabela Termo.

  • Criação da tabela de grupo de campos:


CREATE TABLE AU_DEF_CPO
(
ID_AU_DEF_CPO NUMBER(38,0) NOT NULL,
ID_AU_DEF_GRPCPONUMBER(38,0)NOT NULL,
CD_AU_DEF_CPO VARCHAR2(30)NOT NULL,
DE_AU_DEF_CPO VARCHAR2(50) NOT NULL,
ID_TERMO NUMBER(38,0) NOT NULL,
NR_ORDEM NUMBER(3,0) NOT NULL,
FG_UTILIZA VARCHAR2(1),
FG_OBRIGATORIO VARCHAR2(1),
FG_HABILITADO VARCHAR2(1),
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_DEF_CPO_PK PRIMARY KEY (ID_AU_DEF_CPO)
);
CREATE UNIQUE INDEX AU_DEF_CPO_UN ON AU_DEF_CPO(ID_AU_DEF_GRPCPO,CD_AU_DEF_CPO);
ALTER TABLE AU_DEF_CPO ADD CONSTRAINT AU_DEF_CPO_FK_AU_DEF_GRPCPO FOREIGN KEY (ID_AU_DEF_GRPCPO) REFERENCES AU_DEF_GRPCPO;
ALTER TABLE AU_DEF_CPO ADD CONSTRAINT AU_DEF_CPO_FK_TERMO FOREIGN KEY(ID_TERMO ) REFERENCES TERMO ;

  • Inserção dos registros referentes aos grupos de definição de campos:


INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (1, 1, 'NO_BOLETIM', 'Número', 2847, 1, 'S', 'S', null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (2, 1, 'DT_OPERACAO', 'Data', 51, 2, 'S', 'S', 'S', 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (3, 1, 'FG_TURNO', 'Turno', 14276, 3, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (4, 1, 'ID_EQUIPE', 'Equipe', 3334, 4, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (5, 1, 'DE_OBSERVACAO', 'Observação', 602, 5, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (6, 1, 'QT_TEMP_AR', 'Temperatura', 5815, 6, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (7, 1, 'QT_UMID_AR', 'Umidade', 5953, 7, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (8, 1, 'QT_VEL_VENTO', 'Velocidade do Vento', 5766, 8, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (9, 1, 'QT_DIR_VENTO', 'Direção do Vento', 5767, 9, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (10, 1, 'FG_COND_SOLO', 'Condição do Solo', 5768, 10, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (11, 1, 'ID_CM_CONTEMPO', 'Condição do Tempo', 5769, 11, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (12, 1, 'ID_APORDSERVICO', 'Ordem de Serviço de Campo', 5422, 12, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (13, 1, 'ID_SAFRA', 'Ano Agrícola', 264, 13, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (14, 1, 'ID_PERIODOSAFRA', 'Período de Produção', 1278, 14, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (15, 1, 'ID_CCUSTO', 'Centro de Custo', 268, 15, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (16, 1, 'ID_OPERACAO', 'Operação', 74, 16, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (17, 1, 'ID_UPNIVEL1', 'Fazenda', 15, 17, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (18, 1, 'ID_UPNIVEL2', 'Setor', 16, 18, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (19, 1, 'ID_UPNIVEL3', 'Talhao', 83, 19, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (20, 1, 'NO_COL_MOBILIDADE', 'Dispositivo Móvel - Número', X, 20, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (21, 1, 'NO_BOL_MOBILIDADE', 'Dispositivo Móvel - Número Apontamento', X, 21, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (22, 1, 'CHANGED_BY_MOBIL', 'Dispositivo Móvel - Usuário', X, 22, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (23, 2, 'QT_AREA', 'Área', 576, 1, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (24, 2, 'FG_REPLANTIO', 'Replantio', 5670, 2, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (25, 2, 'ID_APTRATSEMENT', 'Tratamento de Semente/Muda', 14159, 3, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (26, 2, 'NO_PENEIRA', 'Peneira', 5611, 4, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (27, 2, 'PE_VIGOR', 'Vigor (%)', 5612, 5, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (28, 2, 'PE_GERMINACAO', 'Germinação (%)', 5613, 6, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (29, 2, 'QT_DENSIDADE', 'Densidade (Sementes-Muda/m)', 6911, 7, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (30, 2, 'ID_SISTCULTIVO', 'Sistema de Cultivo', 28, 8, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (31, 2, 'ID_SISTPLANTIO', 'Sistema de Plantio', 21, 9, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (32, 2, 'NO_LINHAS', 'Número de Linhas', 5865, 10, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (33, 2, 'FG_ROYALTIES', 'Royalties', 714, 11, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (34, 2, 'ID_ESPACAMENTO', 'Espaçamento', 26, 12, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (35, 2, 'ID_VARIEDADE', 'Variedade/Híbrido', 1084, 13, 'S', 'S', 'S', 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (36, 3, 'ID_TIPOAPLICACAO', 'Tipo de Aplicação', 5946, 1, null, null, null, 1, DATE, 'PRX');
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (37, 3, 'ID_BICOPULVERIZ', 'Tipo de Bico', 78, 2, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (38, 3, 'ID_SISTAPLICACAO', 'Sistema de Aplicação', 5776, 3, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (39, 3, 'QT_VAZ_PROG', 'Vazão Programada/ha', 5785, 4, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (40, 3, 'VL_VOLUME', 'Volume Aplicado', 5786, 5, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (41, 3, 'QT_PH_CALDA', 'pH Calda', 5778, 6, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (42, 4, 'ID_FUNCIONAR', 'Operador', 3483, 1, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (43, 4, 'ID_EQUIPTO', 'Equipamento', 1119, 2, 'S', 'S', 'S', 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (44, 4, 'HR_INI_JORN', 'Hora Inicial - Jornada do Operador', X, 3, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (45, 4, 'HR_FIM_JORN', 'Hora Final - Jornada do Operador', X, 4, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (46, 4, 'QT_TOTAL_JORN', 'Jornada do Operador', X, 5, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (47, 5, 'QT_PRODUCAO', 'Produção', 1339, 1, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (48, 6, 'ID_INSUMO', 'Insumo', 72, 1, 'S', 'S', 'S', 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (49, 6, 'NO_LOTE', 'Número de Lote', 5616, 2, 'S', 'S', 'S', 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (50, 6, 'ID_DEPOSITO', 'Depósito', 73, 3, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (51, 6, 'QT_DOSE_PROG', 'Dose Programada/há', 3540, 4, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (52, 6, 'QT_CONS_TOTAL', 'Quantidade Total', 11490, 5, 'S', 'S', 'S', 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (53, 6, 'ID_PROCEDENCIA', 'Procedência', 5674, 6, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (54, 7, 'ID_SAFRA', 'Ano Agrícola', 564, 1, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (55, 7, 'ID_PERIODOSAFRA', 'Período de Produção', 1278, 2, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (56, 7, ' ID_UPNIVEL1', 'Fazenda', 15, 3, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (57, 7, ' ID_UPNIVEL2', 'Setor', 16, 4, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (58, 7, ' ID_UPNIVEL3', 'Talhão', 83, 5, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (59, 7, ' QT_AREA', 'Área', 576, 6, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (60, 7, ' FG_REPLANTIO', 'Replantio', 5670, 7, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (61, 8, ' ID_APORDSERVICO', 'Ordem de Serviço de Campo', 5422, 1, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (62, 8, 'ID_SAFRA', 'Ano Agrícola', 264, 2, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (63, 8, 'ID_PERIODOSAFRA', 'Período de Produção', 1278, 3, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (64, 8, 'ID_CCUSTO', 'Centro de Custo', 268, 4, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (65, 8, 'ID_OPERACAO', 'Operação', 74, 5, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (66, 8, 'ID_OP_PRINCIPAL', 'Operação Principal', 7902, 6, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (67, 8, 'ID_UPNIVEL1', 'Fazenda', 15, 7, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (68, 8, 'ID_UPNIVEL2', 'Setor', 16, 8, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (69, 8, 'ID_UPNIVEL3', 'Talhão', 83, 9, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (70, 8, 'ID_EQUIPTO_IM', 'Implemento', 3586, 10, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (71, 8, 'QT_INI_HK', 'Hr/Km Inicial', 6991, 11, 'S', 'S', 'S', 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (72, 8, 'QT_FIM_HK', 'Hr/Km Final', 6992, 12, 'S', 'S', 'S', 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (73, 8, 'QT_TOTAL_HK', 'Hr/Km Total', X, 13, 'S', 'S', 'N', 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (74, 8, 'QT_PRODUCAO', 'Produção', 1339, 14, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (75, 9, 'ID_APORDSERVICO', 'Ordem de Serviço de Campo', 5422, 1, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (76, 9, 'ID_SAFRA', 'Ano Agrícola', 264, 2, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (77, 9, 'ID_PERIODOSAFRA', 'Período de Produção', 1278, 3, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (78, 9, 'ID_CCUSTO', 'Centro de Custo', 268, 4, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (79, 9, 'ID_OPERACAO', 'Operação', 74, 5, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (80, 9, 'ID_UPNIVEL1', 'Fazenda', 15, 6, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (81, 9, 'ID_UPNIVEL2', 'Setor', 16, 7, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (82, 9, 'ID_UPNIVEL3', 'Setor', 83, 8, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (83, 9, 'ID_FUNCIONAR', 'Funcionário', 1716, 9, 'S', 'S', 'S', 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (84, 9, 'HR_INI_JORN', 'Hora Inicial', 1791, 10, 'S', 'S', 'S', 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (85, 9, 'HR_FIM_JORN', 'Hora Final', 1792, 11, 'S', 'S', 'S', 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (86, 9, 'QT_RECURSO', 'Quantidade de Recursos', 8303, 12, 'S', 'S', null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (87, 9, 'QT_TOTAL_JORN', 'Jornada', 10772, 13, 'S', 'S', 'N', 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (88, 9, 'QT_PRODUCAO', 'Produção', 1339, 14, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (89, 10, 'ID_APORDSERVICO', 'Ordem de Serviço de Campo', 5422, 1, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (90, 10, 'ID_SAFRA', 'Ano Agrícola', 264, 2, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (91, 10, 'ID_PERIODOSAFRA', 'Período de Produção', 1278, 3, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (92, 10, 'ID_CCUSTO', 'Centro de Custo', 268, 4, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (93, 10, 'ID_OPERACAO', 'Operação', 74, 5, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (94, 10, 'ID_UPNIVEL1', 'Fazenda', 15, 6, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (95, 10, 'ID_UPNIVEL2', 'Setor', 16, 7, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (96, 10, 'ID_UPNIVEL3', 'Talhão', 83, 8, null, null, null, 1, DATE, 'PRX')
INSERT INTO AU_DEF_CPO(ID_AU_DEF_CPO, ID_AU_DEF_GRPCPO, CD_AU_DEF_CPO, DE_AU_DEF_CPO, ID_TERMO, NR_ORDEN, FG_UTILIZA, FG_OBRIGATORIO, FG_HABILITADO, ROWVERSION, LAST_UPDATE, CHANGED_BY)
VALUES (97, 10, 'QT_PRODUCAO', 'Produção', 1339, 9, null, null, null, 1, DATE, 'PRX')
Observação: Os campos ID_TERMO preenchidos com 'X', significam que o ID_TERMO relacionado a tabela AU_DEF_CPO, deverão ser criados na tabela Termo.

  • Criação da tabela AU_TIPO:


CREATE TABLE AU_TIPO
(
ID_AU_APTO_MEC_RAT NUMBER (38,0) NOT NULL,
CD_AU_TIPO VARCHAR2 (20) NOT NULL,
DE_AU_TIPO VARCHAR2 (50) NOT NULL,
FG_MECANIZADO VARCHAR2 (1) NOT NULL,
FG_MANUAL VARCHAR2 (1) NOT NULL,
FG_INSUMO VARCHAR2 (1) NOT NULL,
FG_PLANTIO VARCHAR2 (1) NOT NULL,
FG_PRODUCAO VARCHAR2 (1) NOT NULL,
FG_LC_DIF_OS VARCHAR2 (1) NOT NULL,
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_TIPO_PK PRIMARY KEY (ID_AU_TIPO)
);
CREATE UNIQUE INDEX AU_TIPO_UN ON AU_TIPO (CD_AU_TIPO);
CREATE UNIQUE INDEX AU_TIPO_UN1 ON AU_TIPO (DE_AU_TIPO);

  • Criação da tabela AU_TIPO_CPO:


CREATE TABLE AU_TIPO_CPO
(
ID_AU_TIPO_CPO NUMBER (38,0) NOT NULL,
ID_AU_TIPO NUMBER (38,0) NOT NULL,
ID_AU_DEF_CPO NUMBER (38,0) NOT NULL,
FG_UTILIZA VARCHAR2 (1) NOT NULL,
FG_OBRIGATORIO VARCHAR2 (1) NOT NULL,
FG_HABILITADO VARCHAR2 (1) NOT NULL,
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_TIPO_CPO_PK PRIMARY KEY (ID_AU_TIPO_CPO)
);
CREATE UNIQUE INDEX AU_TIPO_CPO_UN ON AU_TIPO_CPO (ID_AU_TIPO, ID_AU_DEF_CPO);
ALTER TABLE AU_TIPO_CPO ADD CONSTRAINT AU_TIPO_CPO_FK_AU_TIPO FOREIGN KEY (ID_AU_TIPO) REFERENCES AU_TIPO ON DELETE CASCADE ENABLE;
ALTER TABLE AU_TIPO_CPO ADD CONSTRAINT AU_TIPO_CPO_FK_AU_DEF_CPO FOREIGN KEY (ID_AU_DEF_CPO) REFERENCES AU_DEF_CPO;

  • Criação da tabela AU_TIPO_ADM:


CREATE TABLE AU_TIPO_ADM
(
ID_AU_TIPO_ADM NUMBER (38,0) NOT NULL,
ID_AU_TIPO NUMBER (38,0) NOT NULL,
ID_UNIDADEADM NUMBER (38,0) NOT NULL,
FG_ATIVO VARCHAR2 (1) NOT NULL,
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_TIPO_ADM_PK PRIMARY KEY (ID_AU_TIPO_ADM)
);
CREATE UNIQUE INDEX AU_TIPO_ADM_UN ON AU_TIPO_ADM (ID_AU_TIPO, ID_UNIDADEADM);
ALTER TABLE AU_TIPO_ADM ADD CONSTRAINT AU_TIPO_ADM_FK_AU_TIPO FOREIGN KEY (ID_AU_TIPO) REFERENCES AU_TIPO ON DELETE CASCADE ENABLE;

ALTER TABLE AU_TIPO_ADM ADD CONSTRAINT AU_TIPO_ADM_FK_UNIDADEADM FOREIGN KEY (ID_UNIDADEADM) REFERENCES UNIDADEADM ON DELETE CASCADE ENABLE;
Criação da tabela AU_TIPO_GROUPS:
CREATE TABLE AU_TIPO_GROUPS
(
ID_AU_TIPO_GROUPS NUMBER (38,0) NOT NULL,
ID_AU_TIPO NUMBER (38,0) NOT NULL,
GROUP_ID VARCHAR2(64) NOT NULL,
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_TIPO_GROUPS_PK PRIMARY KEY (ID_AU_TIPO_GROUPS)
);
CREATE UNIQUE INDEX AU_TIPO_GROUPS_UN ON AU_TIPO_GROUPS (ID_AU_TIPO, GROUP_ID);
ALTER TABLE AU_TIPO_GROUPS ADD CONSTRAINT AU_TIPO_GROUPS_FK_AU_TIPO FOREIGN KEY (ID_AU_TIPO) REFERENCES AU_TIPO ON DELETE CASCADE ENABLE;
ALTER TABLE AU_TIPO_GROUPS ADD CONSTRAINT AU_TIPO_GROUPS_FK_PRXGROUP FOREIGN KEY (GROUP_ID) REFERENCES PRXGROUP;

  • Criação da tabela AU_TIPO_USREXC:


CREATE TABLE AU_TIPO_USREXC
(
ID_AU_TIPO_USREXC NUMBER (38,0) NOT NULL,
ID_AU_TIPO NUMBER (38,0) NOT NULL,
USER_ID VARCHAR2(25) NOT NULL,
FG_PERMITE VARCHAR2(1) NOT NULL,
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_TIPO_USREXC_PK PRIMARY KEY (ID_AU_TIPO_USREXC)
);
CREATE UNIQUE INDEX AU_TIPO_USREXC_UN ON AU_TIPO_USREXC (ID_AU_TIPO, USER_ID);
ALTER TABLE AU_TIPO_USREXC ADD CONSTRAINT AU_TIPO_USREXC_FK_AU_TIPO FOREIGN KEY (ID_AU_TIPO) REFERENCES AU_TIPO ON DELETE CASCADE ENABLE;
ALTER TABLE AU_TIPO_USREXC ADD CONSTRAINT AU_TIPO_USREXC_FK_PRXUSER FOREIGN KEY (USER_ID) REFERENCES PRXUSER;

  • Criação da tabela AU_TIPO_MOB:


CREATE TABLE AU_TIPO_MOB
(
ID_AU_TIPO_MOB NUMBER (38,0) NOT NULL,
ID_AU_TIPO NUMBER (38,0) NOT NULL,
ID_PRXUSER_MOBILID NUMBER (38,0) NOT NULL,
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_TIPO_MOB_PK PRIMARY KEY (ID_AU_TIPO_MOB)
);
CREATE UNIQUE INDEX AU_TIPO_USREXC_UN ON AU_TIPO_USREXC (ID_AU_TIPO, USER_ID);
ALTER TABLE AU_TIPO_MOB ADD CONSTRAINT AU_TIPO_MOB_FK_AU_TIPO FOREIGN KEY (ID_AU_TIPO) REFERENCES AU_TIPO ON DELETE CASCADE ENABLE;
ALTER TABLE AU_TIPO_MOB ADD CONSTRAINT AU_TIPO_MOB_FK_PRXUSER_MOBILID FOREIGN KEY (ID_PRXUSER_MOBILID) REFERENCES PRXUSER_MOBILID;

Inclusão do campo "Unidade de Medida no Apontamento Agrícola" no cadastro de Insumos.


Objetivo: Configurar a Unidade de Medida a ser utilizada no Apontamento Agrícola para o Insumo.
Menu: Tabelas > Insumos > Insumos
Entrada de menu: CFCM0029
Esboço da tela:



Demais campos:

  • Unidade de Medida para Apontamento Agrícola: Unidade de medida a qual se refere a quantidade informada no Apontamento Agrícola. Quando informada será a Unidade de Medida utilizada no Apontamento Agrícola, e para a Integração será aplicado o Conversor de Unidade de Medida entre a "Unidade de Medida para Apontamento Agrícola" e a "Unidade de Medida" do Insumo. Se não informada a "Unidade de Medida para Apontamento Agrícola" será considerada a Unidade de Medida do próprio Insumo. A unidade de medida deve estar previamente cadastrada e existir Conversor de Unidade de Medida cadastrado para a "Unidade de Medida" entre "Unidade de Medida para Apontamento Agrícola". (Tamanho do campo: 5 caracteres).



Especificação técnica:
Tabelas:

Descrição

Nome

Situação

Insumos/Produtos Agrícolas

INSUMO

Alterada


  • Para verificar a existência do conversor de Unidade de Medidas checar a tabela CONV_UNIMEDIDA. Verificar método já existente, onde as Unidades de Medidas podem estar tanto no DE como no PARA.

 

Apontamento Agrícola.


Objetivo: Apontamento das Operações Agrícolas, que podem ser atividades mecanizadas, manuais, plantio, produção da operação e atividades que envolvam ou não insumos. A configuração dos campos referentes à sua visualização, obrigatoriedade e se o mesmo é habilitado dependem do Tipo de Apontamento.
Menu: Apontamentos > Atividades e Recursos > Apontamento Agrícola
Entrada de menu: AERM0019
Esboço da tela:




Dados


Cabeçalho Comum:

  • Número: Número do Boletim de apontamento agrícola. Quando configurado para o Tipo de Apontamento que o campo Número é Habilitado ao usuário, o mesmo deverá informar o número manualmente, caso contrário o número será gerado automaticamente de maneira sequencial por Tipo de Apontamento e Unidade Administrativa ficando desabilitado ao usuário. Ao indicar que não será Habilitado, se houverem registros de Apontamento será gerada uma Sequência com o último número de apontamento +1. Campo obrigatório. (Tamanho do Campo: 8 Inteiros)
  • Data: Data em foi realizada a operação agrícola. Se estiver configurado para "Calcular custo de produto colhido/in natura" (Configurações Gerais de Orçamentos / Custos), não é permitido informar apontamento com Data em Mês/Ano posterior ao Mês/Ano da Data de Encerramento do Período de Produção dos Locais informados no apontamento. A Data deve ser menor ou igual à data atual. Caso já possua custo Fechado, não é permitido apontar em data que possua custo fechado. Campo obrigatório.
  • Turno: Turno em que foi realizada a operação. Campo visível quando configurado que utiliza Turno para o Tipo de Apontamento. Campo obrigatório quando configurado que o Turno é obrigatório para o Tipo de Apontamento. Por padrão campo é inicializado sem valor, quando configurado que Utiliza o campo Turno.
    • [Em branco]: Turno não informado.
    • Diurno: Indica que a operação foi realizada durante o dia.
    • Noturno: Indica que a operação foi realizada durante a noite.
  • Ordem de Serviço de Campo: Ordem de Serviço de Campo utilizada para realização da operação. Campo visível quando configurado que utiliza Ordem de Serviço de Campo no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que a Ordem de Serviço de Campo no Cabeçalho Comum é obrigatória para o Tipo de Apontamento. A Ordem de Serviço de Campo deve estar previamente cadastrada para a Unidade Administrativa corrente. Não será permitido informar Ordem de Serviço de Campo já encerrada. Ao informar a Ordem de Serviço, o sistema irá carregar o Ano Agrícola, Período de Produção, [Fazenda] (se possuir somente uma na Ordem de Serviço), Equipe, Vazão Programada/ha (se informada), Centro de Custo, Operação, [Setor] (se possuir somente um na Ordem de Serviço) e [Talhão] (se possuir somente um na Ordem de Serviço), sendo que destes o Ano Agrícola, Período de Produção e Centro Custo ficarão desabilitados. (Tamanho do Campo: 12 inteiros)
  • Ano Agrícola: Ano agrícola referente à data do apontamento. Quando informada a Ordem de Serviço de Campo o Ano Agrícola será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Ano Agrícola no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que o Ano Agrícola no Cabeçalho Comum é obrigatório para o Tipo de Apontamento. O Ano Agrícola deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros)
  • Período de Produção: Período de Produção do Apontamento. Quando informada a Ordem de Serviço de Campo o Período de Produção será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Período de Produção no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que o Período de Produção no Cabeçalho Comum é obrigatório para o Tipo de Apontamento. O Período de Produção deve estar previamente cadastrado e pertencer ao Ano Agrícola informado (quando configurado para informa-lo). (Tamanho do campo: 10 inteiros)
  • [Fazenda]: [Fazenda]/Nível 1 dos Locais de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo e possuir apenas uma [Fazenda] na Ordem de Serviço de Campo, a mesma será automaticamente obtida da Ordem de Serviço de Campo e não será permitido alterá-la. Campo visível quando configurado que utiliza [Fazenda] no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que a [Fazenda] no Cabeçalho Comum é obrigatória para o Tipo de Apontamento. A [Fazenda] deve estar previamente cadastrada e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 6 inteiros)
  • [Setor]: [Setor]/Nível 2 dos Locais de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo e possuir apenas um [Setor] na Ordem de Serviço de Campo, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza [Setor] no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que o [Setor] no Cabeçalho Comum é obrigatório para o Tipo de Apontamento. O [Setor] deve estar previamente cadastrado e pertencer à [Fazenda] informada. (Tamanho do campo: 6 inteiros)
  • [Talhão]: [Talhão]/Nível 3 do Local de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo e possuir apenas um [Talhão] na Ordem de Serviço de Campo e o Tipo de Apontamento não estiver configurado para Permitir Local de Produção diferente da Ordem de Serviço, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo, caso estiver configurado Permitir Local de Produção diferente da Ordem se Serviço, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e será permitido altera-lo. Se informada Ordem de Serviço de Campo e para o Tipo de Apontamento estiver configurado para permitir somente Locais de Produção da Ordem de Serviço, não será permitido informar Local de Produção que não consta na Ordem de Serviço de Campo. Campo visível quando configurado que utiliza [Talhão] no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que o [Talhão] no Cabeçalho Comum é obrigatório para o Tipo de Apontamento. Se estiver configurado para "Calcular custo de produto colhido/in natura" (configurações gerais de Orçamentos / Custos), não é permitido informar Apontamento com Data em Mês/Ano posterior ao Mês/Ano da Data de Encerramento do Período de Produção dos Locais informados no apontamento. O [Talhão] deve estar previamente cadastrado e pertencer à [Fazenda]/[Setor] e Período de Produção informado. Ao informar o [Talhão], para Plantio, são carregados automaticamente os campos Variedade, Espaçamento, Sistema de Cultivo, Sistema de Plantio e Royalties (de acordo com a Variedade). Se o parâmetro "Os dados do Plantio devem ser iguais aos do [Talhão]?" no Grupo de Configuração "11-Apontamentos de Plantio" na tela de Configurações Gerais estiver como "Sim", os campos Variedade, Espaçamento, Sistema de Cultivo e Sistema de Plantio são carregados automaticamente e ficam desabilitados. (Tamanho do campo: 6 caracteres).
  • Área: O usuário deve informar a área que está sendo realizado. Se configurado para sugerir a área restante na Ordem de Serviço (parâmetro 'Sugerir área restante da Ordem de Serviço nos Apontamentos' = Sim), o sistema irá sugerir a área restante para o Local de Produção/Ordem de Serviço. Campo visível quando configurado que utiliza Área no Cabeçalho – Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que a Área no Cabeçalho Comum é obrigatória para o Tipo de Apontamento. A área deve ser menor ou igual à área produtiva do Local de Produção. Quando informada, a área deve ser maior que zero. Se o Tipo de Apontamento for de Plantio e quando configurado para a Cultura/Ocupação do Local de Produção que consiste a área no apontamento de plantio será validada a área com a soma das áreas de Plantio, ou seja, se for realizado apontamento de plantio onde a soma das áreas apontadas for superior a área do Local de Produção é emitida mensagem (se configurado para consistir a área de plantio) questionando se o usuário deseja continuar, se responder que sim permite o apontamento indicando que o mesmo é replantio. (Tamanho do campo: 6 inteiros e 2 decimais).
  • Centro de Custo: Centro de Custo para apropriação do custo referente ao apontamento. Quando informada a Ordem de Serviço de Campo o Centro de Custo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Centro de Custo no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que o Centro de Custo no Cabeçalho Comum é obrigatório para o Tipo de Apontamento. Se a Cultura do Período de Produção informado estiver configurada para validar o Centro de Custo com o Período de Produção, deverá carregar o Centro de Custo relacionado ao Período e Unidade Administrativa atual e não permitir alterar caso o mesmo tenha sido relacionado, se não foi relacionado Centro de Custo com o Período de Produção Informado, o campo permanecerá habilitado para o usuário informar. O Centro de Custo deve estar previamente cadastrado e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 20 caracteres)
  • Operação: Operação que está sendo realizada. Quando informada a Ordem de Serviço de Campo, a Operação será automaticamente obtida da Ordem de Serviço de Campo e não será permitido alterá-la. Se possuir Insumos informados no Apontamento, os mesmos serão validados com a Operação (a configuração de Insumos permitidos para a Operação está localizada no cadastro de Operações). Se possuir Equipamento informado no apontamento, o mesmo será validado com a Operação (a configuração de Equipamentos permitidos para a Operação está localizada no cadastro de Operações). Se o Tipo de Apontamento estiver configurado Mecanizada e não estiver configurado para Manual, somente serão permitidas Operações Mecanizadas ou Semi-Mecanizadas. Se o Tipo de Apontamento estiver configurado Manual e não estiver configurado Mecanizada, somente serão permitidas Operações Manuais ou Semi-Mecanizadas. Campo visível quando configurado que utiliza Operação no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que a Operação no Cabeçalho Comum é obrigatória para o Tipo de Apontamento. A Operação deve estar previamente cadastrada e pertencer ao Centro de Custo informado. (Tamanho do campo: 10 inteiros)
  • Equipe: Equipe que está realizando a Operação. Quando informada a Ordem de Serviço de Campo e possuir Equipe informada na Ordem de Serviço de Campo, a mesma será automaticamente obtida da Ordem de Serviço de Campo permitindo alterá-la. Campo visível quando configurado que utiliza Equipe no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que a Equipe no Cabeçalho Comum é obrigatória para o Tipo de Apontamento. A Equipe deve estar previamente cadastrada e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 10 inteiros).
  • Equipamento: Equipamento que realizou a operação agrícola que está sendo digitada neste apontamento. Campo visível quando configurado que utiliza o campo Equipamento no Cabeçalho - Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que o Equipamento no Cabeçalho - Comum é obrigatório para o Tipo de Apontamento. Se possuir no Cabeçalho – Comum ou nos Detalhes (Operações) informados no Apontamento de Atividade Mecanizada, Manual ou Produção o Equipamento será validado com a operação do Cabeçalho – Comum ou com cada Detalhe (Operação) de acordo com a Operação (a configuração de Equipamentos permitidos para a Operação está localizada no cadastro de Operações). O Equipamento deve estar previamente cadastrado, pertencer ao Grupo Operativo tipo "1 -  Equipamento Principal" e disponível para a Unidade de Administrativa na data do Apontamento. (Tamanho do campo: 10 caracteres).
  • Condição do Tempo: Condição do Tempo quando realizada a Operação. Campo visível quando configurado que utiliza Condição do Tempo no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que a Condição do Tempo no Cabeçalho Comum é obrigatória para o Tipo de Apontamento. A Condição do Tempo deve estar previamente cadastrada. (Tamanho do campo: 10 caracteres)
  • Temperatura: Temperatura quando realizada a Operação. Campo visível quando configurado que utiliza Temperatura no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que a Temperatura no Cabeçalho Comum é obrigatória para o Tipo de Apontamento. (Tamanho do campo: 5 inteiros e 2 decimais)
  • Umidade: Umidade relativa do ar quando realizada a Operação. Campo visível quando configurado que utiliza Umidade no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que a Umidade no Cabeçalho Comum é obrigatória para o Tipo de Apontamento. (Tamanho do campo: 5 inteiros e 2 decimais)
  • Velocidade do Vento: Velocidade do Vento quando realizada a Operação. Campo visível quando configurado que utiliza Velocidade do Vento no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que a Velocidade do Vento no Cabeçalho Comum é obrigatória para o Tipo de Apontamento. (Tamanho do campo: 5 inteiros e 2 decimais)
  • Direção do Vento: Direção do Vento quando realizada a Operação. Campo visível quando configurado que utiliza Direção do Vento no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que a Direção do Vento no Cabeçalho Comum é obrigatória para o Tipo de Apontamento. (Tamanho do campo: 10 caracteres)
  • Condição do Solo: Condição do Solo quando realizada a Operação. Campo visível quando configurado que utiliza Condição do Solo no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que a Condição do Solo no Cabeçalho Comum é obrigatória para o Tipo de Apontamento. Por padrão o valor é "Seco".
    • Seco: Indica solo seco quando realizada a operação.
    • Úmido: Indica solo úmido quando realizada a operação.
    • Pouco Úmido: Indica solo pouco úmido quando realizada a operação.
  • Observação: Observação relacionada à operação realizada. Campo visível quando configurado que utiliza Observação no Cabeçalho Comum para o Tipo de Apontamento. Campo obrigatório quando configurado que a Observação no Cabeçalho Comum é obrigatória para o Tipo de Apontamento. (Tamanho do campo: 250 caracteres).
  • Dispositivo Móvel - Número: Número do Dispositivo Móvel quando o apontamento for realizado através de dispositivo móvel. Campo visível quando configurado que utiliza "Dispositivo Móvel - Número" no Cabeçalho Comum para o Tipo de Apontamento. Campo desabilitado ao usuário. (Tamanho do campo: 5 caracteres).
  • Dispositivo Móvel - Número Apontamento: Número do Apontamento no Dispositivo Móvel quando o apontamento for realizado através de dispositivo móvel. Campo visível quando configurado que utiliza "Dispositivo Móvel - Número Apontamento" no Cabeçalho Comum para o Tipo de Apontamento. Campo desabilitado ao usuário. (Tamanho do campo: 5 caracteres).
  • Dispositivo Móvel - Usuário: Usuário que realizou o Apontamento no Dispositivo Móvel quando o apontamento for realizado através de dispositivo móvel. Campo visível quando configurado que utiliza "Dispositivo Móvel - Usuário" no Cabeçalho Comum para o Tipo de Apontamento. Campo desabilitado ao usuário. (Tamanho do campo: 60 caracteres).



Cabeçalho Plantio:

  • Replantio: Indica se a área que está sendo plantada se refere à Plantio ou Replantio. Por padrão o valor é "Não". Campo visível quando configurado que utiliza o campo Replantio no Cabeçalho de Plantio para o Tipo de Apontamento.
    • Sim: Indica que é Replantio.
    • Não: Indica que é Plantio.
  • Tratamento de Semente/Muda: O usuário pode informar o número do tratamento das sementes que foram apontadas anteriormente no Apontamento de Tratamento de Sementes/Mudas. Campo visível quando configurado que utiliza o campo Tratamento de Semente/Muda no Cabeçalho de Plantio para o Tipo de Apontamento. Campo desabilitado quando a Cultura/Ocupação não utilizar Semente no Plantio. Campo obrigatório quando configurado para "Informar Tratamento de Sementes/Mudas no Plantio" no cadastro de Cultura/Ocupação. Quando informado o número de tratamento de semente/muda, o sistema irá preencher o campo Variedade/Híbrido automaticamente com o valor que está no cadastro de tratamento de semente/muda e desabilitar o campo. Quando informado o Tratamento de Sementes também serão preenchidos os campos Peneira, Vigor e Germinação, permitindo alterá-los. O Tratamento de Sementes deve estar previamente cadastrado para o Período de Produção informado. (Tamanho: 8 inteiros)
  • Peneira: Número de Peneira da Semente. Quando o usuário informa o número do tratamento de semente/muda o sistema recupera automaticamente a peneira que será utilizada no plantio, permitindo alterá-la. Campo visível quando configurado que utiliza o campo Peneira no Cabeçalho de Plantio para o Tipo de Apontamento. Campo desabilitado quando a Cultura/Ocupação não utilizar Semente no Plantio. A Peneira deve ser maior ou igual à zero. (Tamanho do campo: 2 inteiros)
  • Vigor (%): Percentual de vigor da Semente. Quando o usuário informa o número do tratamento de semente/muda o sistema recupera automaticamente o percentual de vigor da semente que será utilizada no plantio, permitindo alterá-lo. Campo visível quando configurado que utiliza o campo Vigor no Cabeçalho de Plantio para o Tipo de Apontamento. Campo desabilitado quando a Cultura/Ocupação não utilizar Semente no Plantio. O Vigor deve ser maior ou igual à zero e menor ou igual a 100. (Tamanho do campo: 3 inteiros e 2 decimais)
  • Germinação (%): Percentual de germinação da Semente. Quando o usuário informa o número do tratamento de semente/muda o sistema recupera automaticamente o percentual de germinação da semente que será utilizada no plantio, permitindo alterá-lo. Campo visível quando configurado que utiliza o campo Germinação no Cabeçalho de Plantio para o Tipo de Apontamento. Campo desabilitado quando a Cultura/Ocupação não utilizar Semente no Plantio. A Germinação deve ser maior ou igual à zero e menor ou igual a 100. (Tamanho do campo: 3 inteiros e 2 decimais)
  • Densidade (sementes-Mudas/m): Densidade de Sementes/Mudas por metro utilizadas no Plantio. Campo visível quando configurado que utiliza Densidade no Cabeçalho de Plantio para o Tipo de Apontamento. Campo obrigatório quando configurado que a Densidade no Cabeçalho de Plantio é obrigatória para o Tipo de Apontamento. Quando informada, a Densidade deve ser maior ou igual à zero. (Tamanho do campo: 5 inteiros e 2 decimais)
  • Número de Linhas: Número de linhas utilizadas no Plantio. Campo visível quando configurado que utiliza Número de Linhas no Cabeçalho de Plantio para o Tipo de Apontamento. Campo obrigatório quando configurado que o Número de Linhas no Cabeçalho de Plantio é obrigatório para o Tipo de Apontamento. Quando informado, o Número de Linhas deve ser maior ou igual à zero. (Tamanho do campo: 3 inteiros)
  • Royalties: Indica se possui ou não Royalties para a semente. Por padrão o valor é o valor configurado para a Variedade informada. Campo visível quando configurado que utiliza o campo Royalties no Cabeçalho de Plantio para o Tipo de Apontamento.
    • Isento: Indica que a semente é isenta de Roayalties.
    • Sim: Indica que a semente possui Roayalties.
    • Não: Indica que a semente não possui Roayalties.
  • Sistema de Cultivo: Sistema de cultivo que está sendo utilizado na operação de plantio. Campo visível quando configurado que utiliza o campo Sistema de Cultivo no Cabeçalho de Plantio para o Tipo de Apontamento. Campo não obrigatório quando a Cultura/Ocupação configurada para "Não obrigar informar Sistema de Cultivo". Ao informar o [Talhão]/Local de Produção, é carregado automaticamente o Sistema de Cultivo, permitindo alterá-lo. O Sistema de Cultivo deve estar previamente cadastrado. (Tamanho do campo 10 inteiros).
  • Sistema de Plantio: Sistema de plantio que está sendo utilizado. Campo visível quando configurado que utiliza o campo Sistema de Plantio no Cabeçalho de Plantio para o Tipo de Apontamento. Campo não obrigatório quando a Cultura/Ocupação configurada para "Não obrigar informar Sistema de Plantio". Ao informar o [Talhão]/Local de Produção, é carregado automaticamente o Sistema de Plantio, permitindo alterá-lo. O Sistema de Plantio deve estar previamente cadastrado. (Tamanho do campo 10 inteiros).
  • Espaçamento: Espaçamento que está sendo utilizado no Plantio. Campo visível quando configurado que utiliza o campo Espaçamento no Cabeçalho de Plantio para o Tipo de Apontamento. Campo obrigatório quando configurado que o Espaçamento no Cabeçalho de Plantio é obrigatório para o Tipo de Apontamento. Ao informar o [Talhão]/Local de Produção, é carregado automaticamente o Espaçamento, permitindo alterá-lo. O Espaçamento deve estar previamente cadastrado. (Tamanho do campo 10 inteiros).
  • Variedade: Variedade/Híbrido que está sendo plantado. Campo visível quando configurado que utiliza o campo Variedade no Cabeçalho de Plantio para o Tipo de Apontamento. Campo obrigatório quando configurado que a Variedade no Cabeçalho de Plantio é obrigatório para o Tipo de Apontamento. Ao informar o [Talhão]/Local de Produção, é carregado automaticamente a Variedade, permitindo alterá-la. A Variedade deve estar previamente cadastrada para a Cultura/Ocupação do Período de Produção. Se informado o número do tratamento de semente/muda o sistema recupera automaticamente a variedade/híbrido que será utilizada no plantio, não permitindo alterar. Quando informados Plantios com Variedades diferentes para o mesmo [Talhão]/Local de Produção é necessária confirmação para ser permitido o plantio. (Tamanho do campo 10 inteiros).


Cabeçalho Produção:

  • Produção: Produção da operação (hectares, quilômetros e etc.). Se o parâmetro "Sugerir área restante da Ordem de Serviço nos Apontamentos" no Grupo de Configuração "8-Ordem de Serviço de Campo" na tela de Configurações Gerais estiver como "Sim", e a unidade de medida da Operação for "Hectare" o sistema irá sugerir a área restante para o Local de Produção informada na Ordem de Serviço de Campo. Campo visível quando configurado que utiliza o campo Produção no Cabeçalho de Produção para o Tipo de Apontamento. Campo obrigatório quando configurado que a Produção no Cabeçalho de Produção é obrigatória para o Tipo de Apontamento. Quando informado, o valor deve ser maior que 0 (zero). (Tamanho do campo: 4 inteiros e 3 decimais)


Cabeçalho Insumo:

  • Tipo de Aplicação: Tipo/Número da aplicação que está sendo realizada. Campo visível quando configurado que utiliza o campo Tipo de Aplicação no Cabeçalho de Insumo para o Tipo de Apontamento. Campo obrigatório quando configurado que o Tipo de Aplicação no Cabeçalho de Insumo é obrigatório para o Tipo de Apontamento. O Tipo de Aplicação deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros)
  • Tipo de Bico: Tipo de Bico de Pulverização que está sendo utilizado. Campo visível quando configurado que utiliza o campo Tipo de Bico no Cabeçalho de Insumo para o Tipo de Apontamento. Campo obrigatório quando configurado que o Tipo de Bico no Cabeçalho de Insumo é obrigatório para o Tipo de Apontamento. O Tipo de Bico deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros)
  • Sistema de Aplicação: Sistema de Aplicação que está sendo utilizado. Campo visível quando configurado que utiliza o campo Sistema de Aplicação no Cabeçalho de Insumo para o Tipo de Apontamento. Campo obrigatório quando configurado que o Sistema de Aplicação no Cabeçalho de Insumo é obrigatório para o Tipo de Apontamento. O Sistema de Aplicação deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros)
  • Vazão Programada/ha: Vazão Programada por Hectare, o usuário pode informar a vazão programada para realização da pulverização. Campo visível quando configurado que utiliza o campo "Vazão Programada/ha" no Cabeçalho de Insumo para o Tipo de Apontamento. Campo obrigatório quando configurado que a "Vazão Programada/ha" no Cabeçalho de Insumo é obrigatório para o Tipo de Apontamento. Ao informar a Ordem de Serviço de Campo, é sugerida a Vazão Programada/ha informada na Ordem de Serviço de Campo (se informada). Quando informado, o valor deve ser maior que 0 (zero). (Tamanho do campo: 6 inteiros e 4 decimais).
  • Volume Aplicado: Volume Total aplicado. Campo visível quando configurado que utiliza o campo "Volume Aplicado" no Cabeçalho de Insumo para o Tipo de Apontamento. Campo obrigatório quando configurado que o "Volume Aplicado" no Cabeçalho de Insumo é obrigatório para o Tipo de Apontamento. Quando configurado para sua utilização, no relatório Controle de Dosagem o cálculo da vazão real é o Volume Total dividido pela área total. Quando informado, o valor deve ser maior que 0 (zero). (Tamanho do campo: 10 inteiros e 4 decimais)
  • pH Calda: pH da calda aplicada. Campo visível quando configurado que utiliza o campo "pH Calda" no Cabeçalho de Insumo para o Tipo de Apontamento. Campo obrigatório quando configurado que o "pH Calda" no Cabeçalho de Insumo é obrigatório para o Tipo de Apontamento. Quando informado, o valor deve ser maior que 0 (zero). (Tamanho do Campo: 3 inteiros e 2 decimais)


Cabeçalho Mecanizada:

  • Operador: Operador do Equipamento. Campo visível quando configurado que utiliza o campo Operador no Cabeçalho de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando configurado que o Operador no Cabeçalho de Mecanizada é obrigatório para o Tipo de Apontamento. Quando não informado o Operador, não será considerado o custo do Operador na execução da operação. O Operador deve estar previamente cadastrado e disponível para a Unidade Administrativa corrente. Ao inserir ou alterar algum apontamento, o sistema irá validar se já existe algum apontamento para o mesmo Operador, data e hora, se existir será exibida uma mensagem e o registro não será inserido/alterado. Se o sistema estiver configurado para "Não" permitir mais de um apontamento para o mesmo Operador no mesmo dia e intervalo de horários, ao inserir ou alterar algum apontamento, o sistema irá validar se já existe algum apontamento para o mesmo funcionário, data e hora, se existir será exibida uma mensagem e o registro não será inserido/alterado, caso contrário o apontamento será inserido/alterado. A configuração está localizada em "Administração > Configurações Gerais" e Grupo de Configuração "Atividades Mecanizadas". (Tamanho do campo: 10 inteiros).
  • Hora Inicial: Hora inicial da jornada do operador. Campo visível quando configurado que utiliza o campo Hora Inicial no Cabeçalho de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando configurado que a Hora Inicial no Cabeçalho de Mecanizada é obrigatória para o Tipo de Apontamento. Quando não informado a Jornada do Operador, não será considerado o custo do Operador na execução da operação. A hora informada deve ser no formato HH:MM. (Tamanho do campo: 5 caracteres).
  • Hora Final: Hora final da jornada do operador. Campo visível quando configurado que utiliza o campo Hora Final no Cabeçalho de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando configurado que a Hora Final no Cabeçalho de Mecanizada é obrigatória para o Tipo de Apontamento. Quando não informado a Jornada do Operador, não será considerado o custo do Operador na execução da operação. A hora informada deve ser no formato HH:MM. (Tamanho do campo: 5 caracteres).
  • Jornada: Jornada do Operador, após o usuário informar a hora de início e termino da jornada do operador o sistema calculará as horas trabalhadas pelo operador naquele Equipamento agrícola. Campo visível quando configurado que utiliza o campo Jornada no Cabeçalho de Mecanizada para o Tipo de Apontamento. Se a Hora Final for menor que a Hora Inicial indica que o Equipamento iniciou a atividade num dia e terminou no outro. Campo desabilitado ao usuário. Quando não informado a Jornada do Operador, não será considerado o custo do Operador na execução da operação. (Tamanho do campo: 5 caracteres).



Mecanizada
Objetivo: Tem como objetivo registrar o apontamento das atividades mecanizadas realizadas por tratores, implementos, colhedoras, máquinas agrícolas, caminhões, ônibus, demais veículos, informando os dados e elementos necessários que permitam acompanhar o manejo e eficiência dos equipamentos: centro de custos, operadores/motoristas, equipes, horas produtivas, horas improdutivas por motivo, fazenda, setor, talhão.










Mecanizada:

  • Ordem de Serviço de Campo: Ordem de Serviço de Campo utilizada para realização da operação. Campo visível quando configurado que utiliza Ordem de Serviço de Campo no Detalhe de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando configurado que a Ordem de Serviço de Campo no Detalhe de Mecanizada é obrigatória para o Tipo de Apontamento. A Ordem de Serviço de Campo deve estar previamente cadastrada para a Unidade Administrativa corrente. Não será permitido informar Ordem de Serviço de Campo já encerrada. Ao informar a Ordem de Serviço, o sistema irá carregar o Ano Agrícola, Período de Produção, [Fazenda] (se possuir somente uma na Ordem de Serviço), Centro de Custo, Operação, [Setor] (se possuir somente um na Ordem de Serviço) e [Talhão] (se possuir somente um na Ordem de Serviço), sendo que destes o Ano Agrícola, Período de Produção e Centro Custo ficarão desabilitados. (Tamanho do Campo: 12 inteiros).
  • Ano Agrícola: Ano agrícola referente à data do apontamento. Quando informada a Ordem de Serviço de Campo o Ano Agrícola será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Ano Agrícola no Detalhe de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando configurado que o Ano Agrícola no Detalhe de Mecanizada é obrigatório para o Tipo de Apontamento. O Ano Agrícola deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros)
  • Período de Produção: Período de Produção do Apontamento. Quando informada a Ordem de Serviço de Campo o Período de Produção será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Período de Produção no Detalhe de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando configurado que o Período de Produção no Detalhe de Mecanizada é obrigatório para o Tipo de Apontamento. O Período de Produção deve estar previamente cadastrado e pertencer ao Ano Agrícola informado (quando configurado para informa-lo). (Tamanho do campo: 10 inteiros)
  • [Fazenda]: [Fazenda]/Nível 1 dos Locais de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo e possuir apenas uma [Fazenda] na Ordem de Serviço de Campo, a mesma será automaticamente obtida da Ordem de Serviço de Campo e não será permitido alterá-la. Campo visível quando configurado que utiliza [Fazenda] no Detalhe de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando configurado que a [Fazenda] no Detalhe de Mecanizada é obrigatória para o Tipo de Apontamento. A [Fazenda] deve estar previamente cadastrada e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 6 inteiros)
  • [Setor]: [Setor]/Nível 2 dos Locais de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo e possuir apenas um [Setor] na Ordem de Serviço de Campo, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza [Setor] no Detalhe de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando configurado que o [Setor] no Detalhe de Mecanizada é obrigatório para o Tipo de Apontamento. O [Setor] deve estar previamente cadastrado e pertencer à [Fazenda] informada. (Tamanho do campo: 6 inteiros)
  • [Talhão]: [Talhão]/Nível 3 do Local de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo e possuir apenas um [Talhão] na Ordem de Serviço de Campo e o Tipo de Apontamento não estiver configurado para Permitir Local de Produção diferente da Ordem de Serviço, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo, caso estiver configurado Permitir Local de Produção diferente da Ordem se Serviço, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e será permitido altera-lo. Se informada Ordem de Serviço de Campo e para o Tipo de Apontamento estiver configurado para permitir somente Locais de Produção da Ordem de Serviço, não será permitido informar Local de Produção que não consta na Ordem de Serviço de Campo. Campo visível quando configurado que utiliza [Talhão] no Detalhe de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando configurado que o [Talhão] no Detalhe de Mecanizada é obrigatório para o Tipo de Apontamento. Se estiver configurado para "Calcular custo de produto colhido/in natura" (configurações gerais de Orçamentos / Custos), não é permitido informar Apontamento com Data em Mês/Ano posterior ao Mês/Ano da Data de Encerramento do Período de Produção dos Locais informados no apontamento. O [Talhão] deve estar previamente cadastrado e pertencer à [Fazenda]/[Setor] e Período de Produção informado. (Tamanho do campo: 6 caracteres)
  • Centro de Custo: Centro de Custo para apropriação do custo referente ao apontamento. Quando informada a Ordem de Serviço de Campo o Centro de Custo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Centro de Custo no Detalhe de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando configurado que o Centro de Custo no Detalhe de Mecanizada é obrigatório para o Tipo de Apontamento. Se a Cultura do Período de Produção informado estiver configurada para validar o Centro de Custo com o Período de Produção, deverá carregar o Centro de Custo relacionado ao Período de Produção e Unidade Administrativa atual e não permitir alterar caso o mesmo tenha sido relacionado, se não foi relacionado Centro de Custo com o Período de Produção Informado, o campo permanecerá habilitado para o usuário informar. O Centro de Custo deve estar previamente cadastrado e pertencer à Unidade Administrativa corrente. Se informado o Centro de Custo no Cabeçalho, o mesmo será carregado e não será permitido alterá-lo. (Tamanho do campo: 20 caracteres)
  • Operação: Operação que está sendo realizada. Quando informada a Ordem de Serviço de Campo, a Operação será automaticamente obtida da Ordem de Serviço de Campo. O Equipamento informado no apontamento será validado com a Operação (a configuração de Equipamentos permitidos para a Operação está localizada no cadastro de Operações). Somente serão permitidas Operações Mecanizadas ou Semi-Mecanizadas. Campo visível quando configurado que utiliza Operação no Detalhe de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando configurado que a Operação no Detalhe de Mecanizada é obrigatória para o Tipo de Apontamento. A Operação deve estar previamente cadastrada e pertencer ao Centro de Custo informado. Se a Operação informada for Produtiva e for informada a Ordem de Serviço de Campo, a Operação obrigatoriamente terá que ser a Operação informada na Ordem de Serviço de Campo. Se informada a Operação no cabeçalho comum, a mesma será carregada automaticamente e somente será permitido alterá-la para operação não Produtiva, ou permanecer a mesma operação informada no cabeçalho. (Tamanho do campo: 10 inteiros)
  • Operação Principal: Operação produtiva planejada para a execução como sendo a principal. Quando informada a Ordem de Serviço de Campo, a Operação será automaticamente obtida da Ordem de Serviço de Campo e não será permitido alterá-la. O Equipamento informado no apontamento será validado com a Operação (a configuração de Equipamentos permitidos para a Operação está localizada no cadastro de Operações). Somente serão permitidas Operações Mecanizadas ou Semi-Mecanizadas. Campo visível quando configurado que utiliza Operação no Detalhe de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando configurado que a Operação no Detalhe de Mecanizada é obrigatória para o Tipo de Apontamento. A Operação deve estar previamente cadastrada, pertencer ao Centro de Custo informado e ser classificada como Produtiva. Se a Operação informada for Produtiva e for informada a Ordem de Serviço de Campo, a Operação obrigatoriamente terá que ser a Operação informada na Ordem de Serviço de Campo. Ao informar no campo "Operação" uma Operação Produtiva, o sistema irá sugerir automaticamente a Operação Principal como sendo a Operação informada. (Tamanho do campo: 10 inteiros)
  • Implemento: O usuário pode indicar o implemento agrícola que participa da operação mecanizada, por exemplo o implemento semeadora é utilizada na operação de semeadura, o implemento grade é utilizada na operação gradagem. Campo visível quando configurado que utiliza Implemento no Detalhe de Mecanizada para o Tipo de Apontamento. O Implemento será validado com a Operação e será requerido se a operação estiver marcada como Usa Implemento (a configuração de Equipamentos permitidos para a Operação e o campo Usa Implemento estão localizados no cadastro de Operações). O Implemento deve estar previamente cadastrado e pertencer ao Grupo Operativo tipo "2 -  Equipamento Auxiliar" e estar disponível para a Unidade Administrativa na data do Apontamento. (Tamanho do campo: 10 caracteres).
  • Hr/Km Inicial: O usuário deve indicar o Horímetro/Odômetro Inicial do Equipamento que está realizando a operação mecanizada, ou de acordo com a operação escolhida informar a hora e minuto do início da operação. O formato do campo depende da configuração da Operação "Forma de Horas no Apontamento". Campo visível e obrigatório. Quando o formato do campo é Horímetro/Odômetro, o valor deve ser maior ou igual à 0 (zero) e o Hr/Km Inicial deve ser menor que o Hr/Km Final. Ao inserir um novo registro o Hr/Km Inicial é iniciado com o último Hr/Km Final do Equipamento. (Tamanho do campo: 10 inteiros e 4 decimais ou 5 caracteres se informado no formato de hora relógio)
  • Hr/Km Final: O usuário deve indicar o Horímetro/Odômetro Final do Equipamento que está realizando a operação mecanizada, ou de acordo com a operação escolhida informar a hora e minuto do fim da operação. O formato do campo depende da configuração da Operação "Forma de Horas no Apontamento". Campo visível e obrigatório. Quando o formato do campo é Horímetro/Odômetro, o valor deve ser maior ou igual à 0 (zero) e o Hr/Km Inicial deve ser menor que o Hr/Km Final. (Tamanho do campo: 10 inteiros e 4 decimais ou 5 caracteres se informado no formato de hora relógio)
  • Hr/Km Total: Horímetro/Odômetro total (Hr/Km Final - Hr/Km Inicial). Se os campos "Hr/Km Inicial" e "Hr/Km Final" estiverem no formato de Hora Relógio será a diferença entre os dois horários, podendo o horário final ser menor que o inicial, indicando que a atividade iniciou num dia e finalizou no outro dia. Campo desabilitado ao usuário. (Tamanho do campo: 10 inteiros e 4 decimais ou 5 caracteres se informado no formato de hora relógio)
  • Produção: O usuário pode indicar a Produção realizada na operação. Campo visível quando configurado que utiliza Produção no Detalhe de Mecanizada para o Tipo de Apontamento. Campo obrigatório quando estiver configurado "Informar a Produção no apontamento de Atividade Mecanizada" no cadastro de Operação, caso contrário não será obrigatório informar a Produção. Campo informativo onde o usuário pode informar qualquer tipo de produção, ou seja, área, número de viagens e etc, poderá ser utilizado em Indicadores definidos pelo usuário e quando informado deve ser maior ou igual a 0 (zero). (Tamanho do campo: 6 inteiros e 2 decimais).


Validações com parâmetros internos:

  • Quando a Unidade de Medida na Categoria Operacional do Equipamento for "H-Hora" e possuir valor maior que 0 (zero) no parâmetro interno [22-VL_MAX_DIFF_HOR] o sistema irá validar para não permitir Jornada (hora máquina) com valor superior ao valor estabelecido no parâmetro.


Demais validações:

  • Ao inserir ou alterar um registro nos detalhes do apontamento o sistema irá validar se já existe outro detalhe onde os valores dos campos Hr/Km Inicial e Hr/Km Final se intercalam, se existir será exibida uma mensagem e o detalhe não será inserido.
  • Se o Tipo de Apontamento for de Mecanizada é necessário ao menos um registro de Detalhe de Mecanizada.


Demais funcionalidades:

  • Ao inserir um novo registro detalhe são preenchidos todos os campos com os valores do último registro da grid, menos o campo Hr/Km Final e Produção. O cursor ficará posicionado no primeiro campo editável.



Locais
Objetivo: Registrar os Locais de Produção onde ocorreram a execução da operação agrícola.






Locais:

  • Ano Agrícola: Ano agrícola ao qual pertence o Local de Produção. Quando informada a Ordem de Serviço de Campo no Cabeçalho Comum, o Ano Agrícola será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Ano Agrícola no Detalhe do Local de Produção para o Tipo de Apontamento. Campo obrigatório quando configurado que o Ano Agrícola no Detalhe do Local de Produção é obrigatório para o Tipo de Apontamento. O Ano Agrícola deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros)
  • Período de Produção: Período de Produção ao qual pertence o Local de Produção. Quando informada a Ordem de Serviço de Campo no Cabeçalho Comum, o Período de Produção será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Período de Produção no Detalhe do Local de Produção para o Tipo de Apontamento. Campo obrigatório quando configurado que o Período de Produção no Detalhe do Local de Produção é obrigatório para o Tipo de Apontamento. O Período de Produção deve estar previamente cadastrado e pertencer ao Ano Agrícola informado (quando configurado para informa-lo). (Tamanho do campo: 10 inteiros)
  • [Fazenda]: [Fazenda]/Nível 1 do Local de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo no Cabeçalho Comum e possuir apenas uma [Fazenda] na Ordem de Serviço de Campo, a mesma será automaticamente obtida da Ordem de Serviço de Campo e não será permitido alterá-la. Campo visível quando configurado que utiliza [Fazenda] no Detalhe do Local de Produção para o Tipo de Apontamento. Campo obrigatório quando configurado que a [Fazenda] no Detalhe do Local de Produção é obrigatória para o Tipo de Apontamento. A [Fazenda] deve estar previamente cadastrada e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 6 inteiros)
  • [Setor]: [Setor]/Nível 2 do Local de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo no Cabeçalho Comum e possuir apenas um [Setor] na Ordem de Serviço de Campo, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza [Setor] no Detalhe do Local de Produção para o Tipo de Apontamento. Campo obrigatório quando configurado que o [Setor] no Detalhe do Local de Produção é obrigatório para o Tipo de Apontamento. O [Setor] deve estar previamente cadastrado e pertencer à [Fazenda] informada. (Tamanho do campo: 6 inteiros)
  • [Talhão]: [Talhão]/Nível 3 do Local de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo no Cabeçalho Comum e possuir apenas um [Talhão] na Ordem de Serviço de Campo e o Tipo de Apontamento não estiver configurado para Permitir Local de Produção diferente da Ordem de Serviço, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo, caso estiver configurado Permitir Local de Produção diferente da Ordem se Serviço, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e será permitido altera-lo. Se informada Ordem de Serviço de Campo e para o Tipo de Apontamento estiver configurado para permitir somente Locais de Produção da Ordem de Serviço, não será permitido informar Local de Produção que não consta na Ordem de Serviço de Campo. Campo visível quando configurado que utiliza [Talhão] no Detalhe de Local de Produção para o Tipo de Apontamento. Campo obrigatório quando configurado que o [Talhão] no Detalhe de Local de Produção é obrigatório para o Tipo de Apontamento. Se estiver configurado para "Calcular custo de produto colhido/in natura" (configurações gerais de Orçamentos / Custos), não é permitido informar Apontamento com Data em Mês/Ano posterior ao Mês/Ano da Data de Encerramento do Período de Produção dos Locais informados no apontamento. O [Talhão] deve estar previamente cadastrado e pertencer à [Fazenda]/[Setor] e Período de Produção informado. Se o Tipo de Apontamento for de Plantio e se o parâmetro "Os dados do Plantio devem ser iguais aos do [Talhão]?" no Grupo de Configuração "11-Apontamentos de Plantio" na tela de Configurações Gerais estiver como "Sim", os campos Variedade, Espaçamento, Sistema de Cultivo e Sistema de Plantio dos Locais de Produção devem ser iguais ao Cabeçalho Comum. (Tamanho do campo: 6 caracteres)
  • Área: Área realizada no Local de Produção. Se configurado para sugerir a área restante na Ordem de Serviço (parâmetro 'Sugerir área restante da Ordem de Serviço nos Apontamentos' = Sim), o sistema irá sugerir a área restante para o Local de Produção/Ordem de Serviço. Campo visível quando configurado que utiliza Área no Detalhe do Local de Produção para o Tipo de Apontamento. Campo obrigatório quando configurado que a Área no Detalhe do Local de Produção é obrigatória para o Tipo de Apontamento. A área deve ser menor ou igual à área produtiva do Local de Produção. Quando informada, a área deve ser maior que zero. Se o Tipo de Apontamento for de Plantio e quando configurado para a Cultura/Ocupação do Local de Produção que consiste a área no apontamento de plantio será validada a área com a soma das áreas de Plantio, ou seja, se for realizado apontamento de plantio onde a soma das áreas apontadas for superior a área do Local de Produção é emitida mensagem (se configurado para consistir a área de plantio) questionando se o usuário deseja continuar, se responder que sim permite o apontamento indicando que o mesmo é replantio. (Tamanho do campo: 6 inteiros e 2 decimais)
  • Replantio: Indica se a área que está sendo plantada se refere à Plantio ou Replantio. Por padrão o valor é "Não". Campo visível quando configurado que utiliza o campo Replantio no Detalhe do Local de Produção para o Tipo de Apontamento.
    • Sim: Indica que é Replantio.
    • Não: Indica que é Plantio.


Demais funcionalidades:

  • Incluir Locais da Ordem de Serviço: Inclui os Locais de Produção da Ordem de Serviço de Campo e que não já estejam no apontamento.
  • Incluir Locais da Mecanizada: Inclui os Locais de Produção informados na guia da Mecanizada e que não já estejam no apontamento.
  • Quando o Local de Produção é informado no Cabeçalho Comum, o mesmo também é gravado no Detalhe do Local de Produção.
  • Ao inserir um novo registro detalhe são preenchidos todos os campos com os valores do último registro da grid, menos os campos [Talhão], Área e Replantio. O cursor ficará posicionado no primeiro campo editável.


Demais validações:

  • Não é permitido inserir o mesmo Local de Produção mais de uma vez para o mesmo Apontamento.
  • Se o Tipo for de Insumo e/ou Plantio é necessário possuir ao menos um Local de Produção informado.




Insumos
Objetivo: Registrar os Insumos utilizados na operação de aplicação de insumos.




Insumos:

  • Insumo: O usuário deve digitar os insumos utilizados. Campo visível quando configurado que utiliza Insumo no Detalhe de Insumos para o Tipo de Apontamento. Campo obrigatório quando configurado que o Insumo no Detalhe de Insumos é obrigatório para o Tipo de Apontamento. Quando o sistema estiver configurado para "Validar Insumo com o da Ordem de Serviço" somente será permitido informar Insumos da Ordem de Serviço de Campo. Permite informar o mesmo insumo, porém em Lotes distintos. Será validado com os insumos permitidos para a Operação (desde que configurado no cadastro de Operação). Se o Tipo de Apontamento for de Plantio, somente será permitido informar Insumos do tipo Semente/Muda que estejam relacionados com a Variedade informada. O Insumo deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros).
  • Número de Lote: O usuário pode informar o número do lote do insumo utilizado. Campo visível quando configurado que utiliza Número de Lote no Detalhe de Insumos para o Tipo de Apontamento. Campo Obrigatório quando configurado que o Insumo possui Controle por Lote. (Tamanho do campo: 15 caracteres)
  • Depósito: Depósito de onde foi retirado o insumo. Campo visível quando configurado que utiliza Depósito no Detalhe de Insumos para o Tipo de Apontamento. Campo obrigatório quando configurado que o Depósito no Detalhe de Insumos é obrigatório para o Tipo de Apontamento. O Depósito deve estar previamente cadastrado para a Unidade Administrativa corrente. (Tamanho do campo: 10 inteiros).
  • Dose Programada/ha: Dose programada do Insumo por hectare. Campo visível quando configurado que utiliza "Dose Programada/ha" no Detalhe de Insumos para o Tipo de Apontamento. Campo obrigatório quando configurado que a "Dose Programada/ha" no Detalhe de Insumos é obrigatória para o Tipo de Apontamento. (Tamanho do campo: 6 inteiros e 4 decimais).
  • Quantidade Total: Quantidade total do insumo consumido. Campo visível quando configurado que utiliza Quantidade Total no Detalhe de Insumos para o Tipo de Apontamento. Campo obrigatório quando configurado que a Quantidade Total no Detalhe de Insumos é obrigatória para o Tipo de Apontamento. A Quantidade deve ser maior que 0 (zero). Ao lado da Quantidade Total é indicada a Unidade de Medida para Apontamento do Insumo, a Unidade de Medida é a Unidade de Medida configurada para Apontamento no cadastro de Insumo, se não possuir Unidade de Medida configurada para Apontamento será considerada a Unidade de Medida do próprio Insumo. Para Integração é convertida a quantidade apontada para a Unidade de Medida do Insumo, para isso é necessário possuir Conversor de Unidade de Medida cadastrado entre a Unidade de Medida para Apontamento e Unidade de Medida do Insumo. Quando o Insumo for de Semente/Muda e informado o tratamento de semente, recupera a quantidade da semente tratada "menos" a soma das quantidades apontadas da semente com referência ao tratamento de semente informado. A quantidade informada não pode ser maior que a quantidade "saldo" para o tratamento de semente informado. (Tamanho do campo: 6 inteiros e 4 decimais).
  • Procedência: Procedência da Semente/Muda. Campo visível quando configurado que utiliza Procedência no Detalhe de Insumos para o Tipo de Apontamento. Campo habilitado somente quando o Insumo for Semente/Muda. Campo obrigatório quando configurado que a Procedência no Detalhe de Insumos é obrigatória para o Tipo de Apontamento. A Procedência deve estar previamente cadastrada. (Tamanho do campo: 10 inteiros).


Demais validações:

  • Se o Tipo de Apontamento for de Plantio é necessário informar ao menos um registro de Insumo do tipo Semente/Muda.
  • Não é permitido informar Insumos distintos do tipo Semente/Muda, ou seja, uma vez informado um Insumo do tipo Semente/Muda não é permitido informar outro insumo do tipo Semente/Muda.
  • Se o Tipo de Apontamento utilizar Insumo é necessário ao menos um Insumo informado.
  • Não é permitido informar mais de um registro para o mesmo Insumo, Lote e Depósito.


Demais funcionalidades:

  • A coluna Insumo (código e descrição) permanece fixa na tela ao percorrer a barra de rolagem das colunas da grid.
  • Incluir Insumos da Ordem de Serviço: Inclui os Insumos (componentes do tipo Insumo e que estejam com o Insumo informado na Ordem de Serviço) da Ordem de Serviço de Campo com a Dosagem Programada por Hectare informada na Ordem de Serviço e com a Quantidade Total de acordo com a soma das áreas dos Locais de Produção informado no Apontamento. Exemplo:

 

Ordem de Serviço

 

 

 

Produto

Qtde Componente

Utilização (%)

Qtde Produção

Produto A

10

100

1

Produto B

10

80

1

Produto C

10

100

0,5

Apontamento - Local de Produção

 

Código Talhão

Área (ha)

101

20

102

25

 Soma da Área

45

Apontamento - Insumos

 

 

Produto

Dosagem/ha

Quantidade Total

Produto A

10

450

Produto B

8

360

Produto C

20

900


Onde:

  • Quantidade Total = ((Qtde Componente/Qtde Produção) * (Utilização/100)) * Soma da Área dos Locais de Produção
  • Dosagem/ha = Quantidade Total / Soma da Área dos Locais de Produção



Manual
Objetivo: Registrar a Mão de Obra utilizada para a realização da operação.










Manual:

  • Ordem de Serviço: Ordem de Serviço de Campo utilizada para realização da operação. Campo visível quando configurado que utiliza Ordem de Serviço de Campo no Detalhe de Manual para o Tipo de Apontamento. Campo obrigatório quando configurado que a Ordem de Serviço de Campo no Detalhe de Manual é obrigatória para o Tipo de Apontamento. A Ordem de Serviço de Campo deve estar previamente cadastrada para a Unidade Administrativa corrente. Não será permitido informar Ordem de Serviço de Campo já encerrada. Ao informar a Ordem de Serviço, o sistema irá carregar o Ano Agrícola, Período de Produção, [Fazenda] (se possuir somente uma na Ordem de Serviço), Centro de Custo, Operação, [Setor] (se possuir somente um na Ordem de Serviço) e [Talhão] (se possuir somente um na Ordem de Serviço), sendo que destes o Ano Agrícola, Período de Produção, Centro Custo e Operação ficarão desabilitados. (Tamanho do Campo: 12 inteiros).
  • Ano Agrícola: Ano agrícola referente ao Local de Produção. Quando informada a Ordem de Serviço de Campo o Ano Agrícola será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Ano Agrícola no Detalhe de Manual para o Tipo de Apontamento. Campo obrigatório quando configurado que o Ano Agrícola no Detalhe de Manual é obrigatório para o Tipo de Apontamento. O Ano Agrícola deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros)
  • Período de Produção: Período de Produção do Local de Produção. Quando informada a Ordem de Serviço de Campo o Período de Produção será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Período de Produção no Detalhe de Manual para o Tipo de Apontamento. Campo obrigatório quando configurado que o Período de Produção no Detalhe de Manual é obrigatório para o Tipo de Apontamento. O Período de Produção deve estar previamente cadastrado e pertencer ao Ano Agrícola informado (quando configurado para informá-lo). (Tamanho do campo: 10 inteiros)
  • [Fazenda]: [Fazenda]/Nível 1 dos Locais de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo e possuir apenas uma [Fazenda] na Ordem de Serviço de Campo, a mesma será automaticamente obtida da Ordem de Serviço de Campo e não será permitido alterá-la. Campo visível quando configurado que utiliza [Fazenda] no Detalhe de Manual para o Tipo de Apontamento. Campo obrigatório quando configurado que a [Fazenda] no Detalhe de Manual é obrigatória para o Tipo de Apontamento. A [Fazenda] deve estar previamente cadastrada e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 6 inteiros)
  • [Setor]: [Setor]/Nível 2 dos Locais de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo e possuir apenas um [Setor] na Ordem de Serviço de Campo, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza [Setor] no Detalhe de Manual para o Tipo de Apontamento. Campo obrigatório quando configurado que o [Setor] no Detalhe de Manual é obrigatório para o Tipo de Apontamento. O [Setor] deve estar previamente cadastrado e pertencer à [Fazenda] informada. (Tamanho do campo: 6 inteiros)
  • [Talhão]: [Talhão]/Nível 3 do Local de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo e possuir apenas um [Talhão] na Ordem de Serviço de Campo e o Tipo de Apontamento não estiver configurado para Permitir Local de Produção diferente da Ordem de Serviço, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo, caso estiver configurado Permitir Local de Produção diferente da Ordem se Serviço, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e será permitido altera-lo. Se informada Ordem de Serviço de Campo e para o Tipo de Apontamento estiver configurado para permitir somente Locais de Produção da Ordem de Serviço, não será permitido informar Local de Produção que não consta na Ordem de Serviço de Campo. Campo visível quando configurado que utiliza [Talhão] no Detalhe de Manual para o Tipo de Apontamento. Campo obrigatório quando configurado que o [Talhão] no Detalhe de Manual é obrigatório para o Tipo de Apontamento. Se estiver configurado para "Calcular custo de produto colhido/in natura" (configurações gerais de Orçamentos / Custos), não é permitido informar Apontamento com Data em Mês/Ano posterior ao Mês/Ano da Data de Encerramento do Período de Produção dos Locais informados no apontamento. O [Talhão] deve estar previamente cadastrado e pertencer à [Fazenda]/[Setor] e Período de Produção informado. (Tamanho do campo: 6 caracteres)
  • Centro de Custo: Centro de Custo para apropriação do custo referente ao apontamento. Quando informada a Ordem de Serviço de Campo o Centro de Custo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Centro de Custo no Detalhe de Manual para o Tipo de Apontamento. Campo obrigatório quando configurado que o Centro de Custo no Detalhe de Manual é obrigatório para o Tipo de Apontamento. Se a Cultura do Período de Produção informado estiver configurada para validar o Centro de Custo com o Período de Produção, deverá carregar o Centro de Custo relacionado ao Período e Unidade Administrativa atual e não permitir alterar caso o mesmo tenha sido relacionado, se não foi relacionado Centro de Custo com o Período de Produção Informado, o campo permanecerá habilitado para o usuário informar. O Centro de Custo deve estar previamente cadastrado e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 20 caracteres)
  • Operação: Operação que está sendo realizada. Quando informada a Ordem de Serviço de Campo, a Operação será automaticamente obtida da Ordem de Serviço de Campo e não será permitido alterá-la. Somente serão permitidas Operações Manuais ou Semi-Mecanizadas. Campo visível quando configurado que utiliza Operação no Detalhe de Manual para o Tipo de Apontamento. Campo obrigatório quando configurado que a Operação no Detalhe de Manual é obrigatória para o Tipo de Apontamento. A Operação deve estar previamente cadastrada e pertencer ao Centro de Custo informado. (Tamanho do campo: 10 inteiros)
  • [Funcionário]: o usuário deve indicar o funcionário que está realizando a operação manual. Campo visível quando configurado que utiliza [Funcionário] no Detalhe de Manual para o Tipo de Apontamento. Campo obrigatório quando configurado que o [Funcionário] no Detalhe de Manual é obrigatório para o Tipo de Apontamento. O Funcionário deve estar previamente cadastrado e disponível na Data do apontamento para a Unidade Administrativa a qual o apontamento está sendo realizado. Quando o Funcionário não estiver configurado para "Uso Coletivo" o campo "Quantidade de Recursos" terá o valor 1 (um) e ficará desabilitado, caso contrário será obrigatório informar a Quantidade de Recursos. (Tamanho do campo: 10 inteiros)


Comportamento do Apontamento de Atividades Manuais quando configurado para Apontamento Coletivo:

  • Será necessário informar a Quantidade de Recursos (funcionários). Esta quantidade deve ser maior que zero.
  • O número de total de horas ref. a jornada será (Data e Hora Final – Data e Hora Inicial) * Quantidade de Recursos.
  • Será permitido número total de horas de jornada superior a 24 horas no dia.
  • Será permitido mais de um apontamento no mesmo dia e intervalo de horários para esse mesmo "funcionário".

 

  • Hora Inicial: O usuário deve indicar a hora inicial da realização da operação manual. Campo visível quando configurado que utiliza Hora Inicial no Detalhe de Manual para o Tipo de Apontamento. Campo obrigatório quando configurado que a Hora Inicial no Detalhe de Manual é obrigatória para o Tipo de Apontamento. Ao informar Hora Inicial maior que Hora Final é emitida mensagem ao usuário e solicitado confirmação. (Tamanho do campo: 4 caracteres)
  • Hora Final: O usuário deve indicar a hora final da realização da operação manual. Campo visível quando configurado que utiliza Hora Final no Detalhe de Manual para o Tipo de Apontamento. Campo obrigatório quando configurado que a Hora Final no Detalhe de Manual é obrigatória para o Tipo de Apontamento. Ao informar Hora Final menor que Hora Inicial é emitida mensagem ao usuário e solicitado confirmação. (Tamanho do campo: 4 caracteres)
  • Qtde Recursos: Quantidade de Recursos (pessoas) utilizados para realização da operação. Campo visível quando configurado que utiliza Quantidade de Recursos no Detalhe de Manual para o Tipo de Apontamento. Campo habilitado e obrigatório quando o Funcionário informado estiver configurado para "Uso Coletivo", caso contrário o campo ficará desabilitado e com o valor 1 (um). (Tamanho do campo: 4 inteiros)
  • Jornada: Jornada trabalhada. Após o usuário indicar a hora inicial e a final o sistema calcula a jornada de trabalho do funcionário. O número de total de horas ref. a jornada será (Data e Hora Final – Data e Hora Inicial) * Quantidade de Recursos. Campo visível quando configurado que utiliza Jornada no Detalhe de Manual para o Tipo de Apontamento. Campo desabilitado ao usuário.
  • Produção: Produção da Operação realizada. Campo visível quando configurado que utiliza Produção no Detalhe de Manual para o Tipo de Apontamento. A obrigatoriedade do campo depende da configuração do Tipo de Apontamento, que pode não obrigatório, obrigatório ou obrigatório quando serviço realizado por Terceiro. Quando a unidade de medida da operação for "Hora" o valor do campo Produção será o valor do campo "Jornada (hs)", considerando a quantidade de recursos. A Produção é utilizada para Pagamento de Serviços realizados por Terceiros e para visões Operacionais do Apontamento de Atividade Manual. Quando a unidade de medida da Operação for diferente de "Hora", o valor informado não é considerado como produção da operação para Custeio e sim somente para controle operacional. (Tamanho do campo: 10 inteiros e 4 decimais)


Demais funcionalidades:

  • Ao inserir um novo registro detalhe são preenchidos todos os campos com os valores do último registro da grid, exceto o campo Funcionário. O cursor ficará posicionado no primeiro campo editável.





Produção da Operação
Objetivo: Registrar a produção da operação por Local de Produção.








Produção da Operação:

  • Ordem de Serviço: Ordem de Serviço de Campo utilizada para realização da operação. Campo visível quando configurado que utiliza Ordem de Serviço de Campo no Detalhe de Produção da Operação para o Tipo de Apontamento. Campo obrigatório quando configurado que a Ordem de Serviço de Campo no Detalhe de Produção da Operação é obrigatória para o Tipo de Apontamento. A Ordem de Serviço de Campo deve estar previamente cadastrada para a Unidade Administrativa corrente. Não será permitido informar Ordem de Serviço de Campo já encerrada. Ao informar a Ordem de Serviço, o sistema irá carregar o Ano Agrícola, Período de Produção, [Fazenda] (se possuir somente uma na Ordem de Serviço), Centro de Custo, Operação, [Setor] (se possuir somente um na Ordem de Serviço) e [Talhão] (se possuir somente um na Ordem de Serviço), sendo que destes o Ano Agrícola, Período de Produção, Centro Custo e Operação ficarão desabilitados. (Tamanho do Campo: 12 inteiros).
  • Ano Agrícola: Ano agrícola referente ao Local de Produção. Quando informada a Ordem de Serviço de Campo o Ano Agrícola será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Ano Agrícola no Detalhe de Produção da Operação para o Tipo de Apontamento. Campo obrigatório quando configurado que o Ano Agrícola no Detalhe de Produção da Operação é obrigatório para o Tipo de Apontamento. O Ano Agrícola deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros)
  • Período de Produção: Período de Produção do Local de Produção. Quando informada a Ordem de Serviço de Campo o Período de Produção será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Período de Produção no Detalhe de Produção da Operação para o Tipo de Apontamento. Campo obrigatório quando configurado que o Período de Produção no Detalhe de Produção da Operação é obrigatório para o Tipo de Apontamento. O Período de Produção deve estar previamente cadastrado e pertencer ao Ano Agrícola informado (quando configurado para informá-lo). (Tamanho do campo: 10 inteiros)
  • [Fazenda]: [Fazenda]/Nível 1 dos Locais de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo e possuir apenas uma [Fazenda] na Ordem de Serviço de Campo, a mesma será automaticamente obtida da Ordem de Serviço de Campo e não será permitido alterá-la. Campo visível quando configurado que utiliza [Fazenda] no Detalhe de Produção da Operação para o Tipo de Apontamento. Campo obrigatório quando configurado que a [Fazenda] no Detalhe de Produção da Operação é obrigatória para o Tipo de Apontamento. A [Fazenda] deve estar previamente cadastrada e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 6 inteiros)
  • [Setor]: [Setor]/Nível 2 dos Locais de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo e possuir apenas um [Setor] na Ordem de Serviço de Campo, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza [Setor] no Detalhe de Produção da Operação para o Tipo de Apontamento. Campo obrigatório quando configurado que o [Setor] no Detalhe de Produção da Operação é obrigatório para o Tipo de Apontamento. O [Setor] deve estar previamente cadastrado e pertencer à [Fazenda] informada. (Tamanho do campo: 6 inteiros)
  • [Talhão]: [Talhão]/Nível 3 do Local de Produção onde está sendo realizada a operação. Quando informada a Ordem de Serviço de Campo e possuir apenas um [Talhão] na Ordem de Serviço de Campo e o Tipo de Apontamento não estiver configurado para Permitir Local de Produção diferente da Ordem de Serviço, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo, caso estiver configurado Permitir Local de Produção diferente da Ordem se Serviço, o mesmo será automaticamente obtido da Ordem de Serviço de Campo e será permitido altera-lo. Se informada Ordem de Serviço de Campo e para o Tipo de Apontamento estiver configurado para permitir somente Locais de Produção da Ordem de Serviço, não será permitido informar Local de Produção que não consta na Ordem de Serviço de Campo. Campo visível quando configurado que utiliza [Talhão] no Detalhe de Produção da Operação para o Tipo de Apontamento. Campo obrigatório quando configurado que o [Talhão] no Detalhe de Produção da Operação é obrigatório para o Tipo de Apontamento. Se estiver configurado para "Calcular custo de produto colhido/in natura" (configurações gerais de Orçamentos / Custos), não é permitido informar Apontamento com Data em Mês/Ano posterior ao Mês/Ano da Data de Encerramento do Período de Produção dos Locais informados no apontamento. O [Talhão] deve estar previamente cadastrado e pertencer à [Fazenda]/[Setor] e Período de Produção informado. (Tamanho do campo: 6 caracteres)
  • Centro de Custo: Centro de Custo para apropriação do custo referente ao apontamento. Quando informada a Ordem de Serviço de Campo o Centro de Custo será automaticamente obtido da Ordem de Serviço de Campo e não será permitido alterá-lo. Campo visível quando configurado que utiliza Centro de Custo no Detalhe de Produção da Operação para o Tipo de Apontamento. Campo obrigatório quando configurado que o Centro de Custo no Detalhe de Produção da Operação é obrigatório para o Tipo de Apontamento. Se a Cultura do Período de Produção informado estiver configurada para validar o Centro de Custo com o Período de Produção, deverá carregar o Centro de Custo relacionado ao Período e Unidade Administrativa atual e não permitir alterar caso o mesmo tenha sido relacionado, se não foi relacionado Centro de Custo com o Período de Produção Informado, o campo permanecerá habilitado para o usuário informar. O Centro de Custo deve estar previamente cadastrado e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 20 caracteres)
  • Operação: Operação que está sendo realizada. Quando informada a Ordem de Serviço de Campo, a Operação será automaticamente obtida da Ordem de Serviço de Campo e não será permitido alterá-la. Campo visível quando configurado que utiliza Operação no Detalhe de Produção da Operação para o Tipo de Apontamento. Campo obrigatório quando configurado que a Operação no Detalhe de Produção da Operação é obrigatória para o Tipo de Apontamento. A Operação deve estar previamente cadastrada e pertencer ao Centro de Custo informado. (Tamanho do campo: 10 inteiros)
  • Produção: O usuário deve informar a produção da operação (hectares, quilômetros, etc.) realizada. Se a unidade de medida da Operação for Hectare e se configurado para sugerir a área restante na Ordem de Serviço (parâmetro 'Sugerir área restante da Ordem de Serviço nos Apontamentos' = S), o sistema irá sugerir a área restante para o Local de Produção /Ordem de Serviço. A produção deve ser maior que 0 (zero). (Tamanho do campo: 6 inteiros e 3 decimais)


Demais Validações Gerais:

  • Não será permitido a alteração/exclusão/finalização de apontamentos já finalizados (casos em que um apontamento é finalizado pela tela de Finalização de Boletim enquanto o mesmo está aberto na tela de outro usuário).
  • Não é permitido manipular um apontamento que já tenha sido processado pelo Processamento de Pagamento de Serviços. Para realizar esta operação, deverá ser regredida a Data de Pagamento do Período de Pagamento do Contrato do Prestador que realizou o serviço.
  • Não será permitido a inclusão/alteração/exclusão/finalização de apontamentos com Data em que o Custo já esteja processado.
  • Quando informado no Detalhe - Local de Produção o "Ano Agrícola / Período de Produção / [Fazenda] / [Setor] / [Talhão]", se informado no Detalhe - Mecanizada, o mesmo deverá existir no Detalhe - Local de Produção:
    • Quando informado Ano Agrícola no Detalhe - Local de Produção e se informado Ano Agrícola no Detalhe - Mecanizada, o mesmo deverá existir no Detalhe - Local de Produção.
    • Quando informado Período de Produção no Detalhe - Local de Produção e se informado Período de Produção no Detalhe - Mecanizada, o mesmo deverá existir no Detalhe - Local de Produção.
    • Quando informada [Fazenda] no Detalhe - Local de Produção e se informada [Fazenda] no Detalhe - Mecanizada, a mesma deverá existir no Detalhe - Local de Produção.
    • Quando informado [Setor] no Detalhe - Local de Produção e se informado [Setor] no Detalhe - Mecanizada, o mesmo deverá existir no Detalhe - Local de Produção.
    • Quando informado [Talhão] no Detalhe - Local de Produção e se informado [Talhão] no Detalhe - Mecanizada, o mesmo deverá existir no Detalhe - Local de Produção.


Demais funcionalidades:

  • Ao inserir um novo registro detalhe são preenchidos todos os campos com os valores do último registro da grid, exceto o campo Funcionário. O cursor ficará posicionado no primeiro campo editável.


Demais Funcionalidades Gerais:

  • Legenda dos campos: Ao passar o mouse sobre o ícone de legenda dos campos, os campos mudam de cor indicando o seu tipo (Mecanizada, Manual, Insumo, Plantio ou Produção).
  • Teclas de Atalho:
    • Ctrl + F: Aplicar Filtro
    • Ctrl + Seta Cima | Ctrl + Seta Baixo: Navegação nos registros
    • Ctrl + E: Editar
    • Ctrl + S: Salvar
    • Ctrl + Shift + S: Salvar e Incluir
    • ESC: Cancelar Inclusão/Edição
    • Ctrl + 1 | Ctrl + 2 |  Ctrl + 3 | Ctrl + 4 | Ctrl + 5: Alternar Abas
    • Ctrl + L: Acionar lupa dos campos
  • Dentro das Pop-ups: (para todas as telas)
    • Ctrl + F: Aplicar Filtro
    • Ctrl + Seta Cima | Ctrl + Seta Baixo: Navegar nos registros
    • Ctrl + Enter: Selecionar Registro na Popup
    • Clique duplo: Selecionar Registro na Popup
  • Salvar e Incluir: Salva o registro corrente inicializa um novo registro permanecendo os valores no Cabeçalho dos campos Data, Turno, Ordem de Serviço de Campo, Ano Agrícola, Período de Produção, Centro de Custo, Operação, [Fazenda], [Setor], Equipe, Condição do Tempo, Temperatura, Umidade, Velocidade do Vento, Direção do Vento e Condição do Solo.
  • Incluir Novo: Ao clicar em "Incluir Novo" é necessário indicar o Tipo de Apontamento a ser incluído caso o mesmo já não selecionado no botão de Incluir Novo.
  • Finalizar: Finaliza o apontamento integrando-o com o ERP de acordo com os Depósitos informados. Campo visível somente quando o Tipo de Apontamento for de Insumo.
  • Justificar: Justificar quando há desvio no controle de dosagem. O botão somente ficará habilitado quando o Apontamento estiver com inconformidade (a inconformidade somente será gerada no processamento do indicador de Controle de Dosagens).




Filtros Cabeçalho Comum:
Tipo de Apontamento: Tipos de Apontamentos a serem filtrados.

  • Data Inicial: Data inicial para filtro dos Apontamentos. A Data inicial deve ser menor ou igual à Data final. Se não informado nenhum filtro além do Tipo de Apontamento é necessário informar a Data Inicial e Data Final.
  • Data Final: Data final para filtro dos Apontamentos. A Data final deve ser maior ou igual à Data inicial. Se não informado nenhum filtro além do Tipo de Apontamento é necessário informar a Data Inicial e Data Final.
  • Número: Número do Boletim de apontamento agrícola. (Tamanho do Campo: 8 Inteiros).
  • Turno: Turno em que foi realizada a operação.
    • [Em branco]: Não aplica o filtro de Turno.
    • Diurno: Indica que a operação foi realizada durante o dia.
    • Noturno: Indica que a operação foi realizada durante a noite.
  • Ordem de Serviço de Campo: Ordem de Serviço de Campo utilizada para realização da operação. (Tamanho do Campo: 12 inteiros).
  • Ano Agrícola: Ano agrícola do apontamento. Campo visível quando configurado que utiliza Ano Agrícola. (Tamanho do campo: 10 inteiros)
  • Período de Produção: Período de Produção do Apontamento. O Período de Produção deve estar previamente cadastrado e pertencer ao Ano Agrícola informado (quando configurado para informa-lo). (Tamanho do campo: 10 inteiros)
  • [Fazenda]: [Fazenda]/Nível 1 dos Locais de Produção. A [Fazenda] deve estar previamente cadastrada e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 6 inteiros)
  • [Setor]: [Setor]/Nível 2 dos Locais de Produção. Campo visível quando configurado que utiliza [Setor] O [Setor] deve estar previamente cadastrado e pertencer à [Fazenda] informada. (Tamanho do campo: 6 inteiros)
  • [Talhão]: [Talhão]/Nível 3 do Local de Produção. O [Talhão] deve estar previamente cadastrado e pertencer à [Fazenda]/[Setor] e Período de Produção informado. (Tamanho do campo: 6 caracteres)
  • Centro de Custo: Centro de Custo para apropriação do custo referente ao apontamento. O Centro de Custo deve estar previamente cadastrado e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 20 caracteres)
  • Operação: Operação realizada. A Operação deve estar previamente cadastrada e pertencer ao Centro de Custo informado (se informado). (Tamanho do campo: 10 inteiros)
  • Equipe: Equipe que realizou a operação. A Equipe deve estar previamente cadastrada e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 10 inteiros)
  • Condição do Tempo: Condição do Tempo quando realizada a Operação. A Condição do Tempo deve estar previamente cadastrada. (Tamanho do campo: 10 caracteres)
  • Condição do Solo: Condição do Solo quando realizada a Operação.
    • [Em branco]: Não aplica o filtro de Condição do Solo.
    • Seco: Indica solo seco quando realizada a operação.
    • Úmido: Indica solo úmido quando realizada a operação.
    • Pouco Úmido: Indica solo pouco úmido quando realizada a operação.
  • Dispositivo Móvel - Número: Número do Dispositivo Móvel quando o apontamento for realizado através de dispositivo móvel. (Tamanho do campo: 5 caracteres).
  • Dispositivo Móvel - Número Apontamento: Número do Apontamento no Dispositivo Móvel quando o apontamento for realizado através de dispositivo móvel. (Tamanho do campo: 5 caracteres).
  • Dispositivo Móvel - Usuário: Usuário que realizou o Apontamento no Dispositivo Móvel quando o apontamento for realizado através de dispositivo móvel. (Tamanho do campo: 60 caracteres).


Filtros Cabeçalho Plantio:

  • Replantio: Indica se a área que está sendo plantada se refere à Plantio ou Replantio.
    • [Em branco]: Não aplica o filtro de Replantio.
    • Sim: Indica que é Replantio.
    • Não: Indica que é Plantio.
  • Tratamento de Semente/Muda: Número do tratamento das sementes. O Tratamento de Sementes deve estar previamente cadastrado. (Tamanho: 8 inteiros)
  • Royalties: Indica se possui ou não Royalties para a semente.
    • [Em branco]: Não aplica o filtro de Royalties.
    • Isento: Indica que a semente é isenta de Roayalties.
    • Sim: Indica que a semente possui Roayalties.
    • Não: Indica que a semente não possui Roayalties.
  • Sistema de Cultivo: Sistema de cultivo utilizado na operação de plantio. O Sistema de Cultivo deve estar previamente cadastrado. (Tamanho do campo 10 inteiros).
  • Sistema de Plantio: Sistema de plantio utilizado. O Sistema de Plantio deve estar previamente cadastrado. (Tamanho do campo 10 inteiros).
  • Espaçamento: Espaçamento utilizado no Plantio. O Espaçamento deve estar previamente cadastrado. (Tamanho do campo 10 inteiros).
  • Variedade: Variedade/Híbrido plantada. A Variedade deve estar previamente cadastrada para a Cultura/Ocupação do Período de Produção (se informado). (Tamanho do campo 10 inteiros).


Filtros Cabeçalho Insumo:

  • Tipo de Aplicação: Tipo/Número da aplicação realizada. O Tipo de Aplicação deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros)
  • Tipo de Bico: Tipo de Bico de Pulverização utilizado. O Tipo de Bico deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros)
  • Sistema de Aplicação: Sistema de Aplicação utilizado. O Sistema de Aplicação deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros)


Filtros Cabeçalho Mecanizada:

  • Operador: Operador do Equipamento. O Operador deve estar previamente cadastrado e disponível para a Unidade Administrativa corrente. (Tamanho do campo: 10 inteiros).
  • Equipamento: Equipamento que realizou a operação agrícola. O Equipamento deve estar previamente cadastrado e disponível para a Unidade de Administrativa corrente (Tamanho do campo: 10 caracteres).


Filtros Detalhe - Mecanizada:

  • Ordem de Serviço de Campo: Ordem de Serviço de Campo utilizada para realização da operação. (Tamanho do Campo: 12 inteiros).
  • Ano Agrícola: Ano agrícola do apontamento. Campo visível quando configurado que utiliza Ano Agrícola. (Tamanho do campo: 10 inteiros)
  • Período de Produção: Período de Produção do Apontamento. O Período de Produção deve estar previamente cadastrado e pertencer ao Ano Agrícola informado (quando configurado para informa-lo). (Tamanho do campo: 10 inteiros)
  • [Fazenda]: [Fazenda]/Nível 1 dos Locais de Produção. A [Fazenda] deve estar previamente cadastrada e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 6 inteiros)
  • [Setor]: [Setor]/Nível 2 dos Locais de Produção. Campo visível quando configurado que utiliza [Setor] O [Setor] deve estar previamente cadastrado e pertencer à [Fazenda] informada. (Tamanho do campo: 6 inteiros)
  • [Talhão]: [Talhão]/Nível 3 do Local de Produção. O [Talhão] deve estar previamente cadastrado e pertencer à [Fazenda]/[Setor] e Período de Produção informado. (Tamanho do campo: 6 caracteres)
  • Centro de Custo: Centro de Custo para apropriação do custo referente ao apontamento. O Centro de Custo deve estar previamente cadastrado e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 20 caracteres)
  • Operação: Operação realizada. A Operação deve estar previamente cadastrada e pertencer ao Centro de Custo informado (se informado). (Tamanho do campo: 10 inteiros)
  • Operação Principal: Operação Principal realizada. A Operação deve estar previamente cadastrada e pertencer ao Centro de Custo informado (se informado). (Tamanho do campo: 10 inteiros)
  • Implemento: Implemento utilizado na realização da operação. O Implemento deve estar previamente cadastrado e pertencer ao Grupo Operativo tipo "2 -  Equipamento Auxiliar" e estar disponível para a Unidade Administrativa. (Tamanho do campo: 10 caracteres).


Filtros Detalhe - Locais:

  • Ano Agrícola: Ano agrícola do apontamento. Campo visível quando configurado que utiliza Ano Agrícola. (Tamanho do campo: 10 inteiros)
  • Período de Produção: Período de Produção do Apontamento. O Período de Produção deve estar previamente cadastrado e pertencer ao Ano Agrícola informado (quando configurado para informa-lo). (Tamanho do campo: 10 inteiros)
  • [Fazenda]: [Fazenda]/Nível 1 dos Locais de Produção. A [Fazenda] deve estar previamente cadastrada e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 6 inteiros)
  • [Setor]: [Setor]/Nível 2 dos Locais de Produção. Campo visível quando configurado que utiliza [Setor] O [Setor] deve estar previamente cadastrado e pertencer à [Fazenda] informada. (Tamanho do campo: 6 inteiros)
  • [Talhão]: [Talhão]/Nível 3 do Local de Produção. O [Talhão] deve estar previamente cadastrado e pertencer à [Fazenda]/[Setor] e Período de Produção informado. (Tamanho do campo: 6 caracteres)
  • Replantio: Indica se a área que está sendo plantada se refere à Plantio ou Replantio.
    • [Em branco]: Não aplica o filtro de Replantio.
    • Sim: Indica que é Replantio.
    • Não: Indica que é Plantio.


Filtros Detalhe - Insumos:

  • Insumo: Insumo aplicado. O Insumo deve estar previamente cadastrado. (Tamanho do campo: 10 inteiros).
  • Número de Lote: Número de Lote do Insumo aplicado. (Tamanho do campo: 15 caracteres)
  • Depósito: Depósito de onde foi retirado o insumo. O Depósito deve estar previamente cadastrado para a Unidade Administrativa corrente. (Tamanho do campo: 10 inteiros).
  • Procedência: Procedência da Semente/Muda utilizada. A Procedência deve estar previamente cadastrada. (Tamanho do campo: 10 inteiros).


Filtros Detalhe - Manual:

  • Ordem de Serviço de Campo: Ordem de Serviço de Campo utilizada para realização da operação. (Tamanho do Campo: 12 inteiros).
  • Ano Agrícola: Ano agrícola do apontamento. Campo visível quando configurado que utiliza Ano Agrícola. (Tamanho do campo: 10 inteiros)
  • Período de Produção: Período de Produção do Apontamento. O Período de Produção deve estar previamente cadastrado e pertencer ao Ano Agrícola informado (quando configurado para informa-lo). (Tamanho do campo: 10 inteiros)
  • [Fazenda]: [Fazenda]/Nível 1 dos Locais de Produção. A [Fazenda] deve estar previamente cadastrada e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 6 inteiros)
  • [Setor]: [Setor]/Nível 2 dos Locais de Produção. Campo visível quando configurado que utiliza [Setor]. O [Setor] deve estar previamente cadastrado e pertencer à [Fazenda] informada. (Tamanho do campo: 6 inteiros)
  • [Talhão]: [Talhão]/Nível 3 do Local de Produção. O [Talhão] deve estar previamente cadastrado e pertencer à [Fazenda]/[Setor] e Período de Produção informado. (Tamanho do campo: 6 caracteres)
  • Centro de Custo: Centro de Custo para apropriação do custo referente ao apontamento. O Centro de Custo deve estar previamente cadastrado e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 20 caracteres)
  • Operação: Operação realizada. A Operação deve estar previamente cadastrada e pertencer ao Centro de Custo informado (se informado). (Tamanho do campo: 10 inteiros)
  • [Funcionário]: Funcionário que realizou a operação. O Funcionário deve estar previamente cadastrado e disponível para a Unidade Administrativa corrente. (Tamanho do campo: 10 inteiros)


Filtros Detalhe - Produção:

  • Ordem de Serviço de Campo: Ordem de Serviço de Campo utilizada para realização da operação. (Tamanho do Campo: 12 inteiros).
  • Ano Agrícola: Ano Agrícola do apontamento. Campo visível quando configurado que utiliza Ano Agrícola. (Tamanho do campo: 10 inteiros)
  • Período de Produção: Período de Produção do Apontamento. O Período de Produção deve estar previamente cadastrado e pertencer ao Ano Agrícola informado (quando configurado para informa-lo). (Tamanho do campo: 10 inteiros)
  • [Fazenda]: [Fazenda]/Nível 1 dos Locais de Produção. A [Fazenda] deve estar previamente cadastrada e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 6 inteiros)
  • [Setor]: [Setor]/Nível 2 dos Locais de Produção. Campo visível quando configurado que utiliza [Setor] O [Setor] deve estar previamente cadastrado e pertencer à [Fazenda] informada. (Tamanho do campo: 6 inteiros)
  • [Talhão]: [Talhão]/Nível 3 do Local de Produção. O [Talhão] deve estar previamente cadastrado e pertencer à [Fazenda]/[Setor] e Período de Produção informado. (Tamanho do campo: 6 caracteres)
  • Centro de Custo: Centro de Custo para apropriação do custo referente ao apontamento. O Centro de Custo deve estar previamente cadastrado e pertencer à Unidade Administrativa corrente. (Tamanho do campo: 20 caracteres)
  • Operação: Operação realizada. A Operação deve estar previamente cadastrada e pertencer ao Centro de Custo informado (se informado). (Tamanho do campo: 10 inteiros)



Especificação técnica:

  • Quando o apontamento agrícola for de Plantio (recuperar o ID_AU_TIPO da tabela AU_APTO, com o identificador recuperar FG_PLANTIO igual a "S"), e o insumo apontamento for de Semente/Muda (com identificador do insumo ID_INSUMO da tabela AU_APTO_INS, com o identificador do insumo verificar o tipo FG_SEMENTE da tabela INSUMO), e informou o tratamento de semente (TRATAMENTO DE SEMENTE/MUDA) , recupera a quantidade da semente tratada "menos" a soma das quantidades apontadas da semente com referência ao tratamento de semente informado. A quantidade informada não pode ser maior que a quantidade "saldo" para o tratamento de semente informado. Considerar o tratamento de sistema do Apontamento Agrícola e do Apontamento de Plantio.

 

  • Legenda dos campos: Ajustar a cor do campo Equipamento que estava associado ao "Mecanizado", passar para o Cabeçalho - Comum.

 

  • Quando o apontamento for do Tipo mecanizado, será permitido informar a operação tanto no header quando no detalhe do mecanizado.
    • Se informar uma operação produtiva no header, permitir informar no detalhe a mesma operação produtiva e será permitido informar outros operações desde que não seja produtiva.
    • Se informar no cabeçalho um operação improdutiva, será permitido informar no detalhe uma ou mais operações produtivas e diferente da informada no cabeçalho e que não seja informada a ordem de serviço.
    • Se alterar a operação no cabeçalho para uma operação produtiva, alterar as operações produtivas do detalhe para a operação informada no cabeçalho.
    • Se alterar a operação no cabeçalho para um operação improdutiva, manter as operações existente no detalhe.
    • Quando a operação esta no detalhe do apontamento, permitir apontar varias operações produtivas, desde que não informe a ordem de serviço.

 

  • Nos Filtros avaliar a utilização de uma funcionalidade para ocultar/visualizar os "Grupos de Filtros", por exemplo, ocultar os filtros relacionados com Local de Produção, Insumos e etc.

 

  • Para Insumos, a quantidade apontada deve ser gravada no campo AU_APTO_INS.QT_CONS_TOTAL. Quando a Unidade de Medida do Insumo para Apontamento for informada e diferente da Unidade de Medida do Insumo deve-se aplicar o fator de conversão de unidade de medida (utilizar método já existente) e gravar a quantidade convertida para a unidade de medida do insumo no campo AU_APTO_INS.QT_CONS_CONV (se a Unidade de Medida do Insumo para Apontamento não foi informada no cadastro de Insumo, não será gravado o valor do campo AU_APTO_INS.QT_CONS_CONV). Se não houver conversor de unidade de medida configurado deverá emitir mensagem e não permitir a gravação.

 

  • Deve ser gerado o rateio de insumos aplicados por local de Produção.

Exemplo, onde o insumo 1 e 2 possuem conversão de 100 unidades:

AU_APTO_INS

 

 

 

 

 

ID_INSUMO

NO_LOTE

ID_DEPOSITO

QT_CONS_TOTAL

QT_CONS_CONV

 

1

123

1

1500

15

 

1

456

1

2000

20

 

2

 

1

1800

18

 

2

 

2

2000

20

 

3

 

1

3500

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AU_APTO_LC

 

 

 

 

 

ID_UPNIVEL3

QT_AREA

 

 

 

 

900

25

 

 

 

 

901

40

 

 

 

 

 

65

 

 

 

 

 

 

 

 

 

 

AU_APTO_INS_LC

 

 

 

 

 

ID_INSUMO

NO_LOTE

ID_DEPOSITO

ID_UPNIVEL3

QT_CONS_TOTAL

QT_CONS_CONV

1

123

1

900

576,9231

5,7692

1

123

1

901

923,0769

9,2308

1

456

1

900

769,2308

7,6923

1

456

1

901

1230,7692

12,3077

2

 

1

900

692,3076923

6,923076923

2

 

1

901

1107,692308

11,07692308

2

 

2

900

769,2308

7,6923

2

 

2

901

1230,7692

12,3077

3

 

1

900

1346,1538

 

3

 

1

901

2153,8462

 



Tabelas:

Descrição

Nome

Situação

Apontamento Agrícola Unificado

AU_APTO

Novo

Apontamento Agrícola - Insumos

AU_APTO_INS

Novo

Apontamento Agrícola - Locais

AU_APTO_LC

Novo

Apontamento Agrícola - Manuais

AU_APTO_MAN

Novo

Apontamento Agrícola - Mecanizada

AU_APTO_MEC

Novo

Apontamento Agrícola - Mecanizada Rateado

AU_APTO_MEC_RAT

Novo

Apontamento Agrícola - Produção

AU_APTO_PROD

Novo


















  • Campos tipados da tabela AU_APTO:

 

Tabela

Campo

Padrão

Visualização

Gravação

AU_APTO

FG_TURNO

 

Diurno

D

 

 

 

Noturno

N

 

 

 

Turno não informado

Null

 

 

 

 

 

 

FG_REPLANTIO

 

Sim

S

 

 

 

Não

N

 

 

 

 

 

 

FG_COND_SOLO

 

Seco

S

 

 

 

Úmido

U

 

 

 

Pouco Úmido

P

 

 

 

 

 

 

FG_ROYALTIES

 

Isento

I

 

 

 

Sim

S

 

 

 

Não

N

 

 

 

 

 

 

FG_STATUS_EAI

 

Criado

0

 

 

 

Aguard.Integração

1

 

 

 

Enviado ao ERP

2

 

 

 

Erro na integração

3

 

 

 

Integração com sucesso

4

 

 

 

Falha na baixa

5

 

 

 

Sucesso na valoração <> SAP

6

 

 

 

Integrado com sucesso "manual"

9

 

 

 

Aguardando estorno

10

 

 

 

Enviado para Estorno

11

 

 

 

Falha no estorno

12

 

 

 

 

 

 

FG_STATUS_ANT

 

Criado

0

 

 

 

Aguard.Integração

1

 

 

 

Enviado ao ERP

2

 

 

 

Erro na integração

3

 

 

 

Integração com sucesso

4

 

 

 

Falha na baixa

5

 

 

 

Sucesso na valoração <> SAP

6

 

 

 

Integrado com sucesso "manual"

9

 

 

 

 

 

 

FG_INTEGRAR

 

Sim

S

 

 

 

Não

N

 

 

 

 

 

 

  • Campos tipados da tabela AU_APTO_LC:

 

Tabela

Campo

Padrão

Visualização

Gravação

AU_APTO_LC

FG_REPLANTIO

 

Sim

S

 

 

 

Não

N

 

 

 

 

 

 

  • Campos tipados da tabela AU_APTO_MEC:

 

Tabela

Campo

Padrão

Visualização

Gravação

AU_APTO_MEC

TP_RAT

 

Local de Produção informado no apontamento de mecanizada

APLC

 

 

 

Ordem de Serviço com Produção

OSCP

 

 

 

Ordem de Serviço sem Produção

OSSP

 

 

 

Apontamento sem Ordem de Serviço com produção

APCP

 

 

 

Apontamento sem Ordem de Serviço sem produção

APCD

 

  • Criação da tabela AU_APTO:


CREATE TABLE AU_APTO
(
ID_AU_APTO NUMBER (38,0) NOT NULL,
ID_AU_TIPO NUMBER (38,0) NOT NULL,
ID_UNIDADEADM NUMBER (38,0) NOT NULL,
NO_BOLETIM NUMBER (38,0) NOT NULL,
DT_OPERACAO DATE NOT NULL,
FG_TURNO VARCHAR2 (1,0),
ID_APORDSERVICO NUMBER (38,0),
ID_SAFRA NUMBER (38,0),
ID_PERIODOSAFRA NUMBER (38,0),
ID_CCUSTO NUMBER (38,0),
ID_OPERACAO NUMBER (38,0),
ID_UPNIVEL1 NUMBER (38,0),
ID_UPNIVEL2 NUMBER (38,0),
ID_UPNIVEL3 NUMBER (38,0),
QT_AREA NUMBER (10,4),
FG_REPLANTIO VARCHAR2 (1,0),
QT_PRODUCAO NUMBER (10,4),
ID_EQUIPE NUMBER (38,0),
ID_CM_CONTEMPO NUMBER (38,0),
QT_TEMP_AR NUMBER (7,2),
QT_UMID_AR NUMBER (7,2),
QT_VEL_VENTO NUMBER (7,2),
QT_DIR_VENTO VARCHAR2 (10,0),
FG_COND_SOLO VARCHAR2 (1,0),
ID_APTRATSEMENT NUMBER (38,0),
NO_PENEIRA NUMBER (2,0),
PE_VIGOR NUMBER (5,2),
PE_GERMINACAO NUMBER (5,2),
QT_DENSIDADE NUMBER (7,2),
NO_LINHAS NUMBER (4,0),
FG_ROYALTIES VARCHAR2(1,0),
ID_SISTCULTIVO NUMBER (38,0),
ID_SISTPLANTIO NUMBER (38,0),
ID_ESPACAMENTO NUMBER (38,0),
ID_VARIEDADE NUMBER(38,0),
ID_TIPOAPLICACAO NUMBER (38,0),
ID_BICOPULVERIZ NUMBER (38,0),
ID_SISTAPLICACAO NUMBER (10,4),
QT_VAZ_PROG NUMBER (10,4),
VL_VOLUME NUMBER (14,4),
QT_PH_CALDA NUMBER (5,2),
ID_FUNCIONAR NUMBER (38,0),
ID_EQUIPTO NUMBER (38,0),
HR_INI_JORN DATE,
HR_FIM_JORN DATE,
QT_TOTAL_JORN NUMBER (7,3),
DE_OBSERVACAO VARCHAR2 (250,0),
NO_COL_MOBILIDADE VARCHAR2 (5,0),
NO_MOBILIDADE NUMBER (38,0),
NO_BOL_MOBILIDADE VARCHAR2 (5,0),
CHANGED_BY_MOBIL VARCHAR2(60,0),
FG_STATUS_EAI VARCHAR2(2,0),
FG_STATUS_ANT VARCHAR2(2,0),
FG_INTEGRAR VARCHAR2 (1,0),
DT_ESTOQUE DATE,
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_APTO_PK PRIMARY KEY (ID_AU_APTO)
);
CREATE UNIQUE INDEX AU_APTO_UN ON AU_APTO (ID_AU_TIPO, ID_UNIDADEADM, NO_BOLETIM);
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_AU_TIPO FOREIGN KEY (ID_AU_TIPO) REFERENCES AU_TIPO;

ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_UNIDADEADM FOREIGN KEY (ID_UNIDADEADM) REFERENCES UNIDADEADM ON DELETE CASCADE ENABLE;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_APORDSERVICO FOREIGN KEY (ID_APORDSERVICO) REFERENCES APORDSERVICO;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_SAFRA FOREIGN KEY (ID_SAFRA) REFERENCES SAFRA;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_PERIODOSAFRA FOREIGN KEY (ID_PERIODOSAFRA) REFERENCES PERIODOSAFRA;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_CCUSTO FOREIGN (ID_CCUSTO) REFERENCES CCUSTO;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_OPERACAO FOREIGN (ID_OPERACAO) REFERENCES OPERACAO;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_UPNIVEL1 FOREIGN (ID_UPNIVEL1) REFERENCES UPNIVEL1;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_UPNIVEL2 FOREIGN (ID_UPNIVEL2) REFERENCES UPNIVEL2;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_UPNIVEL3 FOREIGN (ID_UPNIVEL3) REFERENCES UPNIVEL3;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_EQUIPE FOREIGN (ID_EQUIPE) REFERENCES EQUIPE;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_CM_CONTEMPO FOREIGN (ID_CM_CONTEMPO) REFERENCES CM_CONTEMPO;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_APTRATSEMENT FOREIGN (ID_APTRATSEMENT) REFERENCES APTRATSEMENT;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_SISTCULTIVO FOREIGN (ID_SISTCULTIVO) REFERENCES SISTCULTIVO;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_SISTPLANTIO FOREIGN (ID_SISTPLANTIO) REFERENCES SISTPLANTIO;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_ESPACAMENTO FOREIGN (ID_ESPACAMENTO) REFERENCES ESPACAMENTO;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_VARIEDADE FOREIGN (ID_VARIEDADE) REFERENCES VARIEDADE;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_TIPOAPLICACAO FOREIGN (ID_TIPOAPLICACAO) REFERENCES TIPOAPLICACAO;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_BICOPULVERIZ FOREIGN (ID_BICOPULVERIZ) REFERENCES BICOPULVERIZ;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_SISTAPLICACAO FOREIGN (ID_SISTAPLICACAO) REFERENCES SISTAPLICACAO;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_FUNCIONAR FOREIGN (ID_FUNCIONAR) REFERENCES FUNCIONAR;
ALTER TABLE AU_APTO ADD CONSTRAINT AU_APTO_FK_EQUIPTO FOREIGN (ID_EQUIPTO) REFERENCES EQUIPTO;

  • Criação da tabela AU_APTO_LC:


CREATE TABLE AU_APTO_LC
(
ID_AU_APTO_LC NUMBER (38,0) NOT NULL,
ID_AU_APTO NUMBER (38,0) NOT NULL,
ID_UPNIVEL3 NUMBER (38,0) NOT NULL,
QT_AREA NUMBER (10,4),
FG_REPLANTIO VARCHAR2 (1,0),
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_APTO_LC_PK PRIMARY KEY (ID_AU_APTO_LC)
);
CREATE UNIQUE INDEX AU_APTO_LC_UN ON AU_APTO_LC (ID_AU_APTO, ID_UPNIVEL3);
ALTER TABLE AU_APTO_LC ADD CONSTRAINT AU_APTO_LC_FK_AU_APTO FOREIGN KEY (ID_AU_APTO) REFERENCES AU_APTO ON DELETE CASCADE ENABLE;
ALTER TABLE AU_APTO_LC ADD CONSTRAINT AU_APTO_LC_FK_UPNIVEL3 FOREIGN KEY (ID_UPNIVEL3) REFERENCES UPNIVEL3;

  • Criação da tabela AU_APTO_INS_LC:


CREATE TABLE AU_APTO_INS_LC
(
ID_AU_APTO_INS_LC NUMBER(38) NOT NULL,
ID_AU_APTO NUMBER(38) NOT NULL,
ID_INSUMO NUMBER(38) NOT NULL,
NO_LOTE VARCHAR2(30),
ID_DEPOSITO NUMBER (38),
ID_UPNIVEL3 NUMBER (38) NOT NULL,
QT_CONS_TOTAL NUMBER(10,4) NOT NULL,
QT_CONS_CONV NUMBER (10,4) NOT NULL,
ROWVERSION NUMBER (38),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_APTO_INS_LC_PK PRIMARY KEY(ID_AU_APTO_INS_LC)
);
ALTER TABLE AU_APTO_INS_LC ADD CONSTRAINT AU_APTO_INS_LC_FK_AU_APTO FOREIGN KEY (ID_AU_APTO) REFERENCES AU_APTO ON DELETE CASCADE ENABLE;
ALTER TABLE AU_APTO_INS_LC ADD CONSTRAINT AU_APTO_INS_LC_FK_DEPOSITO FOREIGN KEY (ID_DEPOSITO) REFERENCES DEPOSITO;
ALTER TABLE AU_APTO_INS_LC ADD CONSTRAINT AU_APTO_INS_LC_FK_INSUMO FOREIGN KEY (ID_INSUMO) REFERENCES INSUMO;
ALTER TABLE AU_APTO_INS_LC ADD CONSTRAINT AU_APTO_INS_LC_FK_UPNIVEL3 FOREIGN KEY (ID_UPNIVEL3) REFERENCES UPNIVEL3;
CREATE UNIQUE INDEX AU_APTO_INS_LC_UN ON AU_APTO_INS_LC (ID_AU_APTO, ID_INSUMO, NO_LOTE, ID_DEPOSITO, ID_UPNIVEL3);

  • Criação da tabela AU_APTO_MEC:


CREATE TABLE AU_APTO_MEC
(
ID_AU_APTO_MEC NUMBER (38,0) NOT NULL,
ID_AU_APTO NUMBER (38,0) NOT NULL,
ID_APORDSERVICO NUMBER (38,0),
ID_SAFRA NUMBER (38,0),
ID_PERIODOSAFRA NUMBER (38,0),
ID_CCUSTO NUMBER (38,0) NOT NULL,
ID_OPERACAO NUMBER (38,0) NOT NULL,
ID_OP_PRINCIPAL NUMBER (38,0),
ID_UPNIVEL1 NUMBER (38,0),
ID_UPNIVEL2 NUMBER (38,0),
ID_UPNIVEL3 NUMBER (38,0),
ID_EQUIPTO_IM NUMBER (38,0),
QT_INI_HK NUMBER (14,4),
QT_FIM_HK NUMBER (14,4),
QT_TOTAL_HK NUMBER (14,4),
TP_RAT VARCHAR (4),
QT_PRODUCAO NUMBER (8,2),
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_APTO_MEC_PK PRIMARY KEY (ID_AU_APTO_MEC)
);
ALTER TABLE AU_APTO_MEC ADD CONSTRAINT AU_APTO_MEC_FK_AU_APTO FOREIGN KEY (ID_AU_APTO) REFERENCES AU_APTO ON DELETE CASCADE ENABLE;
ALTER TABLE AU_APTO_MEC ADD CONSTRAINT AU_APTO_MEC_FK_APORDSERVICO FOREIGN KEY (ID_APORDSERVICO) REFERENCES APORDSERVICO;
ALTER TABLE AU_APTO_MEC ADD CONSTRAINT AU_APTO_MEC_FK_SAFRA FOREIGN KEY (ID_SAFRA) REFERENCES SAFRA;
ALTER TABLE AU_APTO_MEC ADD CONSTRAINT AU_APTO_MEC_FK_PERIODOSAFRA FOREIGN KEY (ID_PERIODOSAFRA) REFERENCES PERIODOSAFRA;
ALTER TABLE AU_APTO_MEC ADD CONSTRAINT AU_APTO_MEC_FK_CCUSTO FOREIGN KEY (ID_CCUSTO) REFERENCES CCUSTO;
ALTER TABLE AU_APTO_MEC ADD CONSTRAINT AU_APTO_MEC_FK_OPERACAO FOREIGN KEY (ID_OPERACAO) REFERENCES OPERACAO;
ALTER TABLE AU_APTO_MEC ADD CONSTRAINT AU_APTO_MEC_FK_OPERACAO FOREIGN KEY (ID_OP_PRINCIPAL) REFERENCES OPERACAO;
ALTER TABLE AU_APTO_MEC ADD CONSTRAINT AU_APTO_MEC_FK_UPNIVEL1 FOREIGN KEY (ID_UPNIVEL1) REFERENCES UPNIVEL1;
ALTER TABLE AU_APTO_MEC ADD CONSTRAINT AU_APTO_MEC_FK_UPNIVEL2 FOREIGN KEY (ID_UPNIVEL2) REFERENCES UPNIVEL2;
ALTER TABLE AU_APTO_MEC ADD CONSTRAINT AU_APTO_MEC_FK_UPNIVEL3 FOREIGN KEY (ID_UPNIVEL3) REFERENCES UPNIVEL3;
ALTER TABLE AU_APTO_MEC ADD CONSTRAINT AU_APTO_MEC_FK_EQUIPTO FOREIGN KEY (ID_EQUIPTO_IM) REFERENCES EQUIPTO;

  • Criação da tabela AU_APTO_INS:


CREATE TABLE AU_APTO_INS
(
ID_AU_APTO_INS NUMBER (38,0) NOT NULL,
ID_AU_APTO NUMBER (38,0) NOT NULL,
ID_INSUMO NUMBER (38,0) NOT NULL,
NO_LOTE VARCHAR2(30),
ID_DEPOSITO NUMBER (38,0),
QT_DOSE_PROG NUMBER (10,4),
QT_CONS_TOTAL NUMBER (10,4) NOT NULL,
ID_PROCEDENCIA NUMBER (38,0),
QT_CONS_CONV NUMBER(10,4),
QT_VALOR NUMBER(16,6),
QT_VALOR1 NUMBER(16,6),
QT_VALOR2 NUMBER(16,6),
QT_VALOR3 NUMBER(16,6),
QT_VALOR4 NUMBER(16,6),
NO_REF_ERP VARCHAR2(32),
EAI_MSG VARCHAR2(128),
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_APTO_INS_PK PRIMARY KEY (ID_AU_APTO_INS)
);
CREATE UNIQUE INDEX AU_APTO_INS_UN ON AU_APTO_INS (ID_AU_APTO, ID_INSUMO, NO_LOTE, ID_DEPOSITO);
ALTER TABLE AU_APTO_INS ADD CONSTRAINT AU_APTO_INS_FK_AU_APTO FOREIGN KEY (ID_AU_APTO) REFERENCES AU_APTO ON DELETE CASCADE ENABLE;
ALTER TABLE AU_APTO_INS ADD CONSTRAINT AU_APTO_INS_FK_INSUMO FOREIGN KEY (ID_INSUMO) REFERENCES INSUMO;
ALTER TABLE AU_APTO_INS ADD CONSTRAINT AU_APTO_INS_FK_DEPOSITO FOREIGN KEY (ID_DEPOSITO) REFERENCES DEPOSITO;
ALTER TABLE AU_APTO_INS ADD CONSTRAINT AU_APTO_INS_FK_PROCEDENCIA FOREIGN KEY (ID_PROCEDENCIA) REFERENCES PROCEDENCIA;

  • Criação da tabela AU_APTO_MAN:


CREATE TABLE AU_APTO_MAN
(
ID_AU_APTO_MAN NUMBER (38,0) NOT NULL,
ID_AU_APTO NUMBER (38,0) NOT NULL,
ID_APORDSERVICO NUMBER (38,0) ,
ID_UPNIVEL3 NUMBER (38,0) NOT NULL,
ID_CCUSTO NUMBER (38,0) NOT NULL,
ID_OPERACAO NUMBER (38,0) NOT NULL,
ID_FUNCIONAR NUMBER (38,0) NOT NULL,
HR_INI_JORN DATE NOT NULL,
HR_FIM_JORN DATE NOT NULL,
QT_TOTAL_JORN NUMBER (10,3) NOT NULL,
QT_RECURSO NUMBER (4,0) NOT NULL,
QT_PRODUCAO NUMBER (10,4),
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_APTO_MAN_PK PRIMARY KEY (ID_AU_APTO_MAN)
);
CREATE UNIQUE INDEX AU_APTO_MAN_UN ON AU_APTO_MAN (ID_AU_APTO, ID_CCUSTO, ID_OPERACAO, ID_UPNIVEL3, ID_FUNCIONAR,HR_INI_JORN);
ALTER TABLE AU_APTO_MAN ADD CONSTRAINT AU_APTO_MAN_FK_AU_APTO FOREIGN KEY (ID_AU_APTO) REFERENCES AU_APTO ON DELETE CASCADE ENABLE;
ALTER TABLE AU_APTO_MAN ADD CONSTRAINT AU_APTO_MAN_FK_APORDSERVICO FOREIGN KEY (ID_APORDSERVICO) REFERENCES APORDSERVICO;
ALTER TABLE AU_APTO_MAN ADD CONSTRAINT AU_APTO_MAN_FK_UPNIVEL3 FOREIGN KEY (ID_UPNIVEL3) REFERENCES UPNIVEL3;
ALTER TABLE AU_APTO_MAN ADD CONSTRAINT AU_APTO_MAN_FK_CCUSTO FOREIGN KEY (ID_CCUSTO) REFERENCES CCUSTO;
ALTER TABLE AU_APTO_MAN ADD CONSTRAINT AU_APTO_MAN_FK_OPERACAO FOREIGN KEY (ID_OPERACAO) REFERENCES OPERACAO;
ALTER TABLE AU_APTO_MAN ADD CONSTRAINT AU_APTO_MAN_FK_AU_FUNCIONAR FOREIGN KEY (ID_FUNCIONAR) REFERENCES FUNCIONAR;

  • Criação da tabela AU_APTO_PROD:


CREATE TABLE AU_APTO_PROD
(
ID_AU_APTO_PROD NUMBER (38,0) NOT NULL,
ID_AU_APTO NUMBER (38,0) NOT NULL,
ID_APORDSERVICO NUMBER (38,0) ,
ID_UPNIVEL3 NUMBER (38,0) NOT NULL,
ID_CCUSTO NUMBER (38,0) NOT NULL,
ID_OPERACAO NUMBER (38,0) NOT NULL,
QT_PRODUCAO NUMBER (10,4) NOT NULL,
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_APTO_PROD_PK PRIMARY KEY (ID_AU_APTO_PROD)
);
CREATE UNIQUE INDEX AU_APTO_PROD_UN ON AU_APTO_PROD (ID_AU_APTO, ID_CCUSTO, ID_OPERACAO, ID_UPNIVEL3);
ALTER TABLE AU_APTO_PROD ADD CONSTRAINT AU_APTO_PROD_FK_AU_APTO FOREIGN KEY (ID_AU_APTO) REFERENCES AU_APTO ON DELETE CASCADE ENABLE;
ALTER TABLE AU_APTO_PROD ADD CONSTRAINT AU_APTO_PROD_FK_APORDSERVICO FOREIGN KEY (ID_APORDSERVICO) REFERENCES APORDSERVICO;
ALTER TABLE AU_APTO_PROD ADD CONSTRAINT AU_APTO_PROD_FK_UPNIVEL3 FOREIGN KEY (ID_UPNIVEL3) REFERENCES UPNIVEL3;
ALTER TABLE AU_APTO_PROD ADD CONSTRAINT AU_APTO_PROD_FK_CCUSTO FOREIGN KEY (ID_AU_CCUSTO) REFERENCES CCUSTO;
ALTER TABLE AU_APTO_PROD ADD CONSTRAINT AU_APTO_PROD_FK_OPERACAO FOREIGN KEY (ID_OPERACAO) REFERENCES OPERACAO;

  • Criação da tabela AU_APTO_MEC_RAT:


CREATE TABLE AU_APTO_MEC_RAT
(
ID_AU_APTO_MEC_RAT NUMBER (38,0) NOT NULL,
ID_AU_APTO_MEC NUMBER (38,0) NOT NULL,
ID_UPNIVEL3 NUMBER (38,0) NOT NULL,
QT_TOTAL_HK NUMBER (14,4) NOT NULL,
ROWVERSION NUMBER(38,0),
LAST_UPDATE DATE,
CHANGED_BY VARCHAR2(60),
CONSTRAINT AU_APTO_MEC_RAT_PK PRIMARY KEY (ID_AU_APTO_MEC_RAT)
);
CREATE UNIQUE INDEX AU_APTO_MEC_RAT_UN ON AU_APTO_MEC_RAT (ID_AU_APTO_MEC,ID_UPNIVEL3);
ALTER TABLE AU_APTO_MEC_RAT ADD CONSTRAINT AU_APTO_MEC_RAT_FK_AU_APTO_MEC FOREIGN KEY (ID_AU_APTO_MEC) REFERENCES AU_APTO_MEC ON DELETE CASCADE ENABLE;
ALTER TABLE AU_APTO_MEC_RAT ADD CONSTRAINT AU_APTO_MEC_RAT_FK_UPNIVEL3 FOREIGN KEY (ID_UPNIVEL3) REFERENCES UPNIVEL3,

Alterar a Ordem de Serviço de Campo para que as validações contemplem o Apontamento Agrícola.


Objetivo: Alterar a Ordem de Serviço de Campo para que as validações contemplem o Apontamento Agrícola.
Menu: Apontamentos > Atividades e Recursos > Ordem de Serviço de Campo
Entrada de menu: AERM0001
Esboço da tela:


Locais:


Demais validações:

  • Não é permitido excluir o Local de Produção da Ordem de Serviço que foi utilizado em algum apontamento realizado ou por importar (origens: Plantio, Aplicação de Insumos, Atividades Mecanizadas, Atividades Manuais, Atividade de Produção, Produção de Mão de Obra Rural ou Apontamento Agrícola). Se foi utilizado, emitir mensagem de erro "Não é permitido excluir Locais em Ordens de Serviço que já foram utilizadas em apontamentos!", caso contrário, será permitida a exclusão do Local de Produção da Ordem de Serviço.
  • Não é permitido alterar a área do Local de Produção na Ordem de Serviço para uma área "menor" que a soma da área informada nos apontamentos realizados e por importar (origens: Plantio, Aplicação de Insumos, Apontamentos Agrícolas e Atividade de Produção, sendo que para esta, quando a unidade de medida da Operação for "hectare", de acordo com a unidade de medida configurada em Administração Geral > Configurações Gerais para o Grupo de Configuração: "Unidade de Medida"). Se a área alterada for "menor" que a soma da área apontada, emitir a mensagem de erro "Não é permitido alterar a área do Local de Produção na Ordem de Serviço para uma área "menor" que a soma da área utilizada nos apontamentos!", caso contrário, será permitida a alteração da área do Local de Produção na Ordem de Serviço.



Especificação técnica:

  • Deve ser verificada a existência de Apontamentos Agrícolas que utilizam a Ordem de Serviço de Campo na alteração e deleção do Local da Ordem de Serviço de Campo. Para isso deve ser incluído no método validaApontamentoLocalOS da Classe OrdemServicoCampoLocalDAO validação que contemple a existência de Apontamentos Agrícolas. Verificar o campo ID_APORDSERVICO das tabelas AU_APTO, AU_APTO_MEC, AU_APTO_MAN e AU_APTO_PROD juntamente com o campo [Talhão] ID_UPNIVEL3. Se nos registros das tabelas, não houver a presença do [Talhão], verificar a existência do campo ID_UPNIVEL3 na tabela AU_APTO_LC Caso exista algum registro nas tabelas, não permitir a alteração ou exclusão da Ordem de Serviço de Campo.

 

  • Na alteração de registro da aba Local da Ordem de Serviço de Campo, alterar o método SelectSomaAreaApontamentos da Classe OrdemServicoCampoLocalDAO para considerar as áreas apontadas no Apontamento Agrícola. Para isso efetuar a somatória do campo QT_AREA nos registros da tabela AU_APTO_LC que possua a Ordem de Serviço (ID_APORDSERVICO) e o [Talhão] (ID_UPNIVEL3). Caso a área informada na Ordem de Serviço de Campo for menor que a somatória dos apontamentos, não permitir a alteração, caso contrário, será permitida a alteração da área do Local de Produção na Ordem de Serviço. Utilizar como exemplo o método selectSomaAreaByOrdemServicoAndUPNivel3 da Classe AplicacaoInsumosDAO.

 

  • Não é permitido alterar, incluir ou excluir os Locais de Produção para Ordens de Serviço que foram utilizadas nos Rateios de Atividades Mecanizadas sem Produção e os apontamentos estejam em período que o custo esteja fechado. Para isso alterar o método validaLocalUtilizadoRateioMec da Classe OrdemServicoCampoLocalDAO para também comtemplar os Apontamentos Agrícolas. Buscar na tabela AU_APTO_MEC registro que utiliza o Ordem de Serviço (ID_APORDSERVICO) e que o tipo de Rateio (TP_RAT) for igual a "OSSP". Caso a tabela AU_APTO_MEC não conter informado o campo ID_APORDSERVICO verificar este campo na tabela AU_APTO. Utilizar como exemplo o método selectByOrdemServicoAndTpRat da Classe AtividadeMecanizadaLocalDAO.

 

Alterar o Encerramento/Abertura da Ordem de Serviço de Campo para que as validações contemplem o Apontamento Agrícola


Objetivo: Alterar o Encerramento/Abertura da Ordem de Serviço de Campo para que as validações contemplem o Apontamento Agrícola.
Menu: Apontamentos > Atividades e Recursos > Encerrar/Reabrir Ordem de Serviço
Entrada de menu: AERM0006
Esboço da tela:



Especificação técnica:

  • Alterar método verificaAptoOS da Classe EncerramentoReaberturaOSDAO para verificar a existência de apontamentos agrícolas. Para isso, alterar a sql acrescentando UNION com a tabela AU_APTO verificando o campo ID_APORDSERVICO.
  • Não permitir encerrar a Ordem de Serviço de Campo quando houver Apontamentos Agrícolas do Tipo Plantio e/ou Insumo que não foram finalizados. Para isso, alterar o método verificaEncerramentoApto da classe EncerramentoReaberturaOSDAO. Alterar a sql efetuando UNION com a tabela AU_APTO relacionando com a tabela AU_TIPO onde os campos FG_INSUMO ou FG_PALNTIO igual a 'S'. Incluir a mensagem de Erro concatenando os números dos boletins (campo NO_BOLETIM da tabela AU_APTO). Mensagem: "Não é possível Encerrar Ordem Serviço {0}. Existe Apontamentos não Finalizado ! {1}", }", onde {0} será substituído pelo Número da Ordem de Serviço e {1} será substituído por "Apontamento Agrícola" concatenado com os números dos boletins recuperados na consulta.
  • Considerar os Apontamentos Agrícolas do tipo Plantio e/ou Insumo para considerar a quantidade de insumos utilizados. Para isso, alterar o método selectQuantidadeInsumoUtilizada da classe EncerramentoReaberturaOSDAO, acrescentando UNION ALL com a tabela AU_APTO, efetuando JOIN com a tabela AU_TIPO para os apontamentos do tipo Plantio e/ou Insumo (campos FG_PLANTIO e FG_INSUMO = 'S' da tabela AU_TIPO). Para recuperar a quantidade de insumos consumida, efetuar JOIN com a tabela AU_INSUMO_INS recuperando o campo QT_CONS_TOTAL.

 

Alterar o Encerramento de Plantio para que as validações contemplem o Apontamento Agrícola


Objetivo: Alterar o Encerramento de Plantio para que as validações contemplem o Apontamento Agrícola.
Menu: Apontamentos > Plantio > Encerramento de Plantio
Entrada de menu: PLAM0003
Esboço da tela:


Especificação técnica:

  • Alterar o método selectMaiorAreaPlantadaByFlag da Classe ApontamentoPlantioDAO para contemplar as áreas apontadas no Apontamento Agrícola. Para isso considerar também na função SUM a quantidade de área apontada. Para recuperar a área, deve-se efetuar uma busca na tabela AU_APTO efetuando JOIN na tabela AU_TIPO no qual o campo FG_PLANTIO seja igual a 'S'. O campo QT_AREA pode ser gravado na tabela AU_APTO ou na tabela AU_APTO_LC. Caso o campo não possua valor na tabela AU_APTO recuperar o valor da tabela AU_APTO_LC. Caso não possua valores nas duas tabelas, deve-se considerar o valor 0 (zero). Utilizar a função NVL.

 

  • Alterar o método selectAreaByUpNivel3 da Classe ApontamentoPlantioDAO para contemplar as áreas apontadas no Apontamento Agrícola. Para isso considerar também na função SUM a quantidade de área apontada. Para recuperar a área, deve-se efetuar uma busca na tabela AU_APTO efetuando JOIN na tabela AU_TIPO no qual o campo FG_PLANTIO seja igual a 'S'. O campo QT_AREA pode ser gravado na tabela AU_APTO ou na tabela AU_APTO_LC. Caso o campo não possua valor na tabela AU_APTO recuperar o valor da tabela AU_APTO_LC. Caso não possua valores nas duas tabelas, deve-se considerar o valor 0 (zero). Utilizar a função NVL.

 

Alterar o Cadastro de Origem de Pagamento para contemplar o Apontamento Agrícola


Objetivo: Alterar o Cadastro de Origem de Pagamento para contemplar o Apontamento Agrícola.
Menu: Tabelas > Pagamento de Serviço > Origem de Pagamento
Entrada de menu: PGSM0001
Esboço da tela:


Campos Obrigatórios:

  • Código: neste campo o usuário deve informar o código da origem de pagamento que está sendo cadastrada. (Tamanho máximo: 10 caracteres)
  • Tipo Origem: neste campo o usuário deve escolher o tipo de origem de pagamento ou de desconto que está sendo cadastrado. Tipos de Origem:
    • Abastecimento
    • Atividade Manual
    • Lubrificação
    • Aplicação de Insumos
    • Produção
    • Atividade Mecanizada
    • Oficina Mecânica
    • Plantio
    • Transporte de Matéria Prima
    • Eventuais
    • Apontamento Agrícola
  • Descrição Completa: neste campo o usuário deve informar a descrição completa da origem que está sendo cadastrada.
  • Finalidade da Origem: neste campo o usuário deve informar se a origem que está sendo cadastrada é do tipo de desconto ou de pagamento.


Campos Obrigatórios Condicionais:

  • Tipo de Apontamento: campo obrigatório quando selecionada a opção "Apontamento Agrícola" no Campo Tipo da Origem. O usuário deve selecionar o Tipo de Apontamento. Campo desabilitado quando o Tipo da Origem for diferente de "Apontamento Agrícola"
  • Origem do Apontamento: campo obrigatório quando selecionada a opção "Apontamento Agrícola" no Campo Tipo da Origem. Serão exibidos os campos O usuário deve selecionar entre as opções:
    • Mecanizada
    • Área
    • Manual
    • Produção de Operação



Relatório:



Especificação técnica:
Tabelas:

Descrição

Nome

Situação

Cadastro de Origem de Pagamento

SV_ORIGEM_PAGTO

Existente


  • Efetuar as alterações da tabela SV_ORIGEM_PAGTO na ordem apresentada abaixo:


ALTER TABLE SV_ORIGEM_PAGTO ADD FG_FIN_ORIGEM VARCHAR2(1) DEFAULT 'D';
UPDATE SV_ORIGEM_PAGTO
SET FG_FIN_ORIGEM = (
SELECT ORIGEM.FG_TP_ORIGEM
FROM SV_ORIGEM_PAGTO ORIGEM
WHERE ORIGEM.ID_SV_ORIGEM_PAGTO = SV_ORIGEM_PAGTO.ID_SV_ORIGEM_PAGTO
)
COMMIT;
ALTER TABLE SV_ORIGEM_PAGTO DROP COLUMN FG_TP_ORIGEM;
ALTER TABLE SV_ORIGEM_PAGTO ADD FG_TP_ORIGEM VARCHAR2(1) DEFAULT 'C' NOT NULL;
UPDATE SV_ORIGEM_PAGTO
SET FG_TP_ORIGEM = (
SELECT ORIGEM.CD _ORIGEM
FROM SV_ORIGEM_PAGTO ORIGEM
WHERE ORIGEM.ID_SV_ORIGEM_PAGTO = SV_ORIGEM_PAGTO.ID_SV_ORIGEM_PAGTO
)
COMMIT;
ALTER TABLE SV_ORIGEM_PAGTO MODIFY CD_ORIGEM VARCHAR2(20);
ALTER TABLE SV_ORIGEM_PAGTO ADD FG_ORIGEM_AU_TIPO VARCHAR2(1);
ALTER TABLE SV_ORIGEM_PAGTO ADD ID_AU_TIPO NUMBER(38);
ALTER TABLE SV_ORIGEM_PAGTO ADD CONSTRAINT SV_ORIGEM_PAGTO_FK_AU_TIPO FOREIGN KEY (ID_AU_TIPO ) REFERENCES AU_TIPO (ID_AU_TIPO);
COMMENT ON COLUMN SV_ORIGEM_PAGTO.ID_SV_ORIGEM_PAGTO IS 'Identificador de SV_ORIGEM_PAGTO - uso interno/único';
COMMENT ON COLUMN SV_ORIGEM_PAGTO.DE_ORIGEM IS 'Descrição Completa';
COMMENT ON COLUMN SV_ORIGEM_PAGTO.CD_ORIGEM IS 'Código da Origem do Pagamento';

  • COMMENT ON COLUMN SV_ORIGEM_PAGTO.FG_TP_ORIGEM IS 'Tipo da Origem do Pagamento (C-Abastecimento,L-Lubrificacao,I-Aplicacao de Insumos,P-Producao,M-Atividades Mecanizadas,N-Atividades Manuais,O-Servico de Oficina,R-Servico de Campo, A- Apontamento Agrícola)';

COMMENT ON COLUMN SV_ORIGEM_PAGTO.FG_FIN_ORIGEM IS 'Finalidade da Origem do Pagamento (D-Desconto, P-Pagamento) ';
COMMENT ON COLUMN SV_ORIGEM_PAGTO.FG_ORIGEM_AU_TIPO IS 'Origem do Apontamento Agrícola (M-Mecanizada, A-Área, N-Manual, P-Prod.da Oper)';
COMMENT ON COLUMN SV_ORIGEM_PAGTO.ID_AU_TIPO IS 'Tipo de Apontamento Agrícola';
COMMENT ON COLUMN SV_ORIGEM_PAGTO.ROWVERSION IS 'Controle interno';
COMMENT ON COLUMN SV_ORIGEM_PAGTO.LAST_UPDATE IS 'Última data de atualização';
COMMENT ON COLUMN SV_ORIGEM_PAGTO.CHANGED_BY IS 'Último usuário de atualização';
CREATE INDEX SV_ORIGEM_PAGTO_UN1 ON SV_ORIGEM_PAGTO (FG_TIPO_ORIGEM, ID_AU_TIPO, FG_ORIGEM_AU_TIPO);

  • Atualizar o Manual do Usuário com o descritivo em vermelho.
  • Alterar o campo Código (CD_ORIGEM) para que ele seja editável e com o tamanho máximo de 10 caracteres.
  • Incluir o campo "Tipo da Origem" (Combo Box). Este campo receberá as opções existentes no campo código e deve ser incluída a opção "Apontamento Agrícola":
  • Abastecimento-- C
  • Atividade Manual - N
  • Lubrificação-- L
  • Aplicação de Insumos-- I
  • Produção- O
  • Atividade Mecanizada- M
  • Oficina Mecânica-S
  • Plantio - P
  • Transporte de Matéria Prima - T
  • Eventuais - E
  • Apontamento Agrícola – A
  • Alterar a descrição do campo (Combo Box) "Tipo Origem" para "Finalidade da Origem" mantendo os valores existentes: D- Desconto e P- Pagamento. Deverá ser alterado o descritivo na tela e grid. Observação: para padronização dos campos da tela e do banco de dados, o valor deste campo será salvo na coluna FG_FIN_ORIGEM. Contemplado nas alterações de sql acima. Atenção nas alterações no arquivo javaScript, pois a "Finalidade da Origem" deverá ser salva no campo FG_FIN_ORIGEM da tabela SV_ORIGEM_PAGTO e não mais na coluna FG_TP_ORIGEM.
  • Incluir o campo "Tipo de Apontamento": este campo será obrigatório caso for selecionado no campo "Tipo da Origem" a opção Apontamento Agrícola. Para os valores, deverão ser recuperados os Tipos de Apontamento Agrícola cadastrados (tabela AU_TIPO).
  • Incluir o campo "Origem do Apontamento" (ComboBox): este campo será obrigatório caso for selecionado no campo "Tipo da Origem" a opção Apontamento Agrícola. Este campo será composto, no máximo, pelos valores (M-Mecanizada, A-Área, N-Manual, P-Produção da Operação) da seguinte forma:
    • Caso no Cadastro de Tipo de Apontamento Agrícola o Tipo for Mecanizada será disponibilizado na combo o valor Mecanizada.
    • Caso no Cadastro de Tipo de Apontamento Agrícola o Tipo for Manual será disponibilizado na combo o valor Manual.
    • Caso no Cadastro de Tipo de Apontamento Agrícola o Tipo for Produção será disponibilizado na combo o valor Produção da Operação.
    • Caso no Cadastro de Tipo de Apontamento Agrícola o Tipo for Plantio e/ou Insumo e o campo Área estiver marcado em Cabeçalho de Plantio ou em Detalhes – Local de Produção será disponibilizado na combo o valor Área. Caso o campo Área não estiver marcado no tipo de apontamento selecionado a combo ficará sem valor e a Origem de Pagamento não poderá ser salva.
    • Caso no Cadastro de Tipo de Apontamento Agrícola o Tipo for formado por mais de valor serão disponibilizados na combo os valores conforme descritos acima. Por exemplo: Selecionou-se no campo Tipo de Apontamento o registro "1" e esse registro possui como tipo os valores Mecanizada e Produção. Serão exibidos na combo Origem de Apontamento os valores Mecanizada e Produção da Operação.
  • Alterar o descritivo Tipo Origem para "Finalidade da Origem" no relatório de Origem do Pagamento.

 

Alterar o Processamento de Pagamento de Serviços


Objetivo: Alterar o Processamento de Pagamento de Serviços para considerar o novo campo de Origem do Pagamento de Serviço para as captações ao invés do campo "Código" e contemplar o Apontamento Agrícola no Processamento de Pagamento de Serviço.
Menu: Processamento > Pagamento de Serviço > Processamento do Pagamento dos Serviços
Entrada de menu: PGSP0011
Esboço da tela:


Especificação técnica:

  • Verificar no Processamento de Pagamento de Serviço (classe ProcessamentoPagamentoServicoDAO, método execute). As consultas sql realizadas e alterá-las para considerar o Campo Origem de Pagamento do Cadastro de Origem de Pagamento (FG_TP_ORIGEM da tabela SV_ORIGEM_PAGTO) e não mais o campo Código (CD_ORIGEM).

 

  • No processamento de Pagamento de Serviço, deverá ser acrescido mais cinco passos para a recuperação dos apontamentos agrícolas. Os passos devem ser subdivididos de acordo com os tipos de apontamento:
    • Mecanizada
    • Área
    • Manual
    • Produção

 

  • A Origem de Captação para recuperação dos apontamentos deverá ser considerada como "A" indicando Apontamento Agrícola.

 

  • Mecanizada:
    • Para Apontamentos Agrícolas do tipo Mecanizada, basear-se no método execute da classe Step01CaptaMecanizada. Para recuperar os apontamentos agrícolas utilizar a sql abaixo:


SELECT DISTINCT 'A' AS ORIGEM_CAPTACAO ,
AU_APTO.ID_AU_APTO AS ID_BOLETIM ,
RAT.ID_AU_APTO_MEC_RAT AS ID_DETALHE_APONTAMENTO ,
SV_CONTRATO.DT_INI_VALIDADE AS DT_INI_VALIDADE_CONTRATO,
SV_CONTRATO.DT_FIM_VALIDADE AS DT_FIM_VALIDADE_CONTRATO,
AU_APTO.NO_BOLETIM ,
AU_APTO.DT_OPERACAO ,
AU_APTO.ID_EQUIPTO ,
FILIAL.ID_EMPRESA ,
UPNIVEL3.ID_PERIODOSAFRA ,
UPNIVEL1.ID_UPNIVEL1 ,
UPNIVEL3.ID_UPNIVEL2 ,
RAT.ID_UPNIVEL3 AS ID_UPNIVEL3 ,
AU_APTO.ID_UNIDADEADM ,
AU_APTO_DETALHE.ID_CCUSTO AS ID_CCUSTO ,
AU_APTO_DETALHE.ID_OPERACAO AS ID_OPERACAO ,
AU_APTO_DETALHE.ID_APORDSERVICO ,
PRESTSERV.ID_PRESTSERV ,
SV_CONTRATO.ID_SV_CONTRATO , SV_CONTRATO.NO_CONTRATO,
SV_CONTRATO_DE.ID_SV_CONTRATO_DE ,
SV_OS_CONTRATO.ID_SV_OS_CONTRATO ,
SV_DT_PAGTO.ID_SV_DT_PAGTO ,
SV_ORIGEM_PAGTO.ID_SV_ORIGEM_PAGTO ,
SV_ORIGEM_PAGTO.FG_TP_ORIGEM AS TP_ORIGEM_PAGTO ,
SV_DT_PAGTO_ORIGEM.ID_SV_DT_PAGTO_ORIGEM ,
0 AS QT_AREA_EXECUTADA,
AU_APTO_DETALHE.QT_INI_HK AS QT_INI_HK ,
AU_APTO_DETALHE.QT_FIM_HK AS QT_FIM_HK ,
RAT.QT_TOTAL_HK AS QT_TOTAL_HK ,
SV_CONTRATO_DE.VL_UNIT_CB AS VL_UNIT_CB ,
SV_CONTRATO_DE.VL_UNIT_PG AS VL_UNIT_PG ,
SV_CONTRATO_DE.VL_UNIT_CB * RAT.QT_TOTAL_HK AS VL_TOTAL_CB ,
SV_CONTRATO_DE.VL_UNIT_PG * RAT.QT_TOTAL_HK AS VL_TOTAL_PG
FROM AU_APTO AU_APTO
JOIN AU_TIPO AU_TIPO ON (AU_TIPO.ID_AU_TIPO = AU_APTO.ID_AU_TIPO AND AU_TIPO.FG_MECANIZADO = 'S')
JOIN AU_APTO_MEC AU_APTO_DETALHE ON ( AU_APTO_DETALHE.ID_AU_APTO = AU_APTO.ID_AU_APTO )
LEFT JOIN AU_APTO_MEC_RAT RAT ON (AU_APTO_DETALHE.ID_AU_APTO_MEC = RAT.ID_AU_APTO_MEC)
JOIN EQUIPTO EQUIPTO ON ( EQUIPTO.ID_EQUIPTO = AU_APTO.ID_EQUIPTO )
JOIN EQUIPTODISP EQUIPTODISP ON ( EQUIPTODISP.ID_EQUIPTO = EQUIPTO.ID_EQUIPTO )
JOIN PRESTSERV PRESTSERV ON ( PRESTSERV.ID_PRESTSERV = EQUIPTODISP.ID_PRESTSERV AND EQUIPTODISP.ID_UNIDADEADM = AU_APTO.ID_UNIDADEADM )
LEFT JOIN UPNIVEL3 UPNIVEL3 ON ( RAT.ID_UPNIVEL3 = UPNIVEL3.ID_UPNIVEL3 )
LEFT JOIN UPNIVEL2 UPNIVEL2 ON ( UPNIVEL3.ID_UPNIVEL2 = UPNIVEL2.ID_UPNIVEL2 )
LEFT JOIN UPNIVEL1 UPNIVEL1 ON ( UPNIVEL2.ID_UPNIVEL1 = UPNIVEL1.ID_UPNIVEL1 )
JOIN UNIDADEADM UNIDADEADM ON ( UNIDADEADM.ID_UNIDADEADM = AU_APTO.ID_UNIDADEADM )
JOIN FILIAL FILIAL ON ( UNIDADEADM.ID_FILIAL = FILIAL.ID_FILIAL )
JOIN SV_ORIGEM_PAGTO SV_ORIGEM_PAGTO ON ( SV_ORIGEM_PAGTO.FG_TP_ORIGEM = 'A' AND SV_ORIGEM_PAGTO.ID_AU_TIPO = AU_TIPO.ID_AU_TIPO)
LEFT JOIN SV_CONTRATO SV_CONTRATO ON ( AU_APTO.ID_UNIDADEADM = SV_CONTRATO.ID_UNIDADEADM AND SV_CONTRATO.ID_PRESTSERV = PRESTSERV.ID_PRESTSERV )
LEFT JOIN SV_CONTRATO_DE SV_CONTRATO_DE ON ( ( SV_CONTRATO_DE.ID_OPERACAO = AU_APTO_DETALHE.ID_OPERACAO ) AND SV_CONTRATO.ID_SV_CONTRATO = SV_CONTRATO_DE.ID_SV_CONTRATO AND SV_CONTRATO_DE.ID_SV_ORIGEM_PGTO = SV_ORIGEM_PAGTO.ID_SV_ORIGEM_PAGTO )
JOIN SV_DT_PAGTO SV_DT_PAGTO ON ( SV_DT_PAGTO.ID_UNIDADEADM = AU_APTO.ID_UNIDADEADM AND AU_APTO.DT_OPERACAO BETWEEN SV_DT_PAGTO.DT_INI_FECH AND SV_DT_PAGTO.DT_FIM_FECH )
JOIN SV_DT_PAGTO_ORIGEM SV_DT_PAGTO_ORIGEM ON ( SV_DT_PAGTO_ORIGEM.ID_SV_ORIGEM_PAGTO = SV_CONTRATO_DE.ID_SV_ORIGEM_PGTO AND SV_DT_PAGTO_ORIGEM.ID_SV_DT_PAGTO = SV_DT_PAGTO.ID_SV_DT_PAGTO )
LEFT JOIN APORDSERVICO APORDSERVICO ON ( APORDSERVICO.ID_APORDSERVICO = AU_APTO_DETALHE.ID_APORDSERVICO )
LEFT JOIN SV_OS_CONTRATO SV_OS_CONTRATO ON ( SV_OS_CONTRATO.ID_SV_CONTRATO_DE = SV_CONTRATO_DE.ID_SV_CONTRATO_DE AND SV_OS_CONTRATO.ID_APORDSERVICO = APORDSERVICO.ID_APORDSERVICO )
WHERE AU_APTO.DT_OPERACAO <= SV_DT_PAGTO_ORIGEM.DT_FIM_CAP
AND SV_ORIGEM_PAGTO.FG_ORIGEM_AU_TIPO = 'M'
AND (( SV_CONTRATO_DE.VL_UNIT_CB * AU_APTO_DETALHE.QT_TOTAL_HK ) > 0
OR (SV_CONTRATO_DE.VL_UNIT_PG * AU_APTO_DETALHE.QT_TOTAL_HK ) > 0 )
AND AU_APTO.DT_OPERACAO BETWEEN ? AND ? AND AU_APTO.ID_UNIDADEADM = ?
AND SV_DT_PAGTO.ID_SV_DT_PAGTO = ?
AND SV_CONTRATO.ID_SV_PERIODO = SV_DT_PAGTO.ID_SV_PERIODO
AND EQUIPTODISP.DT_EVENTO =
(SELECT MAX(ED2.DT_EVENTO)
FROM EQUIPTODISP ED2
WHERE ED2.ID_EQUIPTO = AU_APTO.ID_EQUIPTO
AND ED2.DT_EVENTO <= AU_APTO.DT_OPERACAO )

    • Efetuar as gravações de log de Ocorrência de Processamento de Pagamento de Serviços da mesma forma em que são gerados para o Processamento de Atividades mecanizadas. Classe Step01CaptaMecanizada, método execute. Porém, substituindo o tipo de Processo por 'AU' (Apontamento único). Serão gerados os logs de ocorrência: caso o local de produção do apontamento agrícola ainda não tenha sido rateado; caso a data do apontamento não esteja no período de validade do contrato; ou caso possuir mais de um Contrato que atenda aos critérios da Tabela de Preços para a mesma atividade mecanizada.

 

  • Área:
    • Para Apontamentos Agrícolas do tipo Insumo/Plantio, basear-se no método execute da classe Step02CaptaInsumo e Step04CaptaPlantio. Para recuperar os apontamentos agrícolas utilizar a sql abaixo:


SELECT DISTINCT 'A' AS ORIGEM_CAPTACAO ,
AU_APTO.ID_AU_APTO AS ID_BOLETIM ,
AU_APTO_LC.ID_AU_APTO_LC AS ID_DETALHE_APONTAMENTO ,
AU_APTO.NO_BOLETIM ,
AU_APTO_LC.ID_AU_APTO_LC AS ID_AU_APTO_LC ,
SV_CONTRATO.DT_INI_VALIDADE AS DT_INI_VALIDADE_CONTRATO,
SV_CONTRATO.DT_FIM_VALIDADE AS DT_FIM_VALIDADE_CONTRATO,
AU_APTO.DT_OPERACAO ,
AU_APTO.ID_EQUIPTO ,
FILIAL.ID_EMPRESA ,
UPNIVEL3.ID_PERIODOSAFRA ,
UPNIVEL1.ID_UPNIVEL1 ,
UPNIVEL3.ID_UPNIVEL2 ,
AU_APTO_LC.ID_UPNIVEL3 ,
AU_APTO.ID_UNIDADEADM ,
AU_APTO.ID_CCUSTO ,
AU_APTO.ID_OPERACAO ,
AU_APTO.ID_APORDSERVICO ,
PRESTSERV.ID_PRESTSERV ,
SV_CONTRATO.ID_SV_CONTRATO ,
SV_CONTRATO.NO_CONTRATO ,
SV_CONTRATO_DE.ID_SV_CONTRATO_DE ,
SV_OS_CONTRATO.ID_SV_OS_CONTRATO ,
SV_DT_PAGTO.ID_SV_DT_PAGTO ,
SV_ORIGEM_PAGTO.ID_SV_ORIGEM_PAGTO ,
SV_ORIGEM_PAGTO.FG_TP_ORIGEM AS FG_ORIGEM_PAGTO ,
SV_DT_PAGTO_ORIGEM.ID_SV_DT_PAGTO_ORIGEM ,
AU_APTO_LC.QT_AREA AS QT_AREA ,
0 AS QT_INI_HK,
0 AS QT_FIM_HK,
AU_APTO_LC.QT_AREA AS QT_TOTAL_HK ,
SV_CONTRATO_DE.VL_UNIT_CB AS VL_UNIT_CB ,
SV_CONTRATO_DE.VL_UNIT_PG AS VL_UNIT_PG ,
SV_CONTRATO_DE.VL_UNIT_CB * AU_APTO_LC.QT_AREA AS VL_TOTAL_CB ,
SV_CONTRATO_DE.VL_UNIT_PG * AU_APTO_LC.QT_AREA AS VL_TOTAL_PG
FROM AU_APTO AU_APTO
JOIN AU_TIPO AU_TIPO ON (AU_TIPO.ID_AU_TIPO = AU_APTO.ID_AU_TIPO AND (AU_TIPO.FG_PLANTIO = 'S' OR AU_TIPO.FG_INSUMO = 'S' ))
JOIN AU_APTO_LC AU_APTO_LC ON ( AU_APTO_LC.ID_AU_APTO = AU_APTO.ID_AU_APTO )
JOIN EQUIPTO EQUIPTO ON ( EQUIPTO.ID_EQUIPTO = AU_APTO.ID_EQUIPTO )
JOIN EQUIPTODISP EQUIPTODISP ON ( EQUIPTODISP.ID_EQUIPTO = EQUIPTO.ID_EQUIPTO )
JOIN PRESTSERV PRESTSERV ON ( PRESTSERV.ID_PRESTSERV = EQUIPTODISP.ID_PRESTSERV AND EQUIPTODISP.ID_UNIDADEADM = AU_APTO.ID_UNIDADEADM)
LEFT JOIN UPNIVEL3 UPNIVEL3 ON ( AU_APTO_LC.ID_UPNIVEL3 = UPNIVEL3.ID_UPNIVEL3 )
LEFT JOIN UPNIVEL2 UPNIVEL2 ON ( UPNIVEL3.ID_UPNIVEL2 = UPNIVEL2.ID_UPNIVEL2 )
LEFT JOIN UPNIVEL1 UPNIVEL1 ON ( UPNIVEL2.ID_UPNIVEL1 = UPNIVEL1.ID_UPNIVEL1 )
JOIN UNIDADEADM UNIDADEADM ON ( UNIDADEADM.ID_UNIDADEADM = AU_APTO.ID_UNIDADEADM )
JOIN FILIAL FILIAL ON ( UNIDADEADM.ID_FILIAL = FILIAL.ID_FILIAL )
JOIN SV_ORIGEM_PAGTO SV_ORIGEM_PAGTO ON ( SV_ORIGEM_PAGTO.FG_TP_ORIGEM = 'A' AND SV_ORIGEM_PAGTO.ID_AU_TIPO = AU_TIPO.ID_AU_TIPO)
LEFT JOIN SV_CONTRATO SV_CONTRATO ON ( AU_APTO.ID_UNIDADEADM = SV_CONTRATO.ID_UNIDADEADM
AND SV_CONTRATO.ID_PRESTSERV = PRESTSERV.ID_PRESTSERV )
LEFT JOIN SV_CONTRATO_DE SV_CONTRATO_DE ON ( SV_CONTRATO_DE.ID_OPERACAO = AU_APTO.ID_OPERACAO
AND SV_CONTRATO.ID_SV_CONTRATO = SV_CONTRATO_DE.ID_SV_CONTRATO
AND SV_CONTRATO_DE.ID_SV_ORIGEM_PGTO = SV_ORIGEM_PAGTO.ID_SV_ORIGEM_PAGTO )
JOIN SV_DT_PAGTO SV_DT_PAGTO ON ( SV_DT_PAGTO.ID_UNIDADEADM = AU_APTO.ID_UNIDADEADM
AND AU_APTO.DT_OPERACAO BETWEEN SV_DT_PAGTO.DT_INI_FECH AND SV_DT_PAGTO.DT_FIM_FECH )
JOIN SV_DT_PAGTO_ORIGEM SV_DT_PAGTO_ORIGEM ON ( SV_DT_PAGTO_ORIGEM.ID_SV_ORIGEM_PAGTO = SV_CONTRATO_DE.ID_SV_ORIGEM_PGTO
AND SV_DT_PAGTO_ORIGEM.ID_SV_DT_PAGTO = SV_DT_PAGTO.ID_SV_DT_PAGTO )
JOIN SV_PERIODO PERIODO_PAGTO ON (PERIODO_PAGTO.ID_SV_PERIODO = SV_DT_PAGTO.ID_SV_PERIODO
AND PERIODO_PAGTO.ID_SV_PERIODO = SV_CONTRATO.ID_SV_PERIODO)
LEFT JOIN APORDSERVICO APORDSERVICO ON ( APORDSERVICO.ID_APORDSERVICO = AU_APTO.ID_APORDSERVICO )
LEFT JOIN SV_OS_CONTRATO SV_OS_CONTRATO ON ( SV_OS_CONTRATO.ID_SV_CONTRATO_DE = SV_CONTRATO_DE.ID_SV_CONTRATO_DE
AND SV_OS_CONTRATO.ID_APORDSERVICO = APORDSERVICO.ID_APORDSERVICO )
WHERE AU_APTO.DT_OPERACAO <= SV_DT_PAGTO_ORIGEM.DT_FIM_CAP
AND SV_ORIGEM_PAGTO.FG_ORIGEM_AU_TIPO = 'A'
AND ( (SV_CONTRATO_DE.VL_UNIT_CB * AU_APTO_LC.QT_AREA) > 0 OR (SV_CONTRATO_DE.VL_UNIT_PG * AU_APTO_LC.QT_AREA) > 0 )
AND AU_APTO.DT_OPERACAO BETWEEN ? AND ?
AND AU_APTO.ID_UNIDADEADM = ?
AND EQUIPTODISP.DT_EVENTO =
( SELECT MAX(ED2.DT_EVENTO)
FROM EQUIPTODISP ED2
WHERE ED2.ID_EQUIPTO = AU_APTO.ID_EQUIPTO
AND ED2.DT_EVENTO <= AU_APTO.DT_OPERACAO )
AND SV_DT_PAGTO.ID_SV_DT_PAGTO = ?
AND SV_CONTRATO.ID_SV_PERIODO = SV_DT_PAGTO.ID_SV_PERIODO

    • Efetuar as gravações de log de Ocorrência de Processamento de Pagamento de Serviços da mesma forma em que são gerados para o Processamento de Plantio ou Insumo. Classe Step02CaptaInsumo, método execute. Porém, substituindo o tipo de Processo por 'AU' (Apontamento único). Serão gerados os logs de ocorrência: caso a data do apontamento não esteja no período de validade do contrato; ou caso possuir mais de um Contrato que atenda aos critérios da Tabela de Preços para a mesma atividade mecanizada.

 

  • Manual:
    • Para Apontamentos Agrícolas do tipo Manual, basear-se no método execute da classe Step09CaptaManual. Para recuperar os apontamentos agrícolas utilizar a sql abaixo:


SELECT DISTINCT 'A' AS ORIGEM_CAPTACAO,
AU_APTO.ID_AU_APTO ID_BOLETIM,
AU_APTO_MAN.ID_AU_APTO_MAN AS ID_DETALHE_APONTAMENTO ,
AU_APTO.NO_BOLETIM,
AU_APTO.DT_OPERACAO,
SV_CONTRATO.DT_INI_VALIDADE AS DT_INI_VALIDADE_CONTRATO,
SV_CONTRATO.DT_FIM_VALIDADE AS DT_FIM_VALIDADE_CONTRATO,
AU_APTO_MAN.ID_FUNCIONAR,
FILIAL.ID_EMPRESA,
UPNIVEL3.ID_PERIODOSAFRA,
UPNIVEL1.ID_UPNIVEL1,
UPNIVEL3.ID_UPNIVEL2,
AU_APTO_MAN.ID_UPNIVEL3,
AU_APTO.ID_UNIDADEADM,
AU_APTO_MAN.ID_CCUSTO,
AU_APTO_MAN.ID_OPERACAO,
AU_APTO_MAN.ID_APORDSERVICO,
PRESTSERV.ID_PRESTSERV,
SV_CONTRATO.ID_SV_CONTRATO,
SV_CONTRATO.NO_CONTRATO,
SV_CONTRATO_DE.ID_SV_CONTRATO_DE,
SV_OS_CONTRATO.ID_SV_OS_CONTRATO,
SV_DT_PAGTO.ID_SV_DT_PAGTO,
SV_ORIGEM_PAGTO.ID_SV_ORIGEM_PAGTO,
SV_ORIGEM_PAGTO.FG_TP_ORIGEM FG_ORIGEM_PAGTO,
SV_DT_PAGTO_ORIGEM.ID_SV_DT_PAGTO_ORIGEM,
0 QT_AREA_EXECUTADA,
0 QT_INI_HK,
0 QT_FIM_HK,
AU_APTO_MAN.QT_PRODUCAO QT_PRODUCAO,
SV_CONTRATO_DE.VL_UNIT_CB VL_UNIT_CB,
SV_CONTRATO_DE.VL_UNIT_PG VL_UNIT_PG,
(SV_CONTRATO_DE.VL_UNIT_CB * AU_APTO_MAN.QT_PRODUCAO) VL_TOTAL_CB,
(SV_CONTRATO_DE.VL_UNIT_PG * AU_APTO_MAN.QT_PRODUCAO) VL_TOTAL_PG
FROM AU_APTO AU_APTO
JOIN AU_TIPO AU_TIPO ON (AU_TIPO.ID_AU_TIPO = AU_APTO.ID_AU_TIPO AND AU_TIPO.FG_MANUAL = 'S' )
JOIN AU_APTO_MAN AU_APTO_MAN ON (AU_APTO_MAN.ID_AU_APTO = AU_APTO.ID_AU_APTO)
JOIN FUNCIONAR ON (FUNCIONAR.ID_FUNCIONAR = AU_APTO.ID_FUNCIONAR )
JOIN FUNCIONARDISP ON ( FUNCIONARDISP.ID_FUNCIONAR = FUNCIONAR.ID_FUNCIONAR )
JOIN PRESTSERV PRESTSERV ON
( PRESTSERV.ID_PRESTSERV = FUNCIONARDISP.ID_PRESTSERV AND
FUNCIONARDISP.ID_UNIDADEADM = AU_APTO.ID_UNIDADEADM )
LEFT JOIN UPNIVEL3 UPNIVEL3 ON ( AU_APTO.ID_UPNIVEL3 = UPNIVEL3.ID_UPNIVEL3 )
LEFT JOIN UPNIVEL2 UPNIVEL2 ON ( UPNIVEL3.ID_UPNIVEL2 = UPNIVEL2.ID_UPNIVEL2 )
LEFT JOIN UPNIVEL1 UPNIVEL1 ON ( UPNIVEL2.ID_UPNIVEL1 = UPNIVEL1.ID_UPNIVEL1 )
LEFT JOIN UNIDADEADM UNIDADEADM ON ( UNIDADEADM.ID_UNIDADEADM = AU_APTO.ID_UNIDADEADM )
JOIN FILIAL FILIAL ON ( UNIDADEADM.ID_FILIAL = FILIAL.ID_FILIAL )
JOIN SV_ORIGEM_PAGTO SV_ORIGEM_PAGTO ON ( SV_ORIGEM_PAGTO.FG_TP_ORIGEM = 'A' AND SV_ORIGEM_PAGTO.ID_AU_TIPO = AU_TIPO.ID_AU_TIPO)
LEFT JOIN SV_CONTRATO SV_CONTRATO ON
( AU_APTO.ID_UNIDADEADM = SV_CONTRATO.ID_UNIDADEADM AND
SV_CONTRATO.ID_PRESTSERV = PRESTSERV.ID_PRESTSERV )
LEFT JOIN SV_CONTRATO_DE SV_CONTRATO_DE ON
( ( SV_CONTRATO_DE.ID_OPERACAO = AU_APTO.ID_OPERACAO) AND
SV_CONTRATO.ID_SV_CONTRATO = SV_CONTRATO_DE.ID_SV_CONTRATO AND
SV_CONTRATO_DE.ID_SV_ORIGEM_PGTO = SV_ORIGEM_PAGTO.ID_SV_ORIGEM_PAGTO )
JOIN SV_DT_PAGTO SV_DT_PAGTO ON
( SV_DT_PAGTO.ID_UNIDADEADM = AU_APTO.ID_UNIDADEADM AND
AU_APTO.DT_OPERACAO BETWEEN SV_DT_PAGTO.DT_INI_FECH AND SV_DT_PAGTO.DT_FIM_FECH)
LEFT JOIN SV_DT_PAGTO_ORIGEM SV_DT_PAGTO_ORIGEM ON
( SV_DT_PAGTO_ORIGEM.ID_SV_ORIGEM_PAGTO = SV_CONTRATO_DE.ID_SV_ORIGEM_PGTO AND
SV_DT_PAGTO_ORIGEM.ID_SV_DT_PAGTO = SV_DT_PAGTO.ID_SV_DT_PAGTO )
LEFT JOIN APORDSERVICO APORDSERVICO ON ( APORDSERVICO.ID_APORDSERVICO = AU_APTO_MAN.ID_APORDSERVICO )
LEFT JOIN SV_OS_CONTRATO SV_OS_CONTRATO ON
( SV_OS_CONTRATO.ID_SV_CONTRATO_DE = SV_CONTRATO_DE.ID_SV_CONTRATO_DE AND
SV_OS_CONTRATO.ID_APORDSERVICO = APORDSERVICO.ID_APORDSERVICO)
WHERE
AU_APTO.DT_OPERACAO <= SV_DT_PAGTO_ORIGEM.DT_FIM_CAP AND
( (SV_CONTRATO_DE.VL_UNIT_CB * AU_APTO_MAN.QT_PRODUCAO ) > 0 OR
(SV_CONTRATO_DE.VL_UNIT_PG * AU_APTO_MAN.QT_PRODUCAO ) > 0 ) AND
AU_APTO.DT_OPERACAO BETWEEN ? AND ? AND
AU_APTO.ID_UNIDADEADM = ?
AND SV_ORIGEM_PAGTO.FG_ORIGEM_AU_TIPO = 'N'
AND FUNCIONARDISP.DT_EVENTO =
( SELECT MAX(ED2.DT_EVENTO)
FROM FUNCIONARDISP ED2
WHERE ED2.ID_FUNCIONAR = AU_APTO_MAN.ID_FUNCIONAR AND
ED2.DT_EVENTO <= AU_APTO.DT_OPERACAO )
AND SV_DT_PAGTO.ID_SV_DT_PAGTO = ?
AND SV_CONTRATO.ID_SV_PERIODO = SV_DT_PAGTO.ID_SV_PERIODO

    • Efetuar as gravações de log de Ocorrência de Processamento de Pagamento de Serviços da mesma forma em que são gerados para o Processamento de Atividades Manuais. Classe Step09CaptaManual, método execute. Porém, substituindo o tipo de Processo por 'AU' (Apontamento único). Serão gerados os logs de ocorrência: caso a data do apontamento não esteja no período de validade do contrato; ou caso possuir mais de um Contrato que atenda aos critérios da Tabela de Preços para a mesma atividade mecanizada.

 

  • Produção:
    • Para Apontamentos Agrícolas do tipo Produção, basear-se no método execute da classe Step03CaptaProducao. Para recuperar os apontamentos agrícolas utilizar a sql abaixo:


SELECT DISTINCT 'A' AS ORIGEM_CAPTACAO,
AU_APTO.ID_AU_APTO AS ID_BOLETIM,
AU_APTO_PROD.ID_ AU_APTO_PROD AS ID_DETALHE_APONTAMENTO ,
AU_APTO.NO_BOLETIM ,
AU_APTO.DT_OPERACAO,
AU_APTO.ID_EQUIPTO,
SV_CONTRATO.DT_INI_VALIDADE AS DT_INI_VALIDADE_CONTRATO,
SV_CONTRATO.DT_FIM_VALIDADE AS DT_FIM_VALIDADE_CONTRATO,
FILIAL.ID_EMPRESA,
UPNIVEL3.ID_PERIODOSAFRA,
UPNIVEL1.ID_UPNIVEL1,
UPNIVEL3.ID_UPNIVEL2,
AU_APTO_PROD.ID_UPNIVEL3,
AU_APTO.ID_UNIDADEADM,
AU_APTO_PROD.ID_CCUSTO,
AU_APTO_PROD.ID_OPERACAO,
AU_APTO_PROD.ID_APORDSERVICO,
PRESTSERV.ID_PRESTSERV,
SV_CONTRATO.ID_SV_CONTRATO,
SV_CONTRATO.NO_CONTRATO,
SV_CONTRATO_DE.ID_SV_CONTRATO_DE,
SV_OS_CONTRATO.ID_SV_OS_CONTRATO,
SV_DT_PAGTO.ID_SV_DT_PAGTO,
SV_ORIGEM_PAGTO.ID_SV_ORIGEM_PAGTO,
SV_ORIGEM_PAGTO.FG_TP_ORIGEM AS TP_ORIGEM_PAGTO,
SV_DT_PAGTO_ORIGEM.ID_SV_DT_PAGTO_ORIGEM,
AU_APTO_PROD.QT_PRODUCAO AS QT_AREA_EXECUTADA,
0 AS QT_INI_HK,
0 AS QT_FIM_HK,
AU_APTO.QT_PRODUCAO AS QT_TOTAL_HK,
SV_CONTRATO_DE.VL_UNIT_CB AS VL_UNIT_CB,
SV_CONTRATO_DE.VL_UNIT_PG AS VL_UNIT_PG,
SV_CONTRATO_DE.VL_UNIT_CB * AU_APTO.QT_AREA_EXEC AS VL_TOTAL_CB,
SV_CONTRATO_DE.VL_UNIT_PG * AU_APTO.QT_AREA_EXEC AS VL_TOTAL_PG
FROM AU_APTO AU_APTO
JOIN AU_TIPO AU_TIPO ON (AU_APTO.ID_AU_TIPO = AU_TIPO.ID_AU_TIPO AND AU_TIPO.FG_PROCUCAO = 'S')
JOIN AU_APTO_PROD AU_APTO_PROD ON (AU_APTO.ID_AU_APTO = AU_APTO_PROD.ID_AU_APTO)
LEFT JOIN EQUIPTO EQUIPTO ON ( EQUIPTO.ID_EQUIPTO = AU_APTO.ID_EQUIPTO )
LEFT JOIN EQUIPTODISP EQUIPTODISP ON ( EQUIPTODISP.ID_EQUIPTO = EQUIPTO.ID_EQUIPTO AND AU_APTO.ID_UNIDADEADM = EQUIPTODISP.ID_UNIDADEADM)LEFT JOIN PRESTSERV PRESTSERV ON ( PRESTSERV.ID_PRESTSERV = EQUIPTODISP.ID_PRESTSERV )
LEFT JOIN UPNIVEL3 UPNIVEL3 ON ( AU_APTO_PROD.ID_UPNIVEL3 = UPNIVEL3.ID_UPNIVEL3 )
LEFT JOIN UPNIVEL2 UPNIVEL2 ON ( UPNIVEL3.ID_UPNIVEL2 = UPNIVEL2.ID_UPNIVEL2 )
LEFT JOIN UPNIVEL1 UPNIVEL1 ON ( UPNIVEL2.ID_UPNIVEL1 = UPNIVEL1.ID_UPNIVEL1 )
LEFT JOIN UNIDADEADM UNIDADEADM ON ( UNIDADEADM.ID_UNIDADEADM = AU_APTO.ID_UNIDADEADM )
LEFT JOIN FILIAL FILIAL ON ( UNIDADEADM.ID_FILIAL = FILIAL.ID_FILIAL )
LEFT JOIN SV_ORIGEM_PAGTO SV_ORIGEM_PAGTO ON ( SV_ORIGEM_PAGTO.FG_TP_ORIGEM = 'A' AND SV_ORIGEM_PAGTO.ID_AU_TIPO = AU_TIPO.ID_AU_TIPO )
LEFT JOIN SV_CONTRATO SV_CONTRATO ON ( AU_APTO.ID_UNIDADEADM = SV_CONTRATO.ID_UNIDADEADM AND SV_CONTRATO.ID_PRESTSERV = PRESTSERV.ID_PRESTSERV )
LEFT JOIN SV_CONTRATO_DE SV_CONTRATO_DE ON ( SV_CONTRATO_DE.ID_OPERACAO = AU_APTO_PROD.ID_OPERACAO
AND SV_CONTRATO.ID_SV_CONTRATO = SV_CONTRATO_DE.ID_SV_CONTRATO
AND SV_CONTRATO_DE.ID_SV_ORIGEM_PGTO = SV_ORIGEM_PAGTO.ID_SV_ORIGEM_PAGTO )
LEFT JOIN SV_DT_PAGTO SV_DT_PAGTO ON ( SV_DT_PAGTO.ID_UNIDADEADM = AU_APTO.ID_UNIDADEADM
AND AU_APTO.DT_OPERACAO BETWEEN SV_DT_PAGTO.DT_INI_FECH AND SV_DT_PAGTO.DT_FIM_FECH )
LEFT JOIN SV_DT_PAGTO_ORIGEM SV_DT_PAGTO_ORIGEM ON ( SV_DT_PAGTO_ORIGEM.ID_SV_ORIGEM_PAGTO = SV_CONTRATO_DE.ID_SV_ORIGEM_PGTO
AND SV_DT_PAGTO_ORIGEM.ID_SV_DT_PAGTO = SV_DT_PAGTO.ID_SV_DT_PAGTO )
LEFT JOIN APORDSERVICO APORDSERVICO ON ( APORDSERVICO.ID_APORDSERVICO = AU_APTO_PROD.ID_APORDSERVICO )
LEFT JOIN SV_OS_CONTRATO SV_OS_CONTRATO ON ( SV_OS_CONTRATO.ID_SV_CONTRATO_DE = SV_CONTRATO_DE.ID_SV_CONTRATO_DE
AND SV_OS_CONTRATO.ID_APORDSERVICO = APORDSERVICO.ID_APORDSERVICO )
WHERE AU_APTO.DT_OPERACAO <= SV_DT_PAGTO_ORIGEM.DT_FIM_CAP
AND SV_ORIGEM_PAGTO.FG_ORIGEM_AU_TIPO = 'P'
AND ( (SV_CONTRATO_DE.VL_UNIT_CB * AU_APTO.QT_AREA_EXEC) > 0 OR (SV_CONTRATO_DE.VL_UNIT_PG * AU_APTO.QT_AREA_EXEC) > 0 )
AND AU_APTO.DT_OPERACAO BETWEEN ? AND ?
AND AU_APTO.ID_UNIDADEADM = ?
AND EQUIPTODISP.DT_EVENTO =
( SELECT MAX(ED2.DT_EVENTO)
FROM EQUIPTODISP ED2
WHERE ED2.ID_EQUIPTO = AU_APTO.ID_EQUIPTO
AND ED2.DT_EVENTO <= AU_APTO.DT_OPERACAO )
AND SV_DT_PAGTO.ID_SV_DT_PAGTO = ?
AND SV_CONTRATO.ID_SV_PERIODO = SV_DT_PAGTO.ID_SV_PERIODO

    • Efetuar as gravações de log de Ocorrência de Processamento de Pagamento de Serviços da mesma forma em que são gerados para o Processamento de Produção. Classe Step03CaptaProducao, método execute. Porém, substituindo o tipo de Processo por 'AU' (Apontamento único). Serão gerados os logs de ocorrência: caso a data do apontamento não esteja no período de validade do contrato; ou caso possuir mais de um Contrato que atenda aos critérios da Tabela de Preços para a mesma atividade mecanizada.

 

Alteração na Captação de Entrada de Custos para realizar a captação do Apontamento Agrícola.


Objetivo: Alteração na Captação de Entrada de Custos para realizar a captação do Apontamento Agrícola.
Menu: Processamentos > Processamento Custos > Captação de Entrada de Custos
Entrada de menu: CSTP0015
Esboço da tela:


Especificação técnica:

  • Alterar os métodos de Captação de Entrada de Custos contemplando os Apontamentos Agrícolas.

 

  • Captação de Atividades Mecanizadas:


Alterar o método verKmHrInicialIguaKmHrFinal da classe FEntrAtivMec para contemplar os Apontamentos Agrícolas, alterando as sqls utilizadas para as sqls abaixo:
Sql1:
SELECT
ID_APATIVMEC,
NO_BOLETIM,
DT_OPERACAO,
ID_UNIDADEADM
FROM(
SELECT DISTINCT AP.ID_APATIVMEC ID_APATIVMEC,
AP.NO_BOLETIM NO_BOLETIM,
AP.DT_OPERACAO DT_OPERACAO,
AP.ID_UNIDADEADM ID_UNIDADEADM
FROM APATIVMEC AP
JOIN APATIVMEC_LC LC ON (AP.ID_APATIVMEC = LC.ID_APATIVMEC)
WHERE AP.ID_UNIDADEADM = ?
AND AP.DT_OPERACAO BETWEEN ? AND ?
AND LC.QT_INI_HK = LC.QT_FIM_HK
UNION ALL
SELECT DISTINCT AP.ID_AU_APTO ID_APATIVMEC,
AP.NO_BOLETIM NO_BOLETIM,
AP.DT_OPERACAO DT_OPERACAO,
AP.ID_UNIDADEADM ID_UNIDADEADM
FROM AU_APTO AP
JOIN AU_APTO_MEC MEC ON (AP.ID_AU_APTO = MEC.ID_AU_APTO)
WHERE AP.ID_UNIDADEADM = ?
AND AP.DT_OPERACAO BETWEEN ? AND ?
AND MEC.QT_INI_HK = MEC.QT_FIM_HK
)
Sql2:
SELECT ID_APATIVMEC,
NO_BOLETIM,
DT_OPERACAO,
ID_UNIDADEADM
FROM(
SELECT DISTINCT AP.ID_APATIVMEC,
AP.NO_BOLETIM,
AP.DT_OPERACAO,
AP.ID_UNIDADEADM
FROM APATIVMEC AP
WHERE AP.ID_UNIDADEADM = ?
AND AP.DT_OPERACAO BETWEEN ? AND ?
AND AP.HR_INI_JORN = AP.HR_FIM_JORN
UNION ALL
SELECT DISTINCT AP.ID_AU_APTO,
AP.NO_BOLETIM,
AP.DT_OPERACAO,
AP.ID_UNIDADEADM
FROM AU_APTO AP
WHERE AP.ID_UNIDADEADM = ?
AND AP.DT_OPERACAO BETWEEN ? AND ?
AND AP.HR_INI_JORN = AP.HR_FIM_JORN
)
Otimizar o método verKmHrInicialIguaKmHrFinal criando um novo método que faça a geração de logs conforme é efetuado dentro dos "while" do resultSet. Observe que a única distinção que ocorre em suas duas utilizações refere-se ao termo utilizado. Dessa forma, quando criado o novo método, passar o termo utilizado como parâmetro. O novo método criado deverá ser chamado nos "while" utilizados.
Alterar o método execute da classe FEntrAtivMec. Neste método são executados dois selects. O primeiro, considerando o ID_EQUIPTO do Apontamento (Equipamento), enquanto o segundo sql considera o ID_EQUIPTO_IM (Implemeto). Deve-se efetuar a otimização do código, para que essas distinções sejam tratadas, melhorando assim a compreensão do código e facilitando futuras manutenções. Deverá ser otimizado também o conteúdo do laço do resultSet. Esse conteúdo é utilizado em dois momentos e são idênticos. A sugestão é criar um novo método que efetue o conteúdo do laço assim como é realizado hoje. E que esse método seja chamado em dois momentos para cada uma das execuções.
Na criação do método que montará o sql, deverá ser passado como parâmetro o atributo campoApontamento.
Na primeira chamada do método passar o valor: campoApontamento= AP.ID_EQUIPTO
Na segunda chamada do método passar o valor: campoApontamento = LC.ID_EQUIPTO_IM
De acordo com essas alterações o sql utilizado será como segue abaixo. Note que o parâmetro passado pelo método está destacado em vermelho.
SELECT
ID_UNIDADEADM,
DT_OPERACAO,
ID_CCUSTO,
ID_OPERACAO,
ID_SAFRA,
ID_PERIODOSAFRA,
ID_UPNIVEL3,
ID_EQUIPTO,
ID_UNIMEDIDA,
ID_COMPONENTE,
FG_TP_COMPONENTE,
ID_UNIMEDIDA_CO,
SUM(QT_TOTAL) AS QT_TOTAL
FROM (
SELECT
AP.ID_UNIDADEADM ID_UNIDADEADM,
AP.DT_OPERACAO DT_OPERACAO,
LC.ID_CCUSTO ID_CCUSTO,
LC.ID_OPERACAO ID_OPERACAO,
PS.ID_SAFRA ID_SAFRA,
U3.ID_PERIODOSAFRA ID_PERIODOSAFRA,
RAT.ID_UPNIVEL3 ID_UPNIVEL3,
campoApontamento ID_EQUIPTO,
GO.ID_UNIMEDIDA ID_UNIMEDIDA,
CO.ID_COMPONENTE ID_COMPONENTE,
CO.FG_TP_COMPONENTE FG_TP_COMPONENTE,
CO.ID_UNIMEDIDA ID_UNIMEDIDA_CO,
SUM( RAT.QT_TOTAL_HK ) AS QT_TOTAL
FROM APATIVMEC AP
JOIN APATIVMEC_LC LC ON (AP.ID_APATIVMEC = LC.ID_APATIVMEC)
JOIN APATIVMEC_LC_RAT RAT ON (RAT.ID_APATIVMEC_LC = LC.ID_APATIVMEC_LC)
JOIN OPERACAO OP ON (LC.ID_OPERACAO = OP.ID_OPERACAO)
JOIN UPNIVEL3 U3 ON (RAT.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA)
JOIN EQUIPTO EQ ON (campoApontamento =EQ.ID_EQUIPTO)
JOIN MODELO MO ON (EQ.ID_MODELO =MO.ID_MODELO)
JOIN GRPOPERATIVO GO ON (MO.ID_GRPOPERATIVO=GO.ID_GRPOPERATIVO)
JOIN EQUIPTODISP EQDI ON (EQ.ID_EQUIPTO =EQDI.ID_EQUIPTO)
LEFT JOIN COMPONENTE CO ON (EQDI.ID_CCUSTO =CO.ID_CCUSTO)
WHERE
AP.ID_UNIDADEADM = ? AND
( AP.DT_OPERACAO BETWEEN ? AND ? ) AND
( OP.FG_TP_CLASSE ='1' OR OP.FG_TP_CLASSE='2' ) AND
EQDI.DT_EVENTO =
( SELECT MAX(EQDI2.DT_EVENTO)
FROM EQUIPTODISP EQDI2
WHERE EQDI2.ID_EQUIPTO = EQ.ID_EQUIPTO
AND EQDI2.DT_EVENTO <= AP.DT_OPERACAO )
GROUP BY
AP.ID_UNIDADEADM,
AP.DT_OPERACAO,
LC.ID_CCUSTO,
LC.ID_OPERACAO ,
PS.ID_SAFRA, U3.ID_PERIODOSAFRA,
RAT.ID_UPNIVEL3 ,
campoApontamento,
GO.ID_UNIMEDIDA,
CO.ID_COMPONENTE,
CO.FG_TP_COMPONENTE,
CO.ID_UNIMEDIDA
UNION ALL
SELECT
AP.ID_UNIDADEADM ID_UNIDADEADM,
AP.DT_OPERACAO DT_OPERACAO,
MEC.ID_CCUSTO ID_CCUSTO,
MEC.ID_OPERACAO ID_OPERACAO,
PS.ID_SAFRA ID_SAFRA,
U3.ID_PERIODOSAFRA ID_PERIODOSAFRA,
RAT.ID_UPNIVEL3 ID_UPNIVEL3,
campoApontamento ID_EQUIPTO,
GO.ID_UNIMEDIDA ID_UNIMEDIDA,
CO.ID_COMPONENTE ID_COMPONENTE,
CO.FG_TP_COMPONENTE FG_TP_COMPONENTE,
CO.ID_UNIMEDIDA ID_UNIMEDIDA_CO,
SUM( RAT.QT_TOTAL_HK ) AS QT_TOTAL
FROM AU_APTO AP
JOIN AU_APTO_MEC MEC ON (AP.ID_AU_APTO = MEC.ID_AU_APTO)
JOIN AU_APTO_MEC_RAT RAT ON (RAT.ID_AU_APTO_MEC = MEC.ID_AU_APTO_MEC)
JOIN OPERACAO OP ON (MEC.ID_OPERACAO = OP.ID_OPERACAO)
JOIN UPNIVEL3 U3 ON (RAT.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN EQUIPTO EQ ON (campoApontamento = EQ.ID_EQUIPTO)
JOIN MODELO MO ON (EQ.ID_MODELO = MO.ID_MODELO)
JOIN GRPOPERATIVO GO ON (MO.ID_GRPOPERATIVO = GO.ID_GRPOPERATIVO)
JOIN EQUIPTODISP EQDI ON (EQ.ID_EQUIPTO = EQDI.ID_EQUIPTO)
LEFT JOIN COMPONENTE CO ON (EQDI.ID_CCUSTO = CO.ID_CCUSTO)
WHERE
AP.ID_UNIDADEADM = ? AND
( AP.DT_OPERACAO BETWEEN ? AND ? ) AND
( OP.FG_TP_CLASSE ='1' OR OP.FG_TP_CLASSE='2' ) AND
EQDI.DT_EVENTO =
( SELECT MAX(EQDI2.DT_EVENTO)
FROM EQUIPTODISP EQDI2
WHERE EQDI2.ID_EQUIPTO = EQ.ID_EQUIPTO
AND EQDI2.DT_EVENTO <= AP.DT_OPERACAO )
GROUP BY
AP.ID_UNIDADEADM,
AP.DT_OPERACAO,
MEC.ID_CCUSTO,
MEC.ID_OPERACAO ,
PS.ID_SAFRA, U3.ID_PERIODOSAFRA,
RAT.ID_UPNIVEL3 ,
campoApontamento,
GO.ID_UNIMEDIDA,
CO.ID_COMPONENTE,
CO.FG_TP_COMPONENTE,
CO.ID_UNIMEDIDA
)
GROUP BY
ID_UNIDADEADM,
DT_OPERACAO,
ID_CCUSTO,
ID_OPERACAO,
ID_SAFRA,
ID_PERIODOSAFRA,
ID_UPNIVEL3 ,
ID_EQUIPTO,
ID_UNIMEDIDA,
ID_COMPONENTE,
FG_TP_COMPONENTE,
ID_UNIMEDIDA_CO
ORDER BY 1, 2, 3, 4, 5, 6, 7, 8, 9

  • Captação das Atividades Manuais.


Alterar o sql utilizado na classe FEntrAtivMan, método execute, pelo sql abaixo que passará a considerar também os Apontamentos Agrícolas.
SELECT
ID_UNIDADEADM,
DT_OPERACAO,
ID_CCUSTO,
ID_OPERACAO,
ID_SAFRA,
ID_PERIODOSAFRA,
ID_UPNIVEL3,
ID_FUNCIONAR,
ID_COMPONENTE,
FG_TP_COMPONENTE,
ID_UNIMEDIDA_CO,
ID_CONTACUSTO,
SUM(QT_TOTAL) QT_TOTAL
FROM
(
SELECT
AP.ID_UNIDADEADM ID_UNIDADEADM,
AP.DT_OPERACAO DT_OPERACAO,
AP.ID_CCUSTO ID_CCUSTO,
AP.ID_OPERACAO ID_OPERACAO,
PS.ID_SAFRA ID_SAFRA,
U3.ID_PERIODOSAFRA ID_PERIODOSAFRA,
AP.ID_UPNIVEL3 ID_UPNIVEL3,
AP.ID_FUNCIONAR ID_FUNCIONAR,
CO.ID_COMPONENTE ID_COMPONENTE,
CO.FG_TP_COMPONENTE FG_TP_COMPONENTE,
CO.ID_UNIMEDIDA ID_UNIMEDIDA_CO,
CO.ID_CONTACUSTO ID_CONTACUSTO,
SUM(AP.QT_TOTAL_JORN) QT_TOTAL
FROM APATIVMAN AP
JOIN FUNCIONAR FU ON AP.ID_FUNCIONAR =FU.ID_FUNCIONAR
JOIN OPERACAO OP ON AP.ID_OPERACAO =OP.ID_OPERACAO
JOIN UPNIVEL3 U3 ON AP.ID_UPNIVEL3 =U3.ID_UPNIVEL3
JOIN PERIODOSAFRA PS ON U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA
JOIN FUNCIONARDISP FDI ON FU.ID_FUNCIONAR =FDI.ID_FUNCIONAR
LEFT JOIN COMPONENTE CO ON FDI.ID_CCUSTO=CO.ID_CCUSTO
WHERE AP.ID_UNIDADEADM = ? AND
( AP.DT_OPERACAO BETWEEN ? AND ? ) AND
( OP.FG_TP_CLASSE = '1' OR OP.FG_TP_CLASSE = '2' ) AND
FDI.DT_EVENTO =
( SELECT MAX(FDI2.DT_EVENTO)
FROM FUNCIONARDISP FDI2
WHERE FDI2.ID_FUNCIONAR = FU.ID_FUNCIONAR
AND FDI2.DT_EVENTO <= AP.DT_OPERACAO)
GROUP BY AP.ID_UNIDADEADM,
AP.DT_OPERACAO,
AP.ID_CCUSTO,
AP.ID_OPERACAO,
PS.ID_SAFRA,
U3.ID_PERIODOSAFRA,
AP.ID_UPNIVEL3,
AP.ID_FUNCIONAR,
CO.ID_COMPONENTE,
CO.FG_TP_COMPONENTE,
CO.ID_UNIMEDIDA,
CO.ID_CONTACUSTO
UNION ALL
SELECT
AP.ID_UNIDADEADM ID_UNIDADEADM,
AP.DT_OPERACAO DT_OPERACAO,
MAN.ID_CCUSTO ID_CCUSTO,
MAN.ID_OPERACAO ID_OPERACAO,
PS.ID_SAFRA ID_SAFRA,
U3.ID_PERIODOSAFRA ID_PERIODOSAFRA,
MAN.ID_UPNIVEL3 ID_UPNIVEL3,
MAN.ID_FUNCIONAR ID_FUNCIONAR,
CO.ID_COMPONENTE ID_COMPONENTE,
CO.FG_TP_COMPONENTE FG_TP_COMPONENTE,
CO.ID_UNIMEDIDA ID_UNIMEDIDA_CO,
CO.ID_CONTACUSTO ID_CONTACUSTO,
SUM(MAN.QT_TOTAL_JORN) QT_TOTAL
FROM AU_APTO AP
JOIN AU_APTO_MAN MAN ON AP.ID_AU_APTO = MAN.ID_AU_APTO
JOIN FUNCIONAR FU ON MAN.ID_FUNCIONAR = FU.ID_FUNCIONAR
JOIN OPERACAO OP ON MAN.ID_OPERACAO = OP.ID_OPERACAO
JOIN UPNIVEL3 U3 ON MAN.ID_UPNIVEL3 = U3.ID_UPNIVEL3
JOIN PERIODOSAFRA PS ON U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA
JOIN FUNCIONARDISP FDI ON FU.ID_FUNCIONAR = FDI.ID_FUNCIONAR
LEFT JOIN COMPONENTE CO ON FDI.ID_CCUSTO = CO.ID_CCUSTO
WHERE AP.ID_UNIDADEADM = ? AND
( AP.DT_OPERACAO BETWEEN ? AND ? ) AND
( OP.FG_TP_CLASSE = '1' OR OP.FG_TP_CLASSE = '2' ) AND
FDI.DT_EVENTO =
( SELECT MAX(FDI2.DT_EVENTO)
FROM FUNCIONARDISP FDI2
WHERE FDI2.ID_FUNCIONAR = FU.ID_FUNCIONAR
AND FDI2.DT_EVENTO <= AP.DT_OPERACAO )
GROUP BY AP.ID_UNIDADEADM,
AP.DT_OPERACAO,
MAN.ID_CCUSTO,
MAN.ID_OPERACAO,
PS.ID_SAFRA,
U3.ID_PERIODOSAFRA,
MAN.ID_UPNIVEL3,
MAN.ID_FUNCIONAR,
CO.ID_COMPONENTE,
CO.FG_TP_COMPONENTE,
CO.ID_UNIMEDIDA,
CO.ID_CONTACUSTO
)
GROUP BY ID_UNIDADEADM,
DT_OPERACAO,
ID_CCUSTO,
ID_OPERACAO,
ID_SAFRA,
ID_PERIODOSAFRA,
ID_UPNIVEL3,
ID_FUNCIONAR,
ID_COMPONENTE,
FG_TP_COMPONENTE,
ID_UNIMEDIDA_CO,
ID_CONTACUSTO
ORDER BY 1, 2, 3, 4, 5, 6, 7, 8, 9

  • Captação Tratamento de Semente


Alterar a sql utilizada no método execute da classe FEntrPreProcTratSement pelo sql abaixo:
SELECT ID_APTRATSEMENT,
ID_UPNIVEL3,
ID_INSUMO_TRAT,
SEMENTE_TRATADA,
AREA_PLANTIO,
SEMENTE_PLANTADA,
SUM (CONSUMO_INSUMO) CONSUMO_INSUMO
FROM
(
SELECT
T.ID_APTRATSEMENT,
SEMENTE_LOCAL.ID_UPNIVEL3,
TI.ID_INSUMO ID_INSUMO_TRAT,
SEMENTE_TRATADA.SEMENTE_TRATADA,
AREA_LOCAL.AREA_PLANTADA AREA_PLANTIO,
SEMENTE_TOTAL.SEMENTE_PLANTADA,
TI.QT_TOTAL/SEMENTE_TRATADA.SEMENTE_TRATADA*SEMENTE_LOCAL.SEMENTE_PLANTADA CONSUMO_INSUMO
FROM APTRATSEMENT T
JOIN APTRATSEMENT_IN TI ON (T.ID_APTRATSEMENT = TI.ID_APTRATSEMENT)
JOIN INSUMO I ON (TI.ID_INSUMO = I.ID_INSUMO)
JOIN (SELECT T.ID_APTRATSEMENT, SUM(TI.QT_TOTAL) SEMENTE_TRATADA
FROM APTRATSEMENT T
JOIN APTRATSEMENT_IN TI ON (T.ID_APTRATSEMENT = TI.ID_APTRATSEMENT)
JOIN INSUMO I ON (TI.ID_INSUMO = I.ID_INSUMO)
WHERE I.FG_SEMENTE = 'S'
AND T.ID_APTRATSEMENT IN (SELECT DISTINCT ID_APTRATSEMENT
FROM APPLANTIO
WHERE (ID_UNIDADEADM = ?) AND (DT_OPERACAO BETWEEN ? AND ?))
GROUP BY T.ID_APTRATSEMENT) SEMENTE_TRATADA
ON (T.ID_APTRATSEMENT = SEMENTE_TRATADA.ID_APTRATSEMENT)
JOIN (SELECT P.ID_APTRATSEMENT, P.ID_UPNIVEL3, SUM(PI.QT_TOTAL) SEMENTE_PLANTADA
FROM APPLANTIO P
JOIN APPLANTIO_IN PI ON (P.ID_APPLANTIO = PI.ID_APPLANTIO)
JOIN INSUMO I ON (PI.ID_INSUMO = I.ID_INSUMO)
WHERE (I.FG_SEMENTE = 'S')
AND (P.ID_UNIDADEADM = ?) AND (P.DT_OPERACAO BETWEEN ? AND ?)
GROUP BY P.ID_APTRATSEMENT, P.ID_UPNIVEL3) SEMENTE_LOCAL
ON (T.ID_APTRATSEMENT = SEMENTE_LOCAL.ID_APTRATSEMENT)
JOIN (SELECT P.ID_APTRATSEMENT, SUM(PI.QT_TOTAL) SEMENTE_PLANTADA
FROM APPLANTIO P
JOIN APPLANTIO_IN PI ON (P.ID_APPLANTIO = PI.ID_APPLANTIO)
JOIN INSUMO I ON (PI.ID_INSUMO = I.ID_INSUMO)
WHERE I.FG_SEMENTE = 'S'
AND (P.ID_UNIDADEADM = ?) AND (P.DT_OPERACAO BETWEEN ? AND ?)
GROUP BY P.ID_APTRATSEMENT) SEMENTE_TOTAL
ON (T.ID_APTRATSEMENT = SEMENTE_TOTAL.ID_APTRATSEMENT)
JOIN (SELECT P.ID_APTRATSEMENT, P.ID_UPNIVEL3, SUM(P.QT_AREA) AREA_PLANTADA
FROM APPLANTIO P
WHERE (P.ID_UNIDADEADM = ?) AND (P.DT_OPERACAO BETWEEN ? AND ?)
GROUP BY P.ID_APTRATSEMENT, P.ID_UPNIVEL3) AREA_LOCAL
ON (T.ID_APTRATSEMENT = AREA_LOCAL.ID_APTRATSEMENT AND AREA_LOCAL.ID_UPNIVEL3 = SEMENTE_LOCAL.ID_UPNIVEL3)
WHERE I.FG_SEMENTE = 'N'
AND T.ID_APTRATSEMENT IN (SELECT DISTINCT ID_APTRATSEMENT
FROM APPLANTIO
WHERE (ID_UNIDADEADM = ?)
AND (DT_OPERACAO BETWEEN ? AND ?))
UNION ALL
SELECT
T.ID_APTRATSEMENT,
SEMENTE_LOCAL.ID_UPNIVEL3,
TI.ID_INSUMO ID_INSUMO_TRAT,
SEMENTE_TRATADA.SEMENTE_TRATADA,
AREA_LOCAL.AREA_PLANTADA AREA_PLANTIO,
SEMENTE_TOTAL.SEMENTE_PLANTADA,
TI.QT_TOTAL/SEMENTE_TRATADA.SEMENTE_TRATADA*SEMENTE_LOCAL.SEMENTE_PLANTADA CONSUMO_INSUMO
FROM APTRATSEMENT T
JOIN APTRATSEMENT_IN TI ON (T.ID_APTRATSEMENT = TI.ID_APTRATSEMENT)
JOIN INSUMO I ON (TI.ID_INSUMO = I.ID_INSUMO)
JOIN (SELECT T.ID_APTRATSEMENT, SUM(TI.QT_TOTAL) SEMENTE_TRATADA
FROM APTRATSEMENT T
JOIN APTRATSEMENT_IN TI ON (T.ID_APTRATSEMENT = TI.ID_APTRATSEMENT)
JOIN INSUMO I ON (TI.ID_INSUMO = I.ID_INSUMO)
WHERE I.FG_SEMENTE = 'S'
AND T.ID_APTRATSEMENT IN
(SELECT DISTINCT ID_APTRATSEMENT
FROM AU_APTO
JOIN AU_TIPO ON (AU_APTO.ID_AU_TIPO = AU_TIPO.ID_AU_TIPO AND AU_TIPO.FG_PLANTIO = 'S')
WHERE (ID_UNIDADEADM = ?) AND (DT_OPERACAO BETWEEN ? AND ?)) GROUP BY T.ID_APTRATSEMENT)
SEMENTE_TRATADA
ON (T.ID_APTRATSEMENT = SEMENTE_TRATADA.ID_APTRATSEMENT)
JOIN (SELECT P.ID_APTRATSEMENT, LC.ID_UPNIVEL3, SUM(PI.QT_CONS_TOTAL) SEMENTE_PLANTADA
FROM AU_APTO P
JOIN AU_TIPO TP ON (P.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_INS PI ON (P.ID_AU_APTO = PI.ID_AU_APTO)
JOIN AU_APTO_LC LC ON (P.ID_AU_APTO = LC.ID_AU_APTO)
JOIN INSUMO I ON (PI.ID_INSUMO = I.ID_INSUMO)
WHERE (I.FG_SEMENTE = 'S')
AND (P.ID_UNIDADEADM = ?) AND (P.DT_OPERACAO BETWEEN ? AND ?)
GROUP BY P.ID_APTRATSEMENT, LC.ID_UPNIVEL3) SEMENTE_LOCAL
ON (T.ID_APTRATSEMENT = SEMENTE_LOCAL.ID_APTRATSEMENT)
JOIN (SELECT P.ID_APTRATSEMENT, SUM(PI.QT_CONS_TOTAL) SEMENTE_PLANTADA
FROM AU_APTO P
JOIN AU_TIPO TP ON (P.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_INS PI ON (P.ID_AU_APTO = PI.ID_AU_APTO)
JOIN INSUMO I ON (PI.ID_INSUMO = I.ID_INSUMO)
WHERE I.FG_SEMENTE = 'S'
AND (P.ID_UNIDADEADM = ?) AND (P.DT_OPERACAO BETWEEN ? AND ?)
GROUP BY P.ID_APTRATSEMENT) SEMENTE_TOTAL
ON (T.ID_APTRATSEMENT = SEMENTE_TOTAL.ID_APTRATSEMENT)
JOIN (SELECT P.ID_APTRATSEMENT, LC.ID_UPNIVEL3, SUM(LC.QT_AREA) AREA_PLANTADA
FROM AU_APTO P
JOIN AU_TIPO TP ON (P.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON (P.ID_AU_APTO = LC.ID_AU_APTO)
WHERE (P.ID_UNIDADEADM = ?) AND (P.DT_OPERACAO BETWEEN ? AND ?)
GROUP BY P.ID_APTRATSEMENT, LC.ID_UPNIVEL3) AREA_LOCAL
ON (T.ID_APTRATSEMENT = AREA_LOCAL.ID_APTRATSEMENT AND AREA_LOCAL.ID_UPNIVEL3 = SEMENTE_LOCAL.ID_UPNIVEL3)
WHERE I.FG_SEMENTE = 'N'
AND T.ID_APTRATSEMENT IN
( SELECT DISTINCT ID_APTRATSEMENT
FROM AU_APTO
JOIN AU_TIPO ON (AU_APTO.ID_AU_TIPO = AU_TIPO.ID_AU_TIPO AND AU_TIPO.FG_PLANTIO = 'S')
WHERE (ID_UNIDADEADM = ?)
AND (DT_OPERACAO BETWEEN ? AND ?) )
)
GROUP BY
ID_APTRATSEMENT,
ID_UPNIVEL3,
ID_INSUMO_TRAT,
SEMENTE_TRATADA,
AREA_PLANTIO,
SEMENTE_PLANTADA

  • Captação Consumo Insumos Agrícolas


Alterar o método
Alterar as SQLs utilizadas na Classe FEntrConsumoIns, método execute, conforme indicado abaixo.
Para a captação do Consumo de Insumos Agrícolas, podem ser executados dois selects distintos. Abaixo verifique as sql's que deverão ser utilizadas:

    • Caso o Parâmetro "Data da Produção realizada por terceiro" estiver com o valor "Data de Operação" (CONTEXT_APL = "GEOAGRO.CUSTOS", NAME_PARAMETER = "DT_PROD_REALIZADA_TERCEIRO",e valor = "O") incluir na SQL o trecho:


UNION
SELECT AP.ID_UNIDADEADM,
AP.DT_OPERACAO,
AP.ID_CCUSTO,
AP.ID_OPERACAO,
PS.ID_SAFRA,
U3.ID_PERIODOSAFRA,
APLC.ID_UPNIVEL3,
APLC.ID_INSUMO,
IM.ID_UNIMEDIDA,
IMCO.ID_COMPONENTE,
IMCO.FG_TP_COMPONENTE,
IMCO.ID_UNIMEDIDA ID_UNIMEDIDA_CO,
IMCO.ID_CONTACUSTO,
SUM(APLC.QT_CONS_TOTAL) QT_TOTAL,
SUM(APLC.QT_CONS_TOTAL*AP_INS.QT_VALOR) QT_VALOR_TOTAL,
SUM(APLC.QT_CONS_TOTAL*AP_INS.QT_VALOR1) QT_VALOR_TOTAL1,
SUM(APLC.QT_CONS_TOTAL*AP_INS.QT_VALOR2) QT_VALOR_TOTAL2,
SUM(APLC.QT_CONS_TOTAL*AP_INS.QT_VALOR3) QT_VALOR_TOTAL3,
SUM(APLC.QT_CONS_TOTAL*AP_INS.QT_VALOR4) QT_VALOR_TOTAL4
FROM AU_APTO AP
JOIN AU_APTO_INS_LC APLC ON APLC.ID_AU_APTO = AP.ID_AU_APTO
JOIN AU_APTO_INS AP_INS ON (AP.ID_AU_APTO = AP_INS.ID_AU_APTO AND APLC.ID_INSUMO = AP_INS.ID_INSUMO)
JOIN UPNIVEL3 U3 ON APLC.ID_UPNIVEL3 =U3.ID_UPNIVEL3
JOIN PERIODOSAFRA PS ON U3.ID_PERIODOSAFRA =PS.ID_PERIODOSAFRA
JOIN INSUMO IM ON APLC.ID_INSUMO =IM.ID_INSUMO
LEFT OUTER JOIN
( SELECT DISTINCT CM.ID_UNIDADEADM,
INS.ID_INSUMO,
CO.ID_COMPONENTE,
CO.FG_TP_COMPONENTE,
CO.ID_UNIMEDIDA,
CO.ID_CONTACUSTO
FROM INSUMO INS
RIGHT JOIN COMPONENTE_MAT CM ON LPAD(CM.CD_MATERIAL_INI, 30, 0) <= LPAD(INS.CD_INT_ERP, 30, '0') AND LPAD(CM.CD_MATERIAL_FIN, 30, '0') >= LPAD(INS.CD_INT_ERP, 30, '0')
LEFT JOIN COMPONENTE CO ON CM.ID_COMPONENTE =CO.ID_COMPONENTE
WHERE CM.ID_UNIDADEADM = ?
) IMCO ON IM.ID_INSUMO = IMCO.ID_INSUMO
WHERE AP.ID_UNIDADEADM = ?
AND ( AP.DT_OPERACAO BETWEEN ? AND ? )
GROUP BY AP.ID_UNIDADEADM,
AP.DT_OPERACAO,
AP.ID_CCUSTO,
AP.ID_OPERACAO,
PS.ID_SAFRA,
U3.ID_PERIODOSAFRA,
APLC.ID_UPNIVEL3,
APLC.ID_INSUMO,
IM.ID_UNIMEDIDA,
IMCO.ID_COMPONENTE,
IMCO.FG_TP_COMPONENTE,
IMCO.ID_UNIMEDIDA,
IMCO.ID_CONTACUSTO

    • Caso o Parâmetro "Data da Produção realizada por terceiro" estiver com o valor "Data de Operação" (CONTEXT_APL = "GEOAGRO.CUSTOS", NAME_PARAMETER = "DT_PROD_REALIZADA_TERCEIRO",e valor diferente de "O") incluir na SQL o trecho:


UNION ALL
SELECT AP.ID_UNIDADEADM,
AP.DT_OPERACAO,
AP.ID_CCUSTO,
AP.ID_OPERACAO,
PS.ID_SAFRA,
U3.ID_PERIODOSAFRA,
APLC.ID_UPNIVEL3,
INS.ID_INSUMO,
IM.ID_UNIMEDIDA,
IMCO.ID_COMPONENTE,
IMCO.FG_TP_COMPONENTE,
IMCO.ID_UNIMEDIDA ID_UNIMEDIDA_CO,
IMCO.ID_CONTACUSTO,
SUM(APLC.QT_CONS_TOTAL) QT_TOTAL,
SUM(APLC.QT_CONS_TOTAL*INS.QT_VALOR) QT_VALOR_TOTAL,
SUM(APLC.QT_CONS_TOTAL*INS.QT_VALOR1) QT_VALOR_TOTAL1,
SUM(APLC.QT_CONS_TOTAL*INS.QT_VALOR2) QT_VALOR_TOTAL2,
SUM(APLC.QT_CONS_TOTAL*INS.QT_VALOR3) QT_VALOR_TOTAL3,
SUM(APLC.QT_CONS_TOTAL*INS.QT_VALOR4) QT_VALOR_TOTAL4
FROM AU_APTO AP
JOIN AU_APTO_INS_LC APLC ON APLC.ID_AU_APTO = AP.ID_AU_APTO
JOIN AU_APTO_INS INS ON (AP.ID_AU_APTO = INS.ID_AU_APTO AND APLC.ID_INSUMO = INS.ID_INSUMO)
JOIN UPNIVEL3 U3 ON (APLC.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN INSUMO IM ON (INS.ID_INSUMO = IM.ID_INSUMO)
LEFT OUTER JOIN
( SELECT DISTINCT CM.ID_UNIDADEADM,
INS.ID_INSUMO,
CO.ID_COMPONENTE,
CO.FG_TP_COMPONENTE,
CO.ID_UNIMEDIDA,
CO.ID_CONTACUSTO
FROM INSUMO INS
RIGHT JOIN COMPONENTE_MAT CM ON LPAD(CM.CD_MATERIAL_INI, 30, 0) <= LPAD(INS.CD_INT_ERP, 30, '0') AND LPAD(CM.CD_MATERIAL_FIN, 30, '0') >= LPAD(INS.CD_INT_ERP, 30, '0')
LEFT JOIN COMPONENTE CO ON CM.ID_COMPONENTE =CO.ID_COMPONENTE
WHERE CM.ID_UNIDADEADM = ?
) IMCO ON IM.ID_INSUMO = IMCO.ID_INSUMO
LEFT JOIN EQUIPTODISP ED ON (AP.ID_EQUIPTO = ED.ID_EQUIPTO)
WHERE AP.ID_UNIDADEADM = ?
AND ( AP.DT_OPERACAO BETWEEN ? AND ? )
AND ( AP.ID_EQUIPTO IS NULL
OR ( ED.DT_EVENTO =
(SELECT MAX( B2.DT_EVENTO )
FROM EQUIPTODISP B2
WHERE B2.ID_EQUIPTO = AP.ID_EQUIPTO
AND B2.DT_EVENTO <= AP.DT_OPERACAO
AND ED.ID_PRESTSERV IS NULL
)))
GROUP BY AP.ID_UNIDADEADM,
AP.DT_OPERACAO,
AP.ID_CCUSTO,
AP.ID_OPERACAO,
PS.ID_SAFRA,
U3.ID_PERIODOSAFRA,
APLC.ID_UPNIVEL3,
INS.ID_INSUMO,
IM.ID_UNIMEDIDA,
IMCO.ID_COMPONENTE,
IMCO.FG_TP_COMPONENTE,
IMCO.ID_UNIMEDIDA,
IMCO.ID_CONTACUSTO

  • Captação Áreas das Operações


Alterar os sql's utilizados conforme demostrado abaixo na classe FEntrAreaProd, método execute.
Caso o Parâmetro "Data da Produção realizada por terceiro" estiver com o valor "Data de Operação" (CONTEXT_APL = "GEOAGRO.CUSTOS", NAME_PARAMETER = "DT_PROD_REALIZADA_TERCEIRO",e valor = "O") alterar a sql utilizada pela sql abaixo:

    • A SQL deverá recuperar apenas os apontamentos que possuem a unidade de medida Hectare. Para isso, recuperar o parâmetro das configurações gerais: Tabela: PRXPARAMETER, CONTEXT_APL = "PIMSGRAOS.UNIMEDIDA" e NAME_PARAMETER = "CD_UM_HA". Recuperado o parâmetro, substituir na sql abaixo o trecho destacado ("PARÂMETRO HECTARE") pelo campo ID_VALOR recuperado na consulta do parâmetro.



SELECT
LP.ID_UNIDADEADM, LP.DT_OPERACAO, LP.ID_CCUSTO, LP.ID_OPERACAO, LP.ID_SAFRA, LP.ID_PERIODOSAFRA, LP.ID_UPNIVEL3, LP.ID_UNIMEDIDA,
SUM(LP.QT_TOTAL) QT_TOTAL
FROM(
SELECT
AP.ID_UNIDADEADM,AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA,
SUM(AP.QT_AREA_EXEC) QT_TOTAL
FROM APATIVPROD AP
JOIN UPNIVEL3 U3 ON(AP.ID_UPNIVEL3=U3.ID_UPNIVEL3)
JOIN PERIODOSAFRA PS ON(U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA)
JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO)
WHERE ( AP.DT_OPERACAO BETWEEN ? AND ?)
AND AP.ID_UNIDADEADM = ?
AND OP.ID_UNIMEDIDA = "PARÂMETRO HECTARE"
GROUP BY AP.ID_UNIDADEADM,AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA
UNION ALL
SELECT
AP.ID_UNIDADEADM,AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA,
SUM(AP.QT_AREA) QT_TOTAL
FROM APPLANTIO AP
JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3=U3.ID_UPNIVEL3)
JOIN PERIODOSAFRA PS ON(U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA)
JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO )
WHERE ( AP.DT_OPERACAO BETWEEN ? AND ? )
AND AP.ID_UNIDADEADM = ?
AND AP.QT_AREA > 0
AND OP.ID_UNIMEDIDA = "PARÂMETRO HECTARE"
GROUP BY AP.ID_UNIDADEADM,AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA
UNION ALL
SELECT
AP.ID_UNIDADEADM,AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, APL.ID_UPNIVEL3, OP.ID_UNIMEDIDA,
SUM(APL.QT_AREA_EXEC)
FROM APAPLINS_LC APL
JOIN APAPLINSUMO AP ON(APL.ID_APAPLINSUMO=AP.ID_APAPLINSUMO)
JOIN UPNIVEL3 U3 ON(APL.ID_UPNIVEL3=U3.ID_UPNIVEL3)
JOIN PERIODOSAFRA PS ON(U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA)
JOIN OPERACAO OP ON(AP.ID_OPERACAO=OP.ID_OPERACAO)
WHERE ( AP.DT_OPERACAO BETWEEN ? AND ? )
AND AP.ID_UNIDADEADM = ?
AND APL.QT_AREA_EXEC > 0
AND OP.ID_UNIMEDIDA = "PARÂMETRO HECTARE"
GROUP BY AP.ID_UNIDADEADM,AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, APL.ID_UPNIVEL3, OP.ID_UNIMEDIDA
UNION ALL
SELECT
AU_AP.ID_UNIDADEADM,
AU_AP.DT_OPERACAO,
AP.ID_CCUSTO,
AP.ID_OPERACAO,
PS.ID_SAFRA,
U3.ID_PERIODOSAFRA,
AP.ID_UPNIVEL3,
OP.ID_UNIMEDIDA,
SUM(AP.QT_PRODUCAO) QT_TOTAL
FROM AU_APTO_PROD AP
JOIN AU_APTO AU_AP ON (AU_AP.ID_AU_APTO = AP.ID_AU_APTO)
JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN OPERACAO OP ON (AP.ID_OPERACAO = OP.ID_OPERACAO )
WHERE ( AU_AP.DT_OPERACAO BETWEEN ? AND ? )
AND AU_AP.ID_UNIDADEADM = ?
AND OP.ID_UNIMEDIDA = "PARÂMETRO HECTARE"
GROUP BY AU_AP.ID_UNIDADEADM,AU_AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA
UNION ALL
SELECT
AU_AP.ID_UNIDADEADM,
AU_AP.DT_OPERACAO,
AU_AP.ID_CCUSTO,
AU_AP.ID_OPERACAO,
PS.ID_SAFRA,
U3.ID_PERIODOSAFRA,
AP.ID_UPNIVEL3,
OP.ID_UNIMEDIDA,
SUM(AP.QT_AREA) QT_TOTAL
FROM AU_APTO_LC AP
JOIN AU_APTO AU_AP ON (AU_AP.ID_AU_APTO = AP.ID_AU_APTO)
JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN OPERACAO OP ON (AU_AP.ID_OPERACAO = OP.ID_OPERACAO )
WHERE ( AU_AP.DT_OPERACAO BETWEEN ? AND ? )
AND AU_AP.ID_UNIDADEADM = ?
AND OP.ID_UNIMEDIDA = "PARÂMETRO HECTARE"
GROUP BY AU_AP.ID_UNIDADEADM, AU_AP.DT_OPERACAO, AU_AP.ID_CCUSTO, AU_AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA
)LP
GROUP BY LP.ID_UNIDADEADM, LP.DT_OPERACAO, LP.ID_CCUSTO, LP.ID_OPERACAO, LP.ID_SAFRA, LP.ID_PERIODOSAFRA, LP.ID_UPNIVEL3, LP.ID_UNIMEDIDA

Caso o Parâmetro "Data da Produção realizada por terceiro" estiver com o valor "Data de Operação" (CONTEXT_APL = "GEOAGRO.CUSTOS", NAME_PARAMETER = "DT_PROD_REALIZADA_TERCEIRO" e valor diferente de "O") substituir a sql utilizada pela sql abaixo:
sqlS0.append(" SELECT PS.ID_UNIDADEADM,PS.DT_OPERACAO, PS.ID_CCUSTO, PS.ID_OPERACAO, PS.ID_SAFRA, PS.ID_PERIODOSAFRA, PS.ID_UPNIVEL3, PS.ID_UNIMEDIDA, ");
sqlS0.append(" sum(PS.QT_TOTAL) QT_TOTAL ");
sqlS0.append(" FROM ");
sqlS0.append(" ( ");
sqlS0.append(" select ");
sqlS0.append(" AP.ID_UNIDADEADM,AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA, ");
sqlS0.append(" sum(AP.QT_AREA_EXEC) QT_TOTAL ");
sqlS0.append(" from APATIVPROD AP ");
sqlS0.append(" LEFT JOIN EQUIPTODISP ED ON (AP.ID_EQUIPTO = ED.ID_EQUIPTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" where ( AP.DT_OPERACAO between ? AND ? ) ");
sqlS0.append(" AND AP.ID_UNIDADEADM = ? AND ");
sqlS0.append(" ( AP.ID_EQUIPTO IS NULL OR ");
sqlS0.append(" ( ED.DT_EVENTO = ");
sqlS0.append(" (SELECT MAX( B2.DT_EVENTO ) ");
sqlS0.append(" FROM EQUIPTODISP B2 ");
sqlS0.append(" WHERE B2.ID_EQUIPTO = AP.ID_EQUIPTO ");
sqlS0.append(" AND B2.DT_EVENTO <= AP.DT_OPERACAO AND ED.ID_PRESTSERV IS NULL ))) ");
sqlS0.append(" group by AP.ID_UNIDADEADM,AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" UNION ALL ");
sqlS0.append(" select ");
sqlS0.append(" AP.ID_UNIDADEADM,AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA, ");
sqlS0.append(" sum(AP.QT_AREA) QT_TOTAL ");
sqlS0.append(" from APPLANTIO AP ");
sqlS0.append(" LEFT JOIN EQUIPTODISP ED ON (AP.ID_EQUIPTO = ED.ID_EQUIPTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" where ( AP.DT_OPERACAO between ? AND ? ) ");
sqlS0.append(" AND AP.ID_UNIDADEADM = ? AND AP.QT_AREA > 0 ");
sqlS0.append(" AND ( AP.ID_EQUIPTO IS NULL OR ");
sqlS0.append(" ( ED.DT_EVENTO = ");
sqlS0.append(" (SELECT MAX( B2.DT_EVENTO ) ");
sqlS0.append(" FROM EQUIPTODISP B2 ");
sqlS0.append(" WHERE B2.ID_EQUIPTO = AP.ID_EQUIPTO ");
sqlS0.append(" AND B2.DT_EVENTO <= AP.DT_OPERACAO AND ED.ID_PRESTSERV IS NULL ))) ");
sqlS0.append(" group by AP.ID_UNIDADEADM,AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" UNION ALL ");
sqlS0.append(" select ");
sqlS0.append(" AP.ID_UNIDADEADM,AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, APL.ID_UPNIVEL3, OP.ID_UNIMEDIDA, ");
sqlS0.append(" sum(APL.QT_AREA_EXEC) ");
sqlS0.append(" from APAPLINS_LC APL ");
sqlS0.append(" JOIN APAPLINSUMO AP ON (APL.ID_APAPLINSUMO=AP.ID_APAPLINSUMO) ");
sqlS0.append(" LEFT JOIN EQUIPTODISP ED ON (AP.ID_EQUIPTO = ED.ID_EQUIPTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (APL.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" where ( AP.DT_OPERACAO between ? AND ? ) ");
sqlS0.append(" AND AP.ID_UNIDADEADM = ? AND APL.QT_AREA_EXEC > 0 ");
sqlS0.append(" AND ( ");
sqlS0.append(" AP.ID_EQUIPTO IS NULL OR ");
sqlS0.append(" ( ED.DT_EVENTO = ");
sqlS0.append(" (SELECT MAX( B2.DT_EVENTO ) ");
sqlS0.append(" FROM EQUIPTODISP B2 ");
sqlS0.append(" WHERE B2.ID_EQUIPTO = AP.ID_EQUIPTO ");
sqlS0.append(" AND B2.DT_EVENTO <= AP.DT_OPERACAO AND ED.ID_PRESTSERV IS NULL ))) ");
sqlS0.append(" group by AP.ID_UNIDADEADM,AP.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, APL.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" UNION ALL ");
sqlS0.append("SELECT ");
sqlS0.append(" AU_APTO.ID_UNIDADEADM, ");
sqlS0.append(" AU_APTO.DT_OPERACAO, ");
sqlS0.append(" AP.ID_CCUSTO, ");
sqlS0.append(" AP.ID_OPERACAO, ");
sqlS0.append(" PS.ID_SAFRA, ");
sqlS0.append(" U3.ID_PERIODOSAFRA, ");
sqlS0.append(" AP.ID_UPNIVEL3, ");
sqlS0.append(" OP.ID_UNIMEDIDA, ");
sqlS0.append(" SUM(AP.QT_PRODUCAO) QT_TOTAL ");
sqlS0.append(" FROM AU_APTO_PROD AP ");
sqlS0.append(" JOIN AU_APTO AU_APTO ON (AU_APTO.ID_AU_APTO = AP.ID_AU_APTO) ");
sqlS0.append(" LEFT JOIN EQUIPTODISP ED ON (AU_APTO.ID_EQUIPTO = ED.ID_EQUIPTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" WHERE ( AU_APTO.DT_OPERACAO BETWEEN ? AND ? ) ");
sqlS0.append(" AND AU_APTO.ID_UNIDADEADM = ? AND ");
sqlS0.append(" ( AU_APTO.ID_EQUIPTO IS NULL OR ");
sqlS0.append(" ( ED.DT_EVENTO = ");
sqlS0.append(" (SELECT MAX( B2.DT_EVENTO ) ");
sqlS0.append(" FROM EQUIPTODISP B2 ");
sqlS0.append(" WHERE B2.ID_EQUIPTO = AU_APTO.ID_EQUIPTO ");
sqlS0.append(" AND B2.DT_EVENTO <= AU_APTO.DT_OPERACAO AND ED.ID_PRESTSERV IS NULL ))) ");
sqlS0.append(" AND OP.ID_UNIMEDIDA = "PARÂMETRO HECTARE" ");
sqlS0.append(" GROUP BY AU_APTO.ID_UNIDADEADM,AU_APTO.DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" UNION ALL ");
sqlS0.append(" SELECT ");
sqlS0.append(" AU_APTO.ID_UNIDADEADM, ");
sqlS0.append(" AU_APTO.DT_OPERACAO, ");
sqlS0.append(" AU_APTO.ID_CCUSTO, ");
sqlS0.append(" AU_APTO.ID_OPERACAO, ");
sqlS0.append(" PS.ID_SAFRA, ");
sqlS0.append(" U3.ID_PERIODOSAFRA, ");
sqlS0.append(" AP.ID_UPNIVEL3, ");
sqlS0.append(" OP.ID_UNIMEDIDA, ");
sqlS0.append(" SUM(AP.QT_AREA) QT_TOTAL ");
sqlS0.append(" FROM AU_APTO_LC AP ");
sqlS0.append(" JOIN AU_APTO AU_APTO ON (AU_APTO.ID_AU_APTO = AP.ID_AU_APTO) ");
sqlS0.append(" LEFT JOIN EQUIPTODISP ED ON (AU_APTO.ID_EQUIPTO = ED.ID_EQUIPTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AU_APTO.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" WHERE ( AU_APTO.DT_OPERACAO BETWEEN ? AND ? ) ");
sqlS0.append(" AND AU_APTO.ID_UNIDADEADM = ? AND ");
sqlS0.append(" ( AU_APTO.ID_EQUIPTO IS NULL OR ");
sqlS0.append(" ( ED.DT_EVENTO = ");
sqlS0.append(" (SELECT MAX( B2.DT_EVENTO ) ");
sqlS0.append(" FROM EQUIPTODISP B2 ");
sqlS0.append(" WHERE B2.ID_EQUIPTO = AU_APTO.ID_EQUIPTO ");
sqlS0.append(" AND B2.DT_EVENTO <= AU_APTO.DT_OPERACAO AND ED.ID_PRESTSERV IS NULL ))) ");
sqlS0.append(" GROUP BY AU_APTO.ID_UNIDADEADM,AU_APTO.DT_OPERACAO, AU_APTO.ID_CCUSTO, AU_APTO.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" UNION ALL ");
sqlS0.append(" select ");
sqlS0.append(" AP.ID_UNIDADEADM, ").append(data).append(" DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA, ");
sqlS0.append(" sum(AP.QT_AREA_EXEC) QT_TOTAL ");
sqlS0.append(" from APATIVPROD AP ");
sqlS0.append(" JOIN EQUIPTODISP ED ON (AP.ID_EQUIPTO = ED.ID_EQUIPTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" JOIN ");
sqlS0.append(" (SELECT DISTINCT DP.DT_INI_FECH, DP.DT_FIM_FECH, DP.DT_PAGTO, HC.ID_OPERACAO, HC.ID_PRESTSERV ");
sqlS0.append(" FROM SV_HISTCAPTA HC ");
sqlS0.append(" JOIN SV_DT_PAGTO DP ON (HC.ID_SV_DT_PAGTO = DP.ID_SV_DT_PAGTO) ");
sqlS0.append(" JOIN SV_CONTRATO C ON (HC.ID_SV_CONTRATO = C.ID_SV_CONTRATO) ");
sqlS0.append(" JOIN SV_ORIGEM_PAGTO ORIGEM ON (HC.ID_SV_ORIGEM_PGTO = ORIGEM.ID_SV_ORIGEM_PAGTO) ");
sqlS0.append(" WHERE (ORIGEM.FG_TP_ORIGEM = 'O') ");
sqlS0.append(" AND (").append( data ).append(" >= ? ) ");
sqlS0.append(" AND (").append( data ).append(" <= ? ) ");
sqlS0.append(" ) DP ON (AP.ID_OPERACAO = DP.ID_OPERACAO ");
sqlS0.append(" AND (ED.ID_PRESTSERV = DP.ID_PRESTSERV) ");
sqlS0.append(" AND (AP.DT_OPERACAO BETWEEN DP.DT_INI_FECH AND DP.DT_FIM_FECH ) ) ");
sqlS0.append(" where AP.ID_UNIDADEADM = ? ");
sqlS0.append(" AND ( ");
sqlS0.append(" ( ED.DT_EVENTO = ");
sqlS0.append(" (SELECT MAX( B2.DT_EVENTO ) ");
sqlS0.append(" FROM EQUIPTODISP B2 ");
sqlS0.append(" WHERE B2.ID_EQUIPTO = AP.ID_EQUIPTO ");
sqlS0.append(" AND B2.DT_EVENTO <= AP.DT_OPERACAO ))) ");
sqlS0.append(" group by AP.ID_UNIDADEADM, ").append(data).append(" , AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" UNION ALL ");
sqlS0.append(" select ");
sqlS0.append(" AP.ID_UNIDADEADM, ").append(data).append(" DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA, ");
sqlS0.append(" sum(AP.QT_AREA) QT_TOTAL ");
sqlS0.append(" from APPLANTIO AP ");
sqlS0.append(" JOIN EQUIPTODISP ED ON (AP.ID_EQUIPTO = ED.ID_EQUIPTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" JOIN ");
sqlS0.append(" (SELECT DISTINCT DP.DT_INI_FECH, DP.DT_FIM_FECH, DP.DT_PAGTO, HC.ID_OPERACAO, HC.ID_PRESTSERV ");
sqlS0.append(" FROM SV_HISTCAPTA HC ");
sqlS0.append(" JOIN SV_DT_PAGTO DP ON (HC.ID_SV_DT_PAGTO = DP.ID_SV_DT_PAGTO) ");
sqlS0.append(" JOIN SV_CONTRATO C ON (HC.ID_SV_CONTRATO = C.ID_SV_CONTRATO) ");
sqlS0.append(" JOIN SV_ORIGEM_PAGTO ORIGEM ON (HC.ID_SV_ORIGEM_PGTO = ORIGEM.ID_SV_ORIGEM_PAGTO) ");
sqlS0.append(" WHERE (ORIGEM.FG_TP_ORIGEM = 'P') ");
sqlS0.append(" AND (").append( data ).append(" >= ? ) ");
sqlS0.append(" AND (").append( data ).append(" <= ? ) ");
sqlS0.append(" ) DP ON (AP.ID_OPERACAO = DP.ID_OPERACAO ");
sqlS0.append(" AND (ED.ID_PRESTSERV = DP.ID_PRESTSERV) ");
sqlS0.append(" AND (AP.DT_OPERACAO BETWEEN DP.DT_INI_FECH AND DP.DT_FIM_FECH ) ) ");
sqlS0.append(" where AP.ID_UNIDADEADM = ? ");
sqlS0.append(" AND ( ");
sqlS0.append(" ( ED.DT_EVENTO = ");
sqlS0.append(" (SELECT MAX( B2.DT_EVENTO ) ");
sqlS0.append(" FROM EQUIPTODISP B2 ");
sqlS0.append(" WHERE B2.ID_EQUIPTO = AP.ID_EQUIPTO ");
sqlS0.append(" AND B2.DT_EVENTO <= AP.DT_OPERACAO ))) ");
sqlS0.append(" group by AP.ID_UNIDADEADM, ").append(data).append(" , AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" UNION ALL ");
sqlS0.append(" select ");
sqlS0.append(" AP.ID_UNIDADEADM, ").append(data).append(" DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, APL.ID_UPNIVEL3, OP.ID_UNIMEDIDA, ");
sqlS0.append(" sum(APL.QT_AREA_EXEC) ");
sqlS0.append(" from APAPLINS_LC APL ");
sqlS0.append(" JOIN APAPLINSUMO AP ON (APL.ID_APAPLINSUMO=AP.ID_APAPLINSUMO) ");
sqlS0.append(" JOIN EQUIPTODISP ED ON (AP.ID_EQUIPTO = ED.ID_EQUIPTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (APL.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" JOIN ");
sqlS0.append(" (SELECT DISTINCT DP.DT_INI_FECH, DP.DT_FIM_FECH, DP.DT_PAGTO, HC.ID_OPERACAO, HC.ID_PRESTSERV ");
sqlS0.append(" FROM SV_HISTCAPTA HC ");
sqlS0.append(" JOIN SV_DT_PAGTO DP ON (HC.ID_SV_DT_PAGTO = DP.ID_SV_DT_PAGTO) ");
sqlS0.append(" JOIN SV_CONTRATO C ON (HC.ID_SV_CONTRATO = C.ID_SV_CONTRATO) ");
sqlS0.append(" JOIN SV_ORIGEM_PAGTO ORIGEM ON (HC.ID_SV_ORIGEM_PGTO = ORIGEM.ID_SV_ORIGEM_PAGTO) ");
sqlS0.append(" WHERE (ORIGEM.FG_TP_ORIGEM = 'I') ");
sqlS0.append(" AND (").append( data ).append(" >= ? ) ");
sqlS0.append(" AND (").append( data ).append(" <= ? ) ");
sqlS0.append(" ) DP ON (AP.ID_OPERACAO = DP.ID_OPERACAO ");
sqlS0.append(" AND (ED.ID_PRESTSERV = DP.ID_PRESTSERV) ");
sqlS0.append(" AND (AP.DT_OPERACAO BETWEEN DP.DT_INI_FECH AND DP.DT_FIM_FECH ) ) ");
sqlS0.append(" where AP.ID_UNIDADEADM = ? ");
sqlS0.append(" AND ( ");
sqlS0.append(" ( ED.DT_EVENTO = ");
sqlS0.append(" (SELECT MAX( B2.DT_EVENTO ) ");
sqlS0.append(" FROM EQUIPTODISP B2 ");
sqlS0.append(" WHERE B2.ID_EQUIPTO = AP.ID_EQUIPTO ");
sqlS0.append(" AND B2.DT_EVENTO <= AP.DT_OPERACAO ))) ");
sqlS0.append(" group by AP.ID_UNIDADEADM, ").append(data).append(" , AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, APL.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" UNION ALL ");
sqlS0.append(" select ");
sqlS0.append(" AP.ID_UNIDADEADM, ").append(data).append(" DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA, ");
sqlS0.append(" sum(AP.QT_AREA_EXEC) QT_TOTAL ");
sqlS0.append(" from APATIVPROD AP ");
sqlS0.append(" JOIN EQUIPTODISP ED ON (AP.ID_EQUIPTO = ED.ID_EQUIPTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" JOIN ");
sqlS0.append(" (SELECT DISTINCT DP.DT_INI_FECH, DP.DT_FIM_FECH, DP.DT_PAGTO, HC.ID_CCUSTO, HC.ID_OPERACAO, HC.ID_PRESTSERV ");
sqlS0.append(" FROM SV_HISTCAPTA HC ");
sqlS0.append(" JOIN SV_DT_PAGTO DP ON (HC.ID_SV_DT_PAGTO = DP.ID_SV_DT_PAGTO) ");
sqlS0.append(" JOIN SV_CONTRATO C ON (HC.ID_SV_CONTRATO = C.ID_SV_CONTRATO) ");
sqlS0.append(" JOIN SV_ORIGEM_PAGTO ORIGEM ON (HC.ID_SV_ORIGEM_PGTO = ORIGEM.ID_SV_ORIGEM_PAGTO) ");
sqlS0.append(" WHERE (ORIGEM.FG_TP_ORIGEM <> 'O') ");
sqlS0.append(" AND (").append( data ).append(" >= ? ) ");
sqlS0.append(" AND (").append( data ).append(" <= ? ) ");
sqlS0.append(" ) DP ON ( ");
sqlS0.append(" AP.ID_CCUSTO = DP.ID_CCUSTO ");
sqlS0.append(" AND (AP.ID_OPERACAO = DP.ID_OPERACAO) ");
sqlS0.append(" AND (ED.ID_PRESTSERV = DP.ID_PRESTSERV) ");
sqlS0.append(" AND (AP.DT_OPERACAO BETWEEN DP.DT_INI_FECH AND DP.DT_FIM_FECH ) ");
sqlS0.append(" ) ");
sqlS0.append(" where AP.ID_UNIDADEADM = ? ");
sqlS0.append(" AND ( ");
sqlS0.append(" ( ED.DT_EVENTO = ");
sqlS0.append(" (SELECT MAX( B2.DT_EVENTO ) ");
sqlS0.append(" FROM EQUIPTODISP B2 ");
sqlS0.append(" WHERE B2.ID_EQUIPTO = AP.ID_EQUIPTO ");
sqlS0.append(" AND B2.DT_EVENTO <= AP.DT_OPERACAO ))) ");
sqlS0.append(" group by AP.ID_UNIDADEADM, ").append(data).append(" , AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" UNION ALL ");
sqlS0.append(" select ");
sqlS0.append(" AP.ID_UNIDADEADM, ").append(data).append(" DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA, ");
sqlS0.append(" sum(AP.QT_AREA) QT_TOTAL ");
sqlS0.append(" from APPLANTIO AP ");
sqlS0.append(" JOIN EQUIPTODISP ED ON (AP.ID_EQUIPTO = ED.ID_EQUIPTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" JOIN ");
sqlS0.append(" (SELECT DISTINCT DP.DT_INI_FECH, DP.DT_FIM_FECH, DP.DT_PAGTO, HC.ID_CCUSTO, HC.ID_OPERACAO, HC.ID_PRESTSERV ");
sqlS0.append(" FROM SV_HISTCAPTA HC ");
sqlS0.append(" JOIN SV_DT_PAGTO DP ON (HC.ID_SV_DT_PAGTO = DP.ID_SV_DT_PAGTO) ");
sqlS0.append(" JOIN SV_CONTRATO C ON (HC.ID_SV_CONTRATO = C.ID_SV_CONTRATO) ");
sqlS0.append(" JOIN SV_ORIGEM_PAGTO ORIGEM ON (HC.ID_SV_ORIGEM_PGTO = ORIGEM.ID_SV_ORIGEM_PAGTO) ");
sqlS0.append(" WHERE (ORIGEM.FG_TP_ORIGEM <> 'P') ");
sqlS0.append(" AND (").append( data ).append(" >= ? ) ");
sqlS0.append(" AND (").append( data ).append(" <= ? ) ");
sqlS0.append(" ) DP ON ( ");
sqlS0.append(" AP.ID_CCUSTO = DP.ID_CCUSTO ");
sqlS0.append(" AND (AP.ID_OPERACAO = DP.ID_OPERACAO) ");
sqlS0.append(" AND (ED.ID_PRESTSERV = DP.ID_PRESTSERV) ");
sqlS0.append(" AND (AP.DT_OPERACAO BETWEEN DP.DT_INI_FECH AND DP.DT_FIM_FECH ) ");
sqlS0.append(" ) ");
sqlS0.append(" where AP.ID_UNIDADEADM = ? ");
sqlS0.append(" AND ( ");
sqlS0.append(" ( ED.DT_EVENTO = ");
sqlS0.append(" (SELECT MAX( B2.DT_EVENTO ) ");
sqlS0.append(" FROM EQUIPTODISP B2 ");
sqlS0.append(" WHERE B2.ID_EQUIPTO = AP.ID_EQUIPTO ");
sqlS0.append(" AND B2.DT_EVENTO <= AP.DT_OPERACAO ))) ");
sqlS0.append(" group by AP.ID_UNIDADEADM, ").append(data).append(" , AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" UNION ALL ");
sqlS0.append(" select ");
sqlS0.append(" AP.ID_UNIDADEADM, ").append(data).append(" DT_OPERACAO, AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, APL.ID_UPNIVEL3, OP.ID_UNIMEDIDA, ");
sqlS0.append(" sum(APL.QT_AREA_EXEC) ");
sqlS0.append(" from APAPLINS_LC APL ");
sqlS0.append(" JOIN APAPLINSUMO AP ON (APL.ID_APAPLINSUMO=AP.ID_APAPLINSUMO) ");
sqlS0.append(" JOIN EQUIPTODISP ED ON (AP.ID_EQUIPTO = ED.ID_EQUIPTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (APL.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" JOIN ");
sqlS0.append(" (SELECT DISTINCT DP.DT_INI_FECH, DP.DT_FIM_FECH, DP.DT_PAGTO, HC.ID_CCUSTO, HC.ID_OPERACAO, HC.ID_PRESTSERV ");
sqlS0.append(" FROM SV_HISTCAPTA HC ");
sqlS0.append(" JOIN SV_DT_PAGTO DP ON (HC.ID_SV_DT_PAGTO = DP.ID_SV_DT_PAGTO) ");
sqlS0.append(" JOIN SV_CONTRATO C ON (HC.ID_SV_CONTRATO = C.ID_SV_CONTRATO) ");
sqlS0.append(" JOIN SV_ORIGEM_PAGTO ORIGEM ON (HC.ID_SV_ORIGEM_PGTO = ORIGEM.ID_SV_ORIGEM_PAGTO) ");
sqlS0.append(" WHERE (ORIGEM.FG_TP_ORIGEM <> 'I') ");
sqlS0.append(" AND (").append( data ).append(" >= ? ) ");
sqlS0.append(" AND (").append( data ).append(" <= ? ) ");
sqlS0.append(" ) DP ON ( ");
sqlS0.append(" AP.ID_CCUSTO = DP.ID_CCUSTO ");
sqlS0.append(" AND (AP.ID_OPERACAO = DP.ID_OPERACAO) ");
sqlS0.append(" AND (ED.ID_PRESTSERV = DP.ID_PRESTSERV) ");
sqlS0.append(" AND (AP.DT_OPERACAO BETWEEN DP.DT_INI_FECH AND DP.DT_FIM_FECH ) ");
sqlS0.append(" ) ");
sqlS0.append(" where AP.ID_UNIDADEADM = ? ");
sqlS0.append(" AND ( ");
sqlS0.append(" ( ED.DT_EVENTO = ");
sqlS0.append(" (SELECT MAX( B2.DT_EVENTO ) ");
sqlS0.append(" FROM EQUIPTODISP B2 ");
sqlS0.append(" WHERE B2.ID_EQUIPTO = AP.ID_EQUIPTO ");
sqlS0.append(" AND B2.DT_EVENTO <= AP.DT_OPERACAO ))) ");
sqlS0.append(" group by AP.ID_UNIDADEADM, ").append(data).append(" , AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, APL.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" UNION ALL ");
sqlS0.append(" SELECT ");
sqlS0.append(" AU_APTO.ID_UNIDADEADM, ");
sqlS0.append(" ").append( data ).append(" DT_OPERACAO, ");
sqlS0.append(" AP.ID_CCUSTO, ");
sqlS0.append(" AP.ID_OPERACAO, ");
sqlS0.append(" PS.ID_SAFRA, ");
sqlS0.append(" U3.ID_PERIODOSAFRA, ");
sqlS0.append(" AP.ID_UPNIVEL3, ");
sqlS0.append(" OP.ID_UNIMEDIDA, ");
sqlS0.append(" SUM(AP.QT_PRODUCAO) QT_TOTAL ");
sqlS0.append(" FROM AU_APTO_PROD AP ");
sqlS0.append(" JOIN AU_APTO AU_APTO ON (AU_APTO.ID_AU_APTO = AP.ID_AU_APTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AP.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" JOIN SV_HISTCAPTA SV ON (SV.ID_APONTAMENTO_DE = AP.ID_AU_APTO_PROD AND AU_APTO.ID_AU_APTO = SV.ID_APONTAMENTO) ");
sqlS0.append(" JOIN SV_DT_PAGTO DP ON (SV.ID_SV_DT_PAGTO = DP.ID_SV_DT_PAGTO) ");
sqlS0.append(" WHERE AU_APTO.ID_UNIDADEADM = ? ");
sqlS0.append(" AND OP.ID_UNIMEDIDA = "PARÂMETRO HECTARE"");
sqlS0.append(" AND AU_APTO.DT_OPERACAO BETWEEN DP.DT_INI_FECH AND DP.DT_FIM_FECH ");
sqlS0.append(" AND (").append( data ).append(" >= ? ) ");
sqlS0.append(" AND (").append( data ).append(" <= ? ) ");
sqlS0.append(" GROUP BY AU_APTO.ID_UNIDADEADM, ").append(data).append(" , AP.ID_CCUSTO, AP.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" UNION ALL ");
sqlS0.append(" SELECT ");
sqlS0.append(" AU_APTO.ID_UNIDADEADM, ");
sqlS0.append(" ").append( data ).append(" DT_OPERACAO, ");
sqlS0.append(" AU_APTO.ID_CCUSTO, ");
sqlS0.append(" AU_APTO.ID_OPERACAO, ");
sqlS0.append(" PS.ID_SAFRA, ");
sqlS0.append(" U3.ID_PERIODOSAFRA, ");
sqlS0.append(" AP.ID_UPNIVEL3, ");
sqlS0.append(" OP.ID_UNIMEDIDA, ");
sqlS0.append(" SUM(AP.QT_AREA) QT_TOTAL ");
sqlS0.append(" FROM AU_APTO_LC AP ");
sqlS0.append(" JOIN AU_APTO AU_APTO ON (AU_APTO.ID_AU_APTO = AP.ID_AU_APTO) ");
sqlS0.append(" JOIN UPNIVEL3 U3 ON (AP.ID_UPNIVEL3=U3.ID_UPNIVEL3) ");
sqlS0.append(" JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA=PS.ID_PERIODOSAFRA) ");
sqlS0.append(" JOIN OPERACAO OP ON (AU_APTO.ID_OPERACAO=OP.ID_OPERACAO ) ");
sqlS0.append(" JOIN SV_HISTCAPTA SV ON (SV.ID_APONTAMENTO_DE = AP.ID_AU_APTO_LC AND AU_APTO.ID_AU_APTO = SV.ID_APONTAMENTO) ");
sqlS0.append(" JOIN SV_DT_PAGTO DP ON (SV.ID_SV_DT_PAGTO = DP.ID_SV_DT_PAGTO) ");
sqlS0.append(" WHERE AU_APTO.ID_UNIDADEADM = ? ");
sqlS0.append(" AND AU_APTO.DT_OPERACAO BETWEEN DP.DT_INI_FECH AND DP.DT_FIM_FECH ");
sqlS0.append(" AND (").append( data ).append(" >= ? ) ");
sqlS0.append(" AND (").append( data ).append(" <= ? ) ");
sqlS0.append(" GROUP BY AU_APTO.ID_UNIDADEADM, ").append(data).append(" , AU_APTO.ID_CCUSTO, AU_APTO.ID_OPERACAO, PS.ID_SAFRA, U3.ID_PERIODOSAFRA, AP.ID_UPNIVEL3, OP.ID_UNIMEDIDA ");
sqlS0.append(" ) PS ");
sqlS0.append(" group by PS.ID_UNIDADEADM,PS.DT_OPERACAO, PS.ID_CCUSTO, PS.ID_OPERACAO, PS.ID_SAFRA, PS.ID_PERIODOSAFRA, PS.ID_UPNIVEL3, PS.ID_UNIMEDIDA ");
sqlS0.append(" order by 1, 2, 3, 4, 5, 6, 7 ");

  • Captação da Jornada dos Operadores em Atividades Mecanizadas


Alterar o select efetuado no método execute classe FEntrAtivMecJornada para contemplar os Apontamentos Agrícolas. Para isso substituir a sql utilizada no método pelo sql abaixo:
SELECT
CONSULTA.ID_UNIDADEADM,
CONSULTA.DT_OPERACAO,
CONSULTA.ID_FUNCIONAR,
CONSULTA.ID_CCUSTO_FU,
CONSULTA.ID_COMPONENTE_FU,
CONSULTA.FG_TP_COMPONENTE_FU,
CONSULTA.ID_UNIMEDIDA_FU,
CONSULTA.ID_CONTACUSTO_FU,
CONSULTA.ID_EQUIPTO,
CONSULTA.ID_CCUSTO_EQ,
CONSULTA.ID_COMPONENTE_EQ,
CONSULTA.FG_TP_COMPONENTE_EQ,
CONSULTA.ID_UNIMEDIDA_EQ,
CONSULTA.ID_CONTACUSTO_EQ,
SUM(CONSULTA.QT_HR_TOTAL) QT_HR_TOTAL
FROM(
SELECT
AP.ID_UNIDADEADM,
AP.DT_OPERACAO,
AP.ID_FUNCIONAR,
FDI.ID_CCUSTO ID_CCUSTO_FU,
COF.ID_COMPONENTE ID_COMPONENTE_FU,
COF.FG_TP_COMPONENTE FG_TP_COMPONENTE_FU,
COF.ID_UNIMEDIDA ID_UNIMEDIDA_FU,
COF.ID_CONTACUSTO ID_CONTACUSTO_FU,
AP.ID_EQUIPTO,
EQDI.ID_CCUSTO ID_CCUSTO_EQ,
COE.ID_COMPONENTE ID_COMPONENTE_EQ,
COE.FG_TP_COMPONENTE FG_TP_COMPONENTE_EQ,
COE.ID_UNIMEDIDA ID_UNIMEDIDA_EQ,
COE.ID_CONTACUSTO ID_CONTACUSTO_EQ,
SUM(AP.QT_TOTAL_JORN) QT_HR_TOTAL
FROM APATIVMEC AP
JOIN EQUIPTODISP EQDI ON AP.ID_EQUIPTO = EQDI.ID_EQUIPTO
LEFT JOIN COMPONENTE COE ON EQDI.ID_CCUSTO = COE.ID_CCUSTO AND 'Q' = COE.FG_TP_COMPONENTE
JOIN FUNCIONARDISP FDI ON AP.ID_FUNCIONAR = FDI.ID_FUNCIONAR
LEFT JOIN COMPONENTE COF ON FDI.ID_CCUSTO = COF.ID_CCUSTO AND 'F' = COF.FG_TP_COMPONENTE
WHERE AP.ID_UNIDADEADM = 8046868420951499909
AND AP.QT_TOTAL_JORN > 0
AND (AP.DT_OPERACAO BETWEEN '01-01-2016' AND '31-12-2016')
AND EQDI.DT_EVENTO=
(SELECT MAX(EQDI2.DT_EVENTO)
FROM EQUIPTODISP EQDI2
WHERE EQDI2.ID_EQUIPTO=AP.ID_EQUIPTO
AND EQDI2.DT_EVENTO <= AP.DT_OPERACAO )
AND FDI.DT_EVENTO =
(SELECT MAX(FDI2.DT_EVENTO)
FROM FUNCIONARDISP FDI2
WHERE FDI2.ID_FUNCIONAR=AP.ID_FUNCIONAR
AND FDI2.DT_EVENTO <= AP.DT_OPERACAO )
GROUP BY AP.ID_UNIDADEADM,
AP.DT_OPERACAO,
AP.ID_FUNCIONAR,
FDI.ID_CCUSTO,
COF.ID_COMPONENTE,
COF.FG_TP_COMPONENTE,
COF.ID_UNIMEDIDA,
COF.ID_CONTACUSTO,
AP.ID_EQUIPTO,
EQDI.ID_CCUSTO,
COE.ID_COMPONENTE,
COE.FG_TP_COMPONENTE,
COE.ID_UNIMEDIDA,
COE.ID_CONTACUSTO
UNION
SELECT
AU_APTO.ID_UNIDADEADM,
AU_APTO.DT_OPERACAO,
AU_APTO.ID_FUNCIONAR,
FDI.ID_CCUSTO ID_CCUSTO_FU,
COF.ID_COMPONENTE ID_COMPONENTE_FU,
COF.FG_TP_COMPONENTE FG_TP_COMPONENTE_FU,
COF.ID_UNIMEDIDA ID_UNIMEDIDA_FU,
COF.ID_CONTACUSTO ID_CONTACUSTO_FU,
AU_APTO.ID_EQUIPTO,
EQDI.ID_CCUSTO ID_CCUSTO_EQ,
COE.ID_COMPONENTE ID_COMPONENTE_EQ,
COE.FG_TP_COMPONENTE FG_TP_COMPONENTE_EQ,
COE.ID_UNIMEDIDA ID_UNIMEDIDA_EQ,
COE.ID_CONTACUSTO ID_CONTACUSTO_EQ,
SUM(AU_APTO.QT_TOTAL_JORN) QT_HR_TOTAL
FROM AU_APTO AU_APTO
JOIN AU_TIPO AU_TIPO ON (AU_APTO.ID_AU_TIPO = AU_TIPO.ID_AU_TIPO AND AU_TIPO.FG_MECANIZADO = 'S')
JOIN EQUIPTODISP EQDI ON (AU_APTO.ID_EQUIPTO = EQDI.ID_EQUIPTO)
LEFT JOIN COMPONENTE COE ON (EQDI.ID_CCUSTO = COE.ID_CCUSTO AND 'Q' = COE.FG_TP_COMPONENTE)
JOIN FUNCIONARDISP FDI ON (AU_APTO.ID_FUNCIONAR = FDI.ID_FUNCIONAR)
LEFT JOIN COMPONENTE COF ON (FDI.ID_CCUSTO = COF.ID_CCUSTO AND 'F' = COF.FG_TP_COMPONENTE)
WHERE AU_APTO.ID_UNIDADEADM = 8046868420951499909
AND AU_APTO.QT_TOTAL_JORN > 0
AND (AU_APTO.DT_OPERACAO BETWEEN '01-01-2016' AND '31-12-2016')
AND EQDI.DT_EVENTO=
(SELECT MAX(EQDI2.DT_EVENTO)
FROM EQUIPTODISP EQDI2
WHERE EQDI2.ID_EQUIPTO=AU_APTO.ID_EQUIPTO
AND EQDI2.DT_EVENTO <= AU_APTO.DT_OPERACAO )
AND FDI.DT_EVENTO =
(SELECT MAX(FDI2.DT_EVENTO)
FROM FUNCIONARDISP FDI2
WHERE FDI2.ID_FUNCIONAR=AU_APTO.ID_FUNCIONAR
AND FDI2.DT_EVENTO <= AU_APTO.DT_OPERACAO )
GROUP BY
AU_APTO.ID_UNIDADEADM,
AU_APTO.DT_OPERACAO,
AU_APTO.ID_FUNCIONAR,
FDI.ID_CCUSTO,
COF.ID_COMPONENTE,
COF.FG_TP_COMPONENTE,
COF.ID_UNIMEDIDA,
COF.ID_CONTACUSTO,
AU_APTO.ID_EQUIPTO,
EQDI.ID_CCUSTO,
COE.ID_COMPONENTE,
COE.FG_TP_COMPONENTE,
COE.ID_UNIMEDIDA,
COE.ID_CONTACUSTO
) CONSULTA
GROUP BY
CONSULTA.ID_UNIDADEADM,
CONSULTA.DT_OPERACAO,
CONSULTA.ID_FUNCIONAR,
CONSULTA.ID_CCUSTO_FU,
CONSULTA.ID_COMPONENTE_FU,
CONSULTA.FG_TP_COMPONENTE_FU,
CONSULTA.ID_UNIMEDIDA_FU,
CONSULTA.ID_CONTACUSTO_FU,
CONSULTA.ID_EQUIPTO,
CONSULTA.ID_CCUSTO_EQ,
CONSULTA.ID_COMPONENTE_EQ,
CONSULTA.FG_TP_COMPONENTE_EQ,
CONSULTA.ID_UNIMEDIDA_EQ,
CONSULTA.ID_CONTACUSTO_EQ

Validar Processamento de Custo para contemplar os Apontamentos Agrícolas.


Objetivo: Validar o Processamento de Custo contemplando os Apontamentos Agrícolas.
Menu: Processamentos > Processamento Custos > Processamento Custo
Entrada de menu: CSTP0016
Esboço da tela:



Especificação técnica:

  • Validar a execução e os valores gerados no processamento de Custo devido às alterações na Captação de Custo, visando contemplar os Apontamentos Agrícolas.

 

Alteração no Processamento de Indicadores Gerenciais (Controle de Dosagens) para contemplar "Apontamentos Agrícolas".


Objetivo: Alteração no Processamento de Indicadores Gerenciais (Controle de Dosagens) para contemplar "Apontamentos Agrícolas".
Menu: Processamentos > Processamento de Indicadores Gerenciais > Indicadores Gerenciais
Entrada de menu: CFCP0057
Esboço da tela:


Especificação Técnica:

  • Alterar o Processamento de Indicadores Gerenciais do Indicador "Controle de Dosagens" da seguinte forma:

 

  • Incluir na sql do método selecionarApontamentosInsumoPlantio presente na classe ControleDosagemDAO o trecho abaixo. Tal alteração contempla a inclusão dos Apontamentos Agrícolas.


UNION
SELECT DISTINCT
'A' TIPO,
APTO.ID_APORDSERVICO,
APTO.ID_AU_APTO ID_BOLETIM,
INS.ID_INSUMO,
INS.QT_DOSE_PROG QT_DOSE_PROG,
(CASE WHEN LC.QT_AREA > 0
THEN (INS.QT_CONS_TOTAL/LC.QT_AREA)
ELSE 0
END ) QT_DOSE_REAL,
(CASE WHEN OCO.QT_PRODUCAO > 0
THEN ((OCO.QT_COMPONENTE / OCO.QT_PRODUCAO))
ELSE 0
END) DOSE_PROG_OS
FROM AU_APTO APTO
JOIN AU_APTO_LC LC ON (APTO.ID_AU_APTO = LC.ID_AU_APTO)
JOIN AU_APTO_INS INS ON (APTO.ID_AU_APTO = INS.ID_AU_APTO)
JOIN INSUMO I ON (INS.ID_INSUMO = I.ID_INSUMO)
LEFT JOIN COMPONENTE_MAT CM ON ((LPAD( I.CD_INT_ERP, 30, '0') BETWEEN LPAD(CM.CD_MATERIAL_INI, 30, '0') AND LPAD( CM.CD_MATERIAL_FIN, 30,'0')) AND (CM.ID_UNIDADEADM = APTO.ID_UNIDADEADM ))
LEFT JOIN APORDSERVICO_CO OCO ON (APTO.ID_APORDSERVICO = OCO.ID_APORDSERVICO AND OCO.ID_COMPONENTE = CM.ID_COMPONENTE )
LEFT JOIN COMPONENTE CO ON(CM.ID_COMPONENTE= CO.ID_COMPONENTE AND CO.FG_TP_COMPONENTE = 'I')
WHERE APTO.DT_OPERACAO >= ?
AND APTO.DT_OPERACAO <= ?
AND I.ID_GRPINSUMO = ?

  • Para compor o relatório que será enviado por e-mail deverá ser alterado o método selecionarDetalhesRelatorioControleDosagem da classe ControleDosagemDAO. Neste método deverá ser incluído na sql o trecho abaixo:


UNION
SELECT AP.DT_OPERACAO, PI.TP_BOLETIM, AP.NO_BOLETIM, PI.FG_CONFORME, PI.DE_JUSTIFICATIVA
FROM PRC_INDGER PI
JOIN AU_APTO AP ON (AP.ID_AU_APTO = PI.ID_BOLETIM)
WHERE PI.ID_INDGER = ? AND PI.TP_BOLETIM = 'A' AND AP.ID_UNIDADEADM = ?

  • Atentar para que no while efetuado do resultSet se o Tipo de Apontamento for igual a "A", seja recuperado o termo de descrição "Apontamento Agrícola" para ser setado na descrição do tipo de Apontamento.

 

Alteração no Processamento de Valoração de Insumos e Materiais Consumidos para valorar os Insumos dos Apontamentos Agrícolas que não são integrados com o ERP.


Objetivo: Alteração no Processamento de Valoração de Insumos e Materiais Consumidos para valorar os Insumos dos Apontamentos Agrícolas que não são integrados com o ERP.
Menu: Processamentos > Processamento de Apontamentos > Valoração de Insumos e Materiais Consumidos
Entrada de menu: CFCP0058
Esboço da tela:


Campos Obrigatórios:

  • Tipo de Boletim: Tipos de boletins que deseja valorar (Todos, Abastecimento, Insumos, Lubrificação, Ordem de Serviço de Manutenção, Plantio, Tratamento de Sementes/Mudas e Apontamento Agrícola). Para Ordem de Serviço de Manutenção somente serão valorados os materiais que estiverem na Ordem de Serviço sem valor (porque o valor pode ter sido informado na própria Ordem de Serviço).



Especificação técnica:

  • Adicionar o descritivo em vermelho no Manual do Usuário.
  • Acrescentar na combo Tipo de Boletim a opção Apontamento Agrícola, no qual no arquivo valoracaoInsumosMateriaisView.jsp receberá a opção <option value="AU" >
  • Criar um novo passo no processamento para contemplar os Apontamentos Agrícolas. A classe que efetua o processamento é ValoracaoInsumosMateriaisDAO e o método execute.
  • Para a criação do novo passo basear-se no método execute da classe StepVInsumo, utilizando a sql abaixo:


SELECT INS.ID_AU_APTO_INS ID_DETALHE,
APTO.DT_OPERACAO,
INS.ID_INSUMO ID_MATERIAL,
MT.CD_INSUMO CD_MATERIAL
FROM AU_APTO APTO
JOIN AU_APTO_INS INS ON (APTO.ID_AU_APTO = INS.ID_AU_APTO)
JOIN DEPOSITO P ON (INS.ID_DEPOSITO = P.ID_DEPOSITO)
JOIN INSUMO MT ON (INS.ID_INSUMO = MT.ID_INSUMO)
WHERE APTO.DT_OPERACAO >= ?
AND APTO.DT_OPERACAO <= ?
AND P.FG_INT_ERP = ?
AND APTO.ID_UNIDADEADM = ?

  • Caso seja enviado o número de boletim considerar o campo AU_APTO.NO_BOLETIM na consulta acima. Por exemplo:


if (valoracao.getNumeroBoletim()!=null){
sql.append(" AND APTO.NO_BOLETIM = ? ");
}

  • Para cada registro recuperado através da consulta acima, buscar o valor do insumo Campo VL_INSUMO da tabela INSUMO_VL quando o ID_INSUMO da tabela INSUMO_VL for igual o campo ID_INSUMO da tabela AU_APTO_INS. Utilizar como base a chamada do método execute da classe StepVInsumo.
  • Caso encontre valor, atualizar os campos QT_VALOR, QT_VALOR1, QT_VALOR2, QT_VALOR3 e QT_VALOR4 da tabela AU_APTO_INS. Para isso utilizar a chamada: StepPreparaValoracao.uptate(con, valores, " AU_APTO_INS", "ID_ AU_APTO_INS", vo.getIdDetalhe()); Assim como é feito no método execute da classe StepVInsumo.
  • Caso não encontre valor, gerar log de Processo:


LogProcessoVO logProcesso = new LogProcessoVO();
logProcesso.setIdUnidadeADM(unidadeADM);
logProcesso.setDataProcesso(vo.getDataOperacao());
logProcesso.setFgProcesso( "V");
logProcesso.setFgSeveridade("E");
logProcesso.setFgTpProcesso("AU");
logProcesso.setNmObjetoPrimario( vo.getCodigoMaterial() );
logProcesso.setDeObjetoPrimario( termos.getProperty("ID_INSUMO"));
logProcesso.setObjPrimarioColunaProj("");
logProcesso.setObjPrimarioColunaSel("");
logProcesso.setObjPrimarioTabela("");
logProcesso.setObjPrimarioColunaTp("");
logProcesso.setFgTpOcorrencia("2");
logProcesso.setNmObjetoSecundario( termos.getProperty("VALOR_MATERIAL") );
logProcesso.setDeObjetoSecundario( "-");
logProcesso.setQtOcorrenciaErro( 1);

  • Ao final do processamento gerar Log de Ocorrência de Processamento:


LogProcessoVO logProcesso = new LogProcessoVO();
logProcesso.setIdUnidadeADM(unidadeADM);
logProcesso.setDataProcesso(dataOperacao);
logProcesso.setFgProcesso( "V");
logProcesso.setFgSeveridade("A");
logProcesso.setFgTpProcesso("AU");
logProcesso.setNmObjetoPrimario( "-" );
String termo = termos.getProperty("LINHAS_PROCESSADAS_X");
Object[] args = {rsCOUNT+""};
String msg = MessageFormat.format(termo, args);
logProcesso.setDeObjetoPrimario(msg);
logProcesso.setObjPrimarioColunaProj("");
logProcesso.setObjPrimarioColunaSel("");
logProcesso.setObjPrimarioTabela("");
logProcesso.setObjPrimarioColunaTp("");
logProcesso.setFgTpOcorrencia( nERROS != 0 ? "9" : "0");
logProcesso.setNmObjetoSecundario( "-");
logProcesso.setDeObjetoSecundario( termos.getProperty("APTO_AGRICOLA"));
logProcesso.setQtOcorrenciaErro( nERROS);
logProcesso.setQtOcorrenciaOK(nOK);

Alteração no Rateio de Atividades Mecanizadas para realizar o rateio ao nível de Local de Produção para os Apontamentos Agrícolas


Objetivo: Alteração no Rateio de Atividades Mecanizadas para realizar o rateio ao nível de Local de Produção para os Apontamentos Agrícolas.
Menu: Processamentos > Processamento de Apontamentos > Rateio Atividade Mecanizada por Local de Produção
Entrada de menu: CFCP0067
Esboço da tela:



Especificação técnica:

  • Para contemplar os Apontamentos Agrícolas nas Atividades Mecanizadas deverá ser alterado o método executeProcessRateio da classe RateioMecanizadaLocalDAO.

 

  • Note que existe dois blocos no método:
    • Apontamentos de Locais de Produção de Atividade Mecanizada COM ORDEM DE SERVIÇO
    • Apontamentos de Locais de Produção de Atividade Mecanizada SEM ORDEM DE SERVIÇO

 

  • O bloco 1 deverá ser replicado, porém, recuperando as informações das tabelas provenientes do Apontamento Agrícola.

 

  • Recuperar os apontamentos agrícolas de Atividades Mecanizadas nos quais não foram gerados rateio através do próprio apontamento. Para isso utilizar a sql abaixo:


SELECT MEC.ID_AU_APTO_MEC,
AP.ID_AU_APTO,
OS.ID_APORDSERVICO,
OS.NO_BOLETIM AS BOLETIM_OS,
AP.DT_OPERACAO,
MEC.QT_TOTAL_HK,
MEC.ROWVERSION
FROM AU_APTO AP
JOIN AU_APTO_MEC MEC ON (AP.ID_AU_APTO = MEC.ID_AU_APTO)
JOIN APORDSERVICO OS ON (MEC.ID_APORDSERVICO = OS.ID_APORDSERVICO)
WHERE MEC.TP_RAT <> 'APLC'
AND AP.DT_OPERACAO BETWEEN ? AND ?
AND AP.ID_UNIDADEADM = ?
Observação: Utilize o objeto do vo AtividadeMecanizadaLocalVO para setar o retorno dos dados da consulta acima.

  • Caso a consulta acima retorne registros, efetuar a limpar a tabela AU_APTO_MEC_RAT dos registros recuperados:


DELETE FROM AU_APTO_MEC_RAT WHERE ID_AU_APTO_MEC = ?

  • Alterar o método selectUPN3InApontamentosOS da classe RateioMecanizadaLocalDAO para recuperar os dados referentes dos apontamentos agrícolas. Este método efetua 3 selects distintos. Otimizar para utilizar um único select. Assim, substituir os 3 selects pelo select abaixo.


SELECT DISTINCT APLC.ID_UPNIVEL3 AS ID_UPNIVEL3, APLC.QT_AREA_EXEC AS QT_AREA_EXEC
FROM APAPLINS_LC APLC
JOIN APAPLINSUMO AP ON (APLC.ID_APAPLINSUMO = AP.ID_APAPLINSUMO)
WHERE AP.DT_OPERACAO BETWEEN ? AND ? AND AP.ID_UNIDADEADM = ?
AND AP.ID_APORDSERVICO = ?
UNION ALL
SELECT AP.ID_UPNIVEL3 AS ID_UPNIVEL3, AP.QT_AREA AS QT_AREA_EXEC
FROM APPLANTIO AP
WHERE AP.DT_OPERACAO BETWEEN ? AND ? AND AP.ID_UNIDADEADM = ?
AND AP.ID_APORDSERVICO = ?
UNION ALL
SELECT AP.ID_UPNIVEL3 AS ID_UPNIVEL3, AP.QT_AREA_EXEC AS QT_AREA_EXEC
FROM APATIVPROD AP
WHERE AP.DT_OPERACAO BETWEEN ? AND ? AND AP.ID_UNIDADEADM = ?
AND AP.ID_APORDSERVICO = ?
UNION ALL
SELECT LC.ID_UPNIVEL3 AS ID_UPNIVEL3, LC.QT_AREA AS QT_AREA_EXEC
FROM AU_APTO AP
JOIN AU_APTO_INS INS ON (AP.ID_AU_APTO = INS.ID_AU_APTO)
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
WHERE AP.DT_OPERACAO BETWEEN ? AND ? AND AP.ID_UNIDADEADM = ?
AND AP.ID_APORDSERVICO = ?
UNION ALL
SELECT PROD.ID_UPNIVEL3 AS ID_UPNIVEL3, AP.QT_PRODUCAO AS QT_AREA_EXEC
FROM AU_APTO AP
JOIN AU_APTO_PROD PROD ON (AP.ID_AU_APTO = PROD.ID_AU_APTO)
JOIN OPERACAO OP ON (PROD.ID_OPERACAO = OP.ID_OPERACAO )
WHERE AP.DT_OPERACAO BETWEEN ? AND ? AND AP.ID_UNIDADEADM = ?
AND PROD.ID_APORDSERVICO = ?
AND OP.ID_UNIMEDIDA = "PARÂMETRO HECTARE"
A SQL deverá recuperar apenas os apontamentos Agrícolas de Produção que possuem a unidade de medida Hectare. Para isso, recuperar o parâmetro das configurações gerais: Tabela: PRXPARAMETER, CONTEXT_APL = "PIMSGRAOS.UNIMEDIDA" e NAME_PARAMETER = "CD_UM_HA". Recuperado o parâmetro, substituir na sql acima o trecho destacado ("PARÂMETRO HECTARE") pelo campo ID_VALOR recuperado na consulta do parâmetro.

  • Caso tenha sido recuperado Talhões deverá ser realizado o cálculo para o rateio. O cálculo é realizado através do método calculoRateioAtividadeMecLocal da classe RateioMecanizadaLocalDAO. O cálculo deverá ser efetuado da mesma forma, porém, ao final, deverá ser inserido na tabela AU_APTO_MEC_RAT. Na sequência o método updateHorasTalhaoMaiorArea deverá ser alterado para contemplar os dados da tabela AU_APTO_MEC_RAT. Como sugestão de implementação recomenda-se alterar ambos os métodos passando um novo parâmetro indicando que será considerado os Apontamentos Agrícolas. Caso não considere os Apontamentos Agrícolas, deverá manter o processo atual, caso contrário, deverá considerar os novos métodos criados.

 

  • Em seguida atualizar o campo TP_RAT da tabela AU_APTO_MEC com o valor "OSCP" (Com Ordem de Serviço e Produção).

 

  • Caso não tenha sido recuperado talhões, deverá ser gerado o rateio para Apontamentos com Ordem de Serviço e sem Produção. Para isso recuperar os locais de produção da Ordem de Serviço (utilizar o método selectByIdHeader da classe OrdemServicoCampoLocalDAO) e o total das áreas dos locais de Produção utilizados na Ordem de Serviço (utilizar o método selectTotalAreaServicoByHeader da classe OrdemServicoCampoLocalDAO).

 

  • Caso encontre locais de produção, para cada local de produção recuperado se a área for maior que zero, atualizar a área com o valor da área multiplicado pela jornada e o resultado dividido pelo total das áreas do local de produção. Na sequência inserir o local de produção (ID_UPNIVEL3) com o resultado do cálculo efetuado (QT_TOTAL_HK) na tabela AU_APTO_MEC_RAT. (Utilizar como referência o método updateHorasTalhaoMaiorArea da classe RateioMecanizadaLocalDAO). Na sequência recuperar as horas rateadas através do select:


SELECT SUM(RAT.QT_TOTAL_HK) TOTAL
FROM AU_APTO_MAC_RAT RAT
WHERE RAT.ID_AU_APTO_MEC = ?

  • Em seguida, verificar se o resultado obtido da consulta acima é menor que a jornada. Caso seja recuperar o ID_UPNIVEL3 da tabela AU_APTO_MEC_RAT através da consulta abaixo:


SELECT RAT.ID_UPNIVEL3
FROM AU_APTO_MEC_RAT RAT
WHERE RAT.QT_TOTAL_HK =
(SELECT MAX(RAT.QT_TOTAL_HK)
FROM AU_APTO_MEC_RAT RAT
WHERE RAT.ID_AU_APTO_MEC = ?)
AND RAT.ID_AU_APTO_MEC = ?

  • Em seguida atualizar o campo QT_TOTAL_HK da tabela AU_APTO_MEC_RAT com o valor (QT_TOTAL_HK + (jornada - horasRateadas)) conforme instrução abaixo:


BigDecimal valorAdicional = jornada.subtract(horasRateadas);
UPDATE AU_APTO_MEC_RAT SET QT_TOTAL_HK = (QT_TOTAL_HK + "valorAdicional") ");
WHERE ID_AU_APTO_MEC = ? AND ID_UPNIVEL3 = ? ");

  • Na sequência, atualizar o campo TR_RAT da tabela AU_APTO_MEC com o valor "OSSP".

 

  • Finalizando o Bloco 1 - Apontamentos de Locais de Produção de Atividade Mecanizada COM ORDEM DE SERVIÇO - gerar logs de erro caso não tenha sido efetuado o rateio:


LogProcessoVO logProcesso = new LogProcessoVO();
logProcesso.setIdUnidadeADM(unidadeADM);
logProcesso.setDataProcesso(dataFinal.getTime());
logProcesso.setFgProcesso( "R");
logProcesso.setFgSeveridade("E");
logProcesso.setFgTpProcesso("RM");
logProcesso.setNmObjetoPrimario( new
Long(mecLocalVO.getIdAtividadeMecanizada()).toString());
logProcesso.setDeObjetoPrimario( termosGerais.getProperty("BOLETIM"));
logProcesso.setObjPrimarioColunaProj("NO_BOLETIM");
logProcesso.setObjPrimarioColunaSel("ID_AU_APTO=?");
logProcesso.setObjPrimarioTabela("AU_APTO");
logProcesso.setObjPrimarioColunaTp("N");
logProcesso.setFgTpOcorrencia("2");
logProcesso.setNmObjetoSecundario( termos.getProperty("RATEIO_PARA_LOCAL_PROD"));
logProcesso.setDeObjetoSecundario( "-");
logProcesso.setQtOcorrenciaErro( 1);
resultLog.add( logProcesso );
nERROS++;

  • O bloco 2 deverá ser replicado, porém, recuperando as informações das tabelas provenientes do Apontamento Agrícola.

 

  • Inicialmente recuperar os Apontamentos Agrícolas Sem Ordem de Serviço através do sql:


SELECT MEC.ID_AU_APTO_MEC,
AP.ID_AU_APTO,
MEC.ID_CCUSTO,
O.ID_OPERACAO,
AP.DT_OPERACAO,
MEC.QT_TOTAL_HK,
MEC.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
MEC.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DA_PER_SAFRA,
MEC.ID_UPNIVEL1,
UP1.CD_UPNIVEL1,
UP1.DA_UPNIVEL1,
MEC.ID_UPNIVEL2,
UP2.CD_UPNIVEL2,
UP2.DA_UPNIVEL2,
MEC.ROWVERSION,
AP.ID_EQUIPTO
FROM AU_APTO AP
JOIN AU_APTO_MEC MEC ON (AP.ID_AU_APTO = MEC.ID_AU_APTO)
JOIN CCUSTO CC ON(MEC.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO O ON(MEC.ID_OPERACAO = O.ID_OPERACAO)
LEFT JOIN SAFRA S ON(MEC.ID_SAFRA = S.ID_SAFRA)
LEFT JOIN PERIODOSAFRA PS ON(MEC.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
LEFT JOIN UPNIVEL1 UP1 ON(MEC.ID_UPNIVEL1 = UP1.ID_UPNIVEL1)
LEFT JOIN UPNIVEL2 UP2 ON(MEC.ID_UPNIVEL2 = UP2.ID_UPNIVEL2)
WHERE MEC.TP_RAT <> 'APLC'
AND MEC.ID_APORDSERVICO IS NULL
AND AP.DT_OPERACAO BETWEEN ? AND ?
AND AP.ID_UNIDADEADM = ?

  • Em seguida, para cada item recuperado no select acima, excluir os registros na tabela AU_APTO_MEC_RAT vinculados ao Apontamento Agrícola de Atividades Mecanizadas através da instrução:


DELETE FROM AU_APTO_MEC_RAT WHERE ID_AU_APTO_MEC = ?

  • Na sequência, recuperar os locais de Produção (Talhões). Para isso, alterar o método selectUPN3InApontamentosCCOP da classe RateioMecanizadaLocalDAO. Este método efetua 3 selects distintos. Acrescentar mais dois selects para considerar os Apontamentos Agrícolas. Seguem os selects:


SELECT LC.ID_AU_APTO_LC,
LC.ID_UPNIVEL3 ID_UPNIVEL3,
LC.QT_AREA QT_AREA_EXEC
FROM AU_APTO AP
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN UPNIVEL3 UP3 ON (LC.ID_UPNIVEL3 = UP3.ID_UPNIVEL3)
JOIN UPNIVEL2 UP2 ON (UP3.ID_UPNIVEL2 = UP2.ID_UPNIVEL2)
JOIN UPNIVEL1 UP1 ON (UP2.ID_UPNIVEL1 = UP1.ID_UPNIVEL1)
JOIN PERIODOSAFRA PER ON (UP3.ID_PERIODOSAFRA = PER.ID_PERIODOSAFRA)
JOIN SAFRA S ON (PER.ID_SAFRA = S.ID_SAFRA)
LEFT JOIN EQUIPTO E ON (AP.ID_EQUIPTO = E.ID_EQUIPTO)
WHERE AP.DT_OPERACAO BETWEEN ? AND ?
AND AP.ID_UNIDADEADM = ?
"filtro"
AND AP.ID_CCUSTO = ?
AND AP.ID_OPERACAO = ?
AND E.ID_EQUIPTO = ?
SELECT PROD.ID_AU_APTO_PROD,
AP.ID_UPNIVEL3 ID_UPNIVEL3,
PROD.QT_PRODUCAO QT_AREA_EXEC
FROM AU_APTO AP
JOIN AU_APTO_PROD PROD ON (AP.ID_AU_APTO = PROD.ID_AU_APTO)
JOIN UPNIVEL3 UP3 ON (PROD.ID_UPNIVEL3 = UP3.ID_UPNIVEL3)
JOIN UPNIVEL2 UP2 ON (UP3.ID_UPNIVEL2 = UP2.ID_UPNIVEL2)
JOIN UPNIVEL1 UP1 ON (UP2.ID_UPNIVEL1 = UP1.ID_UPNIVEL1)
JOIN PERIODOSAFRA PER ON (UP3.ID_PERIODOSAFRA = PER.ID_PERIODOSAFRA)
JOIN SAFRA S ON (PER.ID_SAFRA = S.ID_SAFRA)
LEFT JOIN EQUIPTO E ON (AP.ID_EQUIPTO = E.ID_EQUIPTO )
JOIN OPERACAO OP ON (PROD.ID_OPERACAO = OP.ID_OPERACAO )
WHERE AP.DT_OPERACAO BETWEEN ? AND ?
AND AP.ID_UNIDADEADM = ?
"filtro"
AND PROD.ID_CCUSTO = ?
AND E.ID_EQUIPTO = ?
AND PROD.ID_OPERACAO = ?
AND OP.ID_UNIMEDIDA = "PARÂMETRO HECTARE"

  • A SQL deverá recuperar apenas os apontamentos Agrícolas de Produção que possuem a unidade de medida Hectare. Para isso, recuperar o parâmetro das configurações gerais: Tabela: PRXPARAMETER, CONTEXT_APL = "PIMSGRAOS.UNIMEDIDA" e NAME_PARAMETER = "CD_UM_HA". Recuperado o parâmetro, substituir na sql acima o trecho destacado ("PARÂMETRO HECTARE") pelo campo ID_VALOR recuperado na consulta do parâmetro.
  • A instrução "filtro" deverá ser substituída pela variável filtro que já consta no método.
  • Caso não encontre resultados para cada um dos selects acima, deverão ser recuperados os Apontamentos que não possuem equipamento ID_EQUIPTO da tabela AU_APTO.
  • Caso tenha sido recuperado Talhões deverá ser realizado o cálculo para o rateio. O cálculo é realizado através do método calculoRateioAtividadeMecLocal da classe RateioMecanizadaLocalDAO. O cálculo deverá ser efetuado da mesma forma, porém, ao final, deverá ser inserido na tabela AU_APTO_MEC_RAT. Na sequência o método updateHorasTalhaoMaiorArea deverá ser alterado para contemplar os dados da tabela AU_APTO_MEC_RAT. Como sugestão de implementação recomenda-se alterar ambos os métodos passando um novo parâmetro indicando que será considerado os Apontamentos Agrícolas. Caso não considere os Apontamentos Agrícolas, deverá manter o processo atual, caso contrário, deverá considerar os novos métodos criados.
  • Em seguida atualizar o campo TP_RAT da tabela AU_APTO_MEC com o valor "APCP" (Sem Ordem de Serviço e com Produção).
  • Caso não encontre talhões vinculados aos apontamentos, efetuar uma nova busca nos locais de produção através do método selectUPN3ByAtividadeMecLocal da classe RateioMecanizadaLocalDAO.
  • Caso encontre Locais de Produção (Talhões) deverá ser realizado o cálculo para o rateio. O cálculo é realizado através do método calculoRateioAtividadeMecLocal da classe RateioMecanizadaLocalDAO. O cálculo deverá ser efetuado da mesma forma, porém, ao final, deverá ser inserido na tabela AU_APTO_MEC_RAT. Na sequência o método updateHorasTalhaoMaiorArea deverá ser alterado para contemplar os dados da tabela AU_APTO_MEC_RAT. Como sugestão de implementação recomenda-se alterar ambos os métodos passando um novo parâmetro indicando que será considerado os Apontamentos Agrícolas. Caso não considere os Apontamentos Agrícolas, deverá manter o processo atual, caso contrário, deverá considerar os novos métodos criados.
  • Em seguida atualizar o campo TP_RAT da tabela AU_APTO_MEC com o valor "APCD" (Sem Ordem de Serviço e Sem Produção).
  • Finalizando o Bloco 2 - Apontamentos de Locais de Produção de Atividade Mecanizada SEM ORDEM DE SERVIÇO - gerar logs de erro caso não tenha sido efetuado o rateio:


LogProcessoVO logProcesso = new LogProcessoVO();
logProcesso.setIdUnidadeADM(unidadeADM);
logProcesso.setDataProcesso(dataFinal.getTime());
logProcesso.setFgProcesso( "R");
logProcesso.setFgSeveridade("E");
logProcesso.setFgTpProcesso("RM");
logProcesso.setNmObjetoPrimario( new Long(
mecLocalVO.getIdAtividadeMecanizada()).toString());
logProcesso.setDeObjetoPrimario( termosGerais.getProperty("BOLETIM"));
logProcesso.setObjPrimarioColunaProj("NO_BOLETIM");
logProcesso.setObjPrimarioColunaSel("ID_AU_APTO=?");
logProcesso.setObjPrimarioTabela("AU_APTO ");
logProcesso.setObjPrimarioColunaTp("N");
logProcesso.setFgTpOcorrencia("2");
logProcesso.setNmObjetoSecundario( termos.getProperty("RATEIO_PARA_LOCAL_PROD"));
logProcesso.setDeObjetoSecundario( "-");
logProcesso.setQtOcorrenciaErro( 1);
resultLog.add( logProcesso );
nERROS++;

Alteração nos relatórios de Aplicação de Insumos para contemplar os Apontamentos Agrícolas.


Objetivo: Alteração nos relatórios de Aplicação de Insumos para contemplar os Apontamentos Agrícolas. Para o Tipo Sumário Geral dos formatos Consumo de Insumos e Controle de Dosagem por Local de Produção e para o Tipo Analítico.
Menu: Visões > Atividades e Recursos > Aplicação de Insumos
Entrada de menu: AERV0008
Esboço da tela:


Especificação técnica:

  • Tipo de Relatório: Sumário Geral; Formato Consumo de Insumos.
  • Deverá ser incluído na sql utilizada no método selectForReport da classe AplicacaInsumosDAO o trecho abaixo para recuperar o Consumo de Insumos dos Apontamentos Agrícolas. Note que o método subdivide as sqls que recuperam os apontamentos de Plantio e de Insumo em sql1 e sql2. Como sugestão de implementação, recomenda-se a inclusão da sql3 com o select abaixo. Para a select criada, deverão ser considerados os Filtros informados na tela:


UNION
SELECT DISTINCT 'A' ORIGEM,
DADOS.ID_AU_APTO,
DADOS.NO_BOLETIM,
DADOS.DT_OPERACAO,
DADOS.ID_PERIODOSAFRA,
DADOS.ID_CCUSTO,
DADOS.ID_OPERACAO,
DADOS.ID_BICOPULVERIZ,
DADOS.ID_SISTAPLICACAO,
DADOS.FG_COND_SOLO,
NULL,
DADOS.QT_TEMP_AR,
DADOS.QT_UMID_AR,
DADOS.QT_VEL_VENTO,
DADOS.QT_DIR_VENTO,
DADOS.QT_VAZ_PROG,
DADOS.ID_EQUIPTO,
DADOS.ROWVERSION,
DADOS.DE_OBSERVACAO,
DADOS.ID_EQUIPE,
DADOS.CD_PER_SAFRA,
DADOS.DA_PER_SAFRA,
DADOS.CD_SAFRA,
DADOS.DA_SAFRA,
DADOS.ID_SAFRA,
DADOS.CD_CCUSTO,
DADOS.DE_CCUSTO,
DADOS.CD_OPERACAO,
DADOS.DE_OPERACAO,
DADOS.CD_TP_BICO,
DADOS.DA_TP_BICO,
DADOS.CD_SIST_APLIC,
DADOS.DA_SIST_APLIC,
DADOS.CD_EQUIPTO,
DADOS.DE_MODELO,
DADOS.ID_TIPOAPLICACAO,
DADOS.CD_TP_APLIC,
DADOS.DE_TP_APLIC,
DADOS.ID_UPNIVEL1,
DADOS.CD_UPNIVEL1,
DADOS.DA_UPNIVEL1,
DADOS.ID_AU_APTO_INS ID_DETALHE,
DADOS.ID_INSUMO,
DADOS.ID_UPNIVEL3,
DADOS.ID_DEPOSITO,
DADOS.CD_INSUMO,
DADOS.DA_INSUMO,
DADOS.DE_INSUMO,
DADOS.CD_UPNIVEL3,
DADOS.ID_MODULOADM,
DADOS.QT_AREA_PROD,
DADOS.ID_UPNIVEL2,
DADOS.CD_UPNIVEL2,
DADOS.DA_UPNIVEL2,
DADOS.ID_GRPINSUMO,
DADOS.CD_GRP_INSUMO,
DADOS.DE_GRP_INSUMO,
DADOS.ID_PRINCATIVO,
DADOS.CD_PRIN_ATIVO,
DADOS.DE_PRIN_ATIVO,
DADOS.CD_DEPOSITO,
DADOS.DA_DEPOSITO,
DADOS.ID_UNIMEDIDA,
DADOS.CD_UNI_MEDIDA,
DADOS.DA_UNI_MEDIDA,
DADOS.DE_UNI_MEDIDA,
DADOS.CD_EQUIPE,
DADOS.DE_EQUIPE,
DADOS.NO_COL_MOBILIDADE,
DADOS.NO_BOL_MOBILIDADE,
DADOS.CHANGED_BY_MOBIL,
DADOS.NO_MOBILIDADE,
DADOS.ID_APORDSERVICO,
(DADOS.NO_BOLETIM) NO_BOLETIM_OS,
DADOS.CD_MOD_ADM,
DADOS.DA_MOD_ADM,
(INS.QT_DOSE_PROG * DADOS.QT_AREA) QT_DOSE_PROG,
((INS.QT_CONS_TOTAL/AREA.AREA_TOTAL)*DADOS.QT_AREA) QT_CONS_TOTAL,
(((INS.QT_CONS_TOTAL/AREA.AREA_TOTAL)*DADOS.QT_AREA)/DADOS.QT_AREA) QT_DOSE_REAL,
DADOS.QT_AREA AS QT_AREA_EXEC
FROM
(SELECT DISTINCT 'A' ORIGEM,
A.ID_AU_APTO,
A.NO_BOLETIM,
A.DT_OPERACAO,
A.ID_PERIODOSAFRA,
A.ID_CCUSTO,
A.ID_OPERACAO,
A.ID_BICOPULVERIZ,
A.ID_SISTAPLICACAO,
A.FG_COND_SOLO,
NULL,
A.QT_TEMP_AR,
A.QT_UMID_AR,
A.QT_VEL_VENTO,
A.QT_DIR_VENTO,
A.QT_VAZ_PROG,
A.ID_EQUIPTO,
A.ROWVERSION,
A.DE_OBSERVACAO,
A.ID_EQUIPE,
P.CD_PER_SAFRA,
P.DA_PER_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
S.ID_SAFRA,
C.CD_CCUSTO,
C.DE_CCUSTO,
O.CD_OPERACAO,
O.DE_OPERACAO,
B.CD_TP_BICO,
B.DA_TP_BICO,
SA.CD_SIST_APLIC,
SA.DA_SIST_APLIC,
E.CD_EQUIPTO,
M.DE_MODELO,
TP.ID_TIPOAPLICACAO,
TP.CD_TP_APLIC,
TP.DE_TP_APLIC,
UPN1.ID_UPNIVEL1,
UPN1.CD_UPNIVEL1,
UPN1.DA_UPNIVEL1,
AP_INS.ID_AU_APTO_INS,
AP_INS.ID_INSUMO,
LC.ID_UPNIVEL3,
LC.QT_AREA,
AP_INS.ID_DEPOSITO,
INS.CD_INSUMO,
INS.DA_INSUMO,
INS.DE_INSUMO,
UPN3.CD_UPNIVEL3,
UPN3.ID_MODULOADM,
UPN3.QT_AREA_PROD,
UPN3.ID_UPNIVEL2,
UPN2.CD_UPNIVEL2,
UPN2.DA_UPNIVEL2,
GI.ID_GRPINSUMO,
GI.CD_GRP_INSUMO,
GI.DE_GRP_INSUMO,
PA.ID_PRINCATIVO,
PA.CD_PRIN_ATIVO,
PA.DE_PRIN_ATIVO,
D.CD_DEPOSITO,
D.DA_DEPOSITO,
UM.ID_UNIMEDIDA,
UM.CD_UNI_MEDIDA,
UM.DA_UNI_MEDIDA,
UM.DE_UNI_MEDIDA,
EP.CD_EQUIPE,
EP.DE_EQUIPE,
A.NO_COL_MOBILIDADE,
A.NO_BOL_MOBILIDADE,
A.CHANGED_BY_MOBIL,
A.NO_MOBILIDADE,
A.ID_APORDSERVICO,
(APOS.NO_BOLETIM) NO_BOLETIM_OS,
MAD.CD_MOD_ADM,
MAD.DA_MOD_ADM
FROM AU_APTO A
JOIN AU_APTO_LC LC ON (LC.ID_AU_APTO = A.ID_AU_APTO)
JOIN AU_APTO_INS AP_INS ON (AP_INS.ID_AU_APTO = A.ID_AU_APTO)
JOIN PERIODOSAFRA P ON (A.ID_PERIODOSAFRA = P.ID_PERIODOSAFRA)
JOIN SAFRA S ON (P.ID_SAFRA = S.ID_SAFRA)
JOIN CCUSTO C ON (A.ID_CCUSTO = C.ID_CCUSTO)
JOIN OPERACAO O ON (A.ID_OPERACAO = O.ID_OPERACAO)
LEFT JOIN UPNIVEL3 UPN3 ON (LC.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
LEFT JOIN UPNIVEL2 UPN2 ON (UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
LEFT JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
JOIN INSUMO INS ON (AP_INS.ID_INSUMO = INS.ID_INSUMO)
LEFT JOIN UNIMEDIDA UM ON (UM.ID_UNIMEDIDA = INS.ID_UNIMEDIDA)
LEFT JOIN BICOPULVERIZ B ON (A.ID_BICOPULVERIZ = B.ID_BICOPULVERIZ)
LEFT JOIN SISTAPLICACAO SA ON (A.ID_SISTAPLICACAO = SA.ID_SISTAPLICACAO)
LEFT JOIN EQUIPTO E ON (A.ID_EQUIPTO = E.ID_EQUIPTO)
LEFT JOIN MODELO M ON (E.ID_MODELO = M.ID_MODELO)
LEFT JOIN DEPOSITO D ON (AP_INS.ID_DEPOSITO = D.ID_DEPOSITO)
LEFT JOIN GRPINSUMO GI ON (INS.ID_GRPINSUMO = GI.ID_GRPINSUMO)
LEFT JOIN PRINCATIVO PA ON (INS.ID_PRINCATIVO = PA.ID_PRINCATIVO)
LEFT JOIN EQUIPE EP ON (A.ID_EQUIPE = EP.ID_EQUIPE)
LEFT JOIN UNIDADEADM UNI ON ( A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
LEFT JOIN TIPOAPLICACAO TP ON ( A.ID_TIPOAPLICACAO = TP.ID_TIPOAPLICACAO )
LEFT JOIN APORDSERVICO APOS ON( APOS.ID_APORDSERVICO = A.ID_APORDSERVICO )
LEFT JOIN MODULOADM MAD ON (MAD.ID_MODULOADM = UPN3.ID_MODULOADM)
WHERE A.ID_UNIDADEADM = 1
AND A.DT_OPERACAO BETWEEN '01-01-2016' AND '01-01-2016'
AND LC.QT_AREA > 0
)DADOS,
(
SELECT
AP.ID_AU_APTO,
SUM(LC.QT_AREA) AREA_TOTAL
FROM AU_APTO_LC LC
JOIN AU_APTO AP ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
WHERE AP.ID_UNIDADEADM = 1
AND AP.DT_OPERACAO BETWEEN '01-01-2016' AND '01-01-2016'
--FILTRO
GROUP BY AP.ID_AU_APTO
)AREA,
(SELECT
AP.ID_AU_APTO,
AP_INS.ID_INSUMO,
INS.CD_INSUMO,
INS.DE_INSUMO,
INS.FG_SEMENTE,
AP_INS.QT_DOSE_PROG,
AP_INS.QT_CONS_TOTAL
FROM AU_APTO_INS AP_INS
JOIN AU_APTO AP ON (AP.ID_AU_APTO = AP_INS.ID_AU_APTO)
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN INSUMO INS ON (AP_INS.ID_INSUMO = INS.ID_INSUMO)
WHERE AP.ID_UNIDADEADM = 1
AND AP.DT_OPERACAO BETWEEN '01-01-2016' AND '01-01-2016'
--FILTRO
)INS
WHERE DADOS.ID_AU_APTO = AREA.ID_AU_APTO
AND AREA.ID_AU_APTO = INS.ID_AU_APTO
AND DADOS.ID_AU_APTO = INS.ID_AU_APTO

  • Tipo de Relatório: Sumário Geral; Formato: Controle de Dosagem por Local de Produção.
  • Deverá ser incluído na consulta efetuada no método selectForReportControleDosagemLocalProducao da classe AplicacaoInsumosDAO o sql abaixo para recuperar os apontamentos agrícolas efetuados. Note que o método possui 2 selects distintos. O primeiro recuperando os apontamentos de Insumo e o segundo os apontamentos de plantio. Deverá ser incluído um terceiro sql com o conteúdo abaixo.


UNION
SELECT ORIGEM ,
ID_PERIODOSAFRA,
ID_CCUSTO,
ID_OPERACAO,
CD_PER_SAFRA,
DA_PER_SAFRA,
CD_SAFRA,
DA_SAFRA,
ID_SAFRA,
CD_CCUSTO,
DE_CCUSTO,
CD_OPERACAO,
DE_OPERACAO,
ID_UPNIVEL1,
CD_UPNIVEL1,
DA_UPNIVEL1,
ID_INSUMO,
ID_UPNIVEL3,
CD_INSUMO,
DA_INSUMO,
DE_INSUMO,
CD_UPNIVEL3,
ID_MODULOADM,
QT_AREA_PROD,
ID_UPNIVEL2,
CD_UPNIVEL2,
DA_UPNIVEL2,
ID_GRPINSUMO,
CD_GRP_INSUMO,
DE_GRP_INSUMO,
ID_PRINCATIVO,
CD_PRIN_ATIVO,
DE_PRIN_ATIVO,
ID_UNIMEDIDA,
CD_UNI_MEDIDA,
DA_UNI_MEDIDA,
DE_UNI_MEDIDA,
(CASE WHEN (SUM(AREA_TOTAL) > 0) THEN (SUM(QT_VAZ_PROG * AREA_TOTAL) / SUM(AREA_TOTAL)) ELSE (0) END) AS QT_VAZ_PROG,
(CASE WHEN (SUM(AREA_TOTAL) > 0) THEN (SUM(QT_DOSE_PROG * AREA_TOTAL) / SUM(AREA_TOTAL)) ELSE (0) END) AS QT_DOSE_PROG,
SUM(QT_CONS_TOTAL) AS QT_CONS_TOTAL, SUM(QT_AREA_EXEC) AS QT_AREA_EXEC,
Caso o parâmetro "Informar Volume Total Aplicado" da tabela PRXPARAMETER, com os campos CONTEXT_APT = "GEOAGRO.APTATIVINS" e NAME_PARAMETER = "FG_VOLUME" esteja com o Valor Sim (S) adicionar na consulta o trecho:
(CASE WHEN (SUM(AREA_TOTAL) > 0)
THEN (SUM(VAZAO_REAL * AREA_TOTAL) /SUM(AREA_TOTAL))
ELSE (0) END) AS VAZAO_REAL ";
Caso o parâmetro esteja com o valor Não(N) adicionar na consulta o trecho:
0 AS VAZAO_REAL
FROM (SELECT 'A' AS ORIGEM ,
A.ID_AU_APTO,
A.ID_PERIODOSAFRA,
A.ID_CCUSTO,
A.ID_OPERACAO,
P.CD_PER_SAFRA,
P.DA_PER_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
S.ID_SAFRA,
C.CD_CCUSTO,
C.DE_CCUSTO,
O.CD_OPERACAO,
O.DE_OPERACAO,
UPN1.ID_UPNIVEL1,
UPN1.CD_UPNIVEL1,
UPN1.DA_UPNIVEL1,
AP_INS.ID_INSUMO,
LC.ID_UPNIVEL3,
INS.CD_INSUMO,
INS.DA_INSUMO,
INS.DE_INSUMO,
UPN3.CD_UPNIVEL3,
UPN3.ID_MODULOADM,
UPN3.QT_AREA_PROD,
UPN3.ID_UPNIVEL2,
UPN2.CD_UPNIVEL2,
UPN2.DA_UPNIVEL2,
GI.ID_GRPINSUMO,
GI.CD_GRP_INSUMO,
GI.DE_GRP_INSUMO,
PA.ID_PRINCATIVO,
PA.CD_PRIN_ATIVO,
PA.DE_PRIN_ATIVO,
UM.ID_UNIMEDIDA,
UM.CD_UNI_MEDIDA,
UM.DA_UNI_MEDIDA,
UM.DE_UNI_MEDIDA,
NVL(A.QT_VAZ_PROG, 0) AS QT_VAZ_PROG,
NVL(AP_INS.QT_DOSE_PROG, 0) AS QT_DOSE_PROG,
NVL(AP_INS.QT_CONS_TOTAL, 0) AS QT_CONS_TOTAL,
NVL(LC.QT_AREA, 0) AS QT_AREA_EXEC,
SUM(LC.QT_AREA) AREA_TOTAL,
Caso o parâmetro "Informar Volume Total Aplicado" da tabela PRXPARAMETER, com os campos CONTEXT_APT = "GEOAGRO.APTATIVINS" e NAME_PARAMETER = "FG_VOLUME" esteja com o Valor Sim (S) adicionar na consulta o trecho:
(CASE WHEN (SUM(LC.QT_AREA) > 0)
THEN (AVG(NVL(A.VL_VOLUME, 0))/SUM(LC.QT_AREA))
ELSE (0) END ) AS VAZAO_REAL,
AVG(NVL(A.VL_VOLUME, 0)) AS VL_VOLUME
Caso esteja com o valor Não (N) acrescentar o trecho:
0 AS VAZAO_REAL, 0 AS VL_VOLUME
FROM AU_APTO A
JOIN AU_APTO_INS AP_INS ON ( AP_INS.ID_AU_APTO = A.ID_AU_APTO )
JOIN AU_APTO_LC LC ON (LC.ID_AU_APTO = A.ID_AU_APTO)
JOIN PERIODOSAFRA P ON (A.ID_PERIODOSAFRA = P.ID_PERIODOSAFRA)
JOIN SAFRA S ON (P.ID_SAFRA = S.ID_SAFRA)
JOIN CCUSTO C ON (A.ID_CCUSTO = C.ID_CCUSTO)
JOIN OPERACAO O ON (A.ID_OPERACAO = O.ID_OPERACAO)
JOIN UPNIVEL3 UPN3 ON (LC.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
JOIN UPNIVEL2 UPN2 ON (UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
JOIN INSUMO INS ON (AP_INS.ID_INSUMO = INS.ID_INSUMO)
JOIN UNIMEDIDA UM ON (UM.ID_UNIMEDIDA = INS.ID_UNIMEDIDA)
LEFT JOIN GRPINSUMO GI ON (INS.ID_GRPINSUMO = GI.ID_GRPINSUMO)
LEFT JOIN PRINCATIVO PA ON (INS.ID_PRINCATIVO = PA.ID_PRINCATIVO)
LEFT JOIN EQUIPE EP ON (A.ID_EQUIPE = EP.ID_EQUIPE)
LEFT JOIN APORDSERVICO APOS ON( APOS.ID_APORDSERVICO = A.ID_APORDSERVICO )
LEFT JOIN UNIDADEADM UNI ON ( A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
WHERE A.ID_UNIDADEADM = ?
AND A.DT_OPERACAO BETWEEN ? AND ?

  • Neste ponto da consulta, aplicar os filtros enviados pela tela para a consulta.


GROUP BY A.ID_AU_APTO,
A.ID_PERIODOSAFRA,
A.ID_CCUSTO,
A.ID_OPERACAO,
P.CD_PER_SAFRA,
P.DA_PER_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
S.ID_SAFRA,
C.CD_CCUSTO,
C.DE_CCUSTO,
O.CD_OPERACAO,
O.DE_OPERACAO,
UPN1.ID_UPNIVEL1,
UPN1.CD_UPNIVEL1,
UPN1.DA_UPNIVEL1,
AP_INS.ID_INSUMO,
LC.ID_UPNIVEL3,
INS.CD_INSUMO,
INS.DA_INSUMO,
INS.DE_INSUMO,
UPN3.CD_UPNIVEL3,
UPN3.ID_MODULOADM,
UPN3.QT_AREA_PROD,
UPN3.ID_UPNIVEL2,
UPN2.CD_UPNIVEL2,
UPN2.DA_UPNIVEL2,
GI.ID_GRPINSUMO,
GI.CD_GRP_INSUMO,
GI.DE_GRP_INSUMO,
PA.ID_PRINCATIVO,
PA.CD_PRIN_ATIVO,
PA.DE_PRIN_ATIVO,
UM.ID_UNIMEDIDA,
UM.CD_UNI_MEDIDA,
UM.DA_UNI_MEDIDA,
UM.DE_UNI_MEDIDA,
NVL(A.QT_VAZ_PROG, 0),
NVL(AP_INS.QT_DOSE_PROG, 0),
NVL(AP_INS.QT_CONS_TOTAL, 0),
NVL(LC.QT_AREA, 0)
Caso o parâmetro "Informar Volume Total Aplicado" da tabela PRXPARAMETER, com os campos CONTEXT_APT = "GEOAGRO.APTATIVINS" e NAME_PARAMETER = "FG_VOLUME" esteja com o Valor Sim (S) adicionar na consulta o trecho:
HAVING SUM(LC.QT_AREA) >0
) CONSULTA_AU_APTO
GROUP BY ORIGEM, ID_PERIODOSAFRA, ID_CCUSTO, ID_OPERACAO,
CD_PER_SAFRA, DA_PER_SAFRA, CD_SAFRA, DA_SAFRA, ID_SAFRA,
CD_CCUSTO, DE_CCUSTO, CD_OPERACAO, DE_OPERACAO, ID_UPNIVEL1,
CD_UPNIVEL1, DA_UPNIVEL1, ID_INSUMO, ID_UPNIVEL3, CD_INSUMO,
DA_INSUMO, DE_INSUMO, CD_UPNIVEL3, ID_MODULOADM, QT_AREA_PROD,
ID_UPNIVEL2, CD_UPNIVEL2, DA_UPNIVEL2, ID_GRPINSUMO, CD_GRP_INSUMO,
DE_GRP_INSUMO, ID_PRINCATIVO, CD_PRIN_ATIVO, DE_PRIN_ATIVO,
ID_UNIMEDIDA, CD_UNI_MEDIDA, DA_UNI_MEDIDA, DE_UNI_MEDIDA

  • Tipo de Relatório: Analítico.
  • O relatório de Aplicação de Insumos do tipo Analítico utiliza o método selectByFilter da Classe AplicacaoInsumosDAO. Para não haver impacto da recuperação dos registros do filtro da tela de Apontamento de Aplicação de Insumos, recomenda-se criar um novo serviço para ser chamado para a composição do relatório. Este novo serviço deverá possuir como consulta a sql abaixo. (Utilizar o método mencionada como base para o desenvolvimento deste novo serviço):


SELECT
ID_APTO,
NO_BOLETIM,
DT_OPERACAO,
ID_PERIODOSAFRA,
ID_CCUSTO,
ID_OPERACAO,
ID_BICOPULVERIZ,
ID_SISTAPLICACAO,
CD_PER_SAFRA,
DA_PER_SAFRA,
CD_SAFRA,
DA_SAFRA,
ID_SAFRA,
CD_CCUSTO,
DE_CCUSTO,
CD_OPERACAO,
DE_OPERACAO,
CD_TP_BICO,
DA_TP_BICO,
CD_SIST_APLIC,
DA_SIST_APLIC,
ID_UPNIVEL1,
CD_UPNIVEL1,
DA_UPNIVEL1
FROM (
SELECT DISTINCT A.ID_APAPLINSUMO ID_APTO,
A.NO_BOLETIM,
A.DT_OPERACAO,
A.ID_PERIODOSAFRA,
A.ID_CCUSTO,
A.ID_OPERACAO,
A.ID_BICOPULVERIZ,
A.ID_SISTAPLICACAO,
P.CD_PER_SAFRA,
P.DA_PER_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
S.ID_SAFRA,
C.CD_CCUSTO,
C.DE_CCUSTO,
O.CD_OPERACAO,
O.DE_OPERACAO,
B.CD_TP_BICO,
B.DA_TP_BICO,
SA.CD_SIST_APLIC,
SA.DA_SIST_APLIC,
UPN1.ID_UPNIVEL1,
UPN1.CD_UPNIVEL1,
UPN1.DA_UPNIVEL1
FROM APAPLINSUMO A
JOIN PERIODOSAFRA P ON (A.ID_PERIODOSAFRA = P.ID_PERIODOSAFRA)
JOIN SAFRA S ON (P.ID_SAFRA = S.ID_SAFRA)
JOIN CCUSTO C ON (A.ID_CCUSTO = C.ID_CCUSTO)
JOIN OPERACAO O ON (A.ID_OPERACAO = O.ID_OPERACAO)
LEFT OUTER JOIN TIPOAPLICACAO TA ON (TA.ID_TIPOAPLICACAO = A.ID_TIPOAPLICACAO)
LEFT JOIN BICOPULVERIZ B ON (A.ID_BICOPULVERIZ = B.ID_BICOPULVERIZ)
LEFT JOIN SISTAPLICACAO SA ON (A.ID_SISTAPLICACAO = SA.ID_SISTAPLICACAO)
LEFT JOIN EQUIPE EQUIP ON (A.ID_EQUIPE = EQUIP.ID_EQUIPE)
LEFT JOIN APAPLINS_INSLC AR ON ( AR.ID_APAPLINSUMO = A.ID_APAPLINSUMO )
LEFT JOIN APAPLINS_LC A_LC ON ( A_LC.ID_APAPLINSUMO = A.ID_APAPLINSUMO )
LEFT JOIN UPNIVEL3 UPN3 ON (AR.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3 OR A_LC.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
LEFT JOIN UPNIVEL2 UPN2 ON (UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
LEFT JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
LEFT JOIN APORDSERVICO APOS ON( APOS.ID_APORDSERVICO = A.ID_APORDSERVICO )
LEFT JOIN INSUMO INS ON( AR.ID_INSUMO = INS.ID_INSUMO )
LEFT JOIN UNIDADEADM UNI ON ( A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
– filtros
UNION ALL
SELECT DISTINCT A.ID_AU_APTO ID_APTO,
A.NO_BOLETIM,
A.DT_OPERACAO,
A.ID_PERIODOSAFRA,
A.ID_CCUSTO,
A.ID_OPERACAO,
A.ID_BICOPULVERIZ,
A.ID_SISTAPLICACAO,
P.CD_PER_SAFRA,
P.DA_PER_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
S.ID_SAFRA,
C.CD_CCUSTO,
C.DE_CCUSTO,
O.CD_OPERACAO,
O.DE_OPERACAO,
B.CD_TP_BICO,
B.DA_TP_BICO,
SA.CD_SIST_APLIC,
SA.DA_SIST_APLIC,
UPN1.ID_UPNIVEL1,
UPN1.CD_UPNIVEL1,
UPN1.DA_UPNIVEL1
FROM AU_APTO A
JOIN AU_TIPO TP ON (A.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_INSUMO = 'S')
JOIN PERIODOSAFRA P ON (A.ID_PERIODOSAFRA = P.ID_PERIODOSAFRA)
JOIN SAFRA S ON (P.ID_SAFRA = S.ID_SAFRA)
JOIN CCUSTO C ON (A.ID_CCUSTO = C.ID_CCUSTO)
JOIN OPERACAO O ON (A.ID_OPERACAO = O.ID_OPERACAO)
LEFT OUTER JOIN TIPOAPLICACAO TA ON (TA.ID_TIPOAPLICACAO = A.ID_TIPOAPLICACAO)
LEFT JOIN BICOPULVERIZ B ON (A.ID_BICOPULVERIZ = B.ID_BICOPULVERIZ)
LEFT JOIN SISTAPLICACAO SA ON (A.ID_SISTAPLICACAO = SA.ID_SISTAPLICACAO)
LEFT JOIN EQUIPE EQUIP ON (A.ID_EQUIPE = EQUIP.ID_EQUIPE)
LEFT JOIN AU_APTO_INS AR ON ( A.ID_AU_APTO = AR.ID_AU_APTO)
LEFT JOIN AU_APTO_LC LC ON ( LC.ID_AU_APTO = A.ID_AU_APTO )
LEFT JOIN UPNIVEL3 UPN3 ON (A.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3 OR LC.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
LEFT JOIN UPNIVEL2 UPN2 ON (UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
LEFT JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
LEFT JOIN APORDSERVICO APOS ON( APOS.ID_APORDSERVICO = A.ID_APORDSERVICO )
LEFT JOIN INSUMO INS ON( AR.ID_INSUMO = INS.ID_INSUMO )
LEFT JOIN UNIDADEADM UNI ON ( A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
– filtros
) CONSULTA
ORDER BY NO_BOLETIM, DT_OPERACAO, CD_UPNIVEL1

  • Na consulta acima, onde vê-se a marcação – filtros deverá ser incluso os filtros provenientes da tela.
  • Na sequência, para cada registro recuperado na consulta acima, recuperar os recursos utilizado para os apontamentos. Atualmente, o sistema utiliza o método selectInsumosRecursos da classe AplicacaoInsumosDAO. Para não impactar nas demais telas do sistema, deverá ser criado um novo método que além de recuperar os registros dos Apontamentos de Aplicação de Insumos, deverá recuperar os Apontamentos Agrícolas. Para isso, utilizar a sql abaixo para a criação do novo método:


SELECT ID_AP_DETALHE,
ID_AP,
ID_INSUMO,
ID_UPNIVEL3,
ID_DEPOSITO,
QT_DOSE_PROG,
QT_CONS_TOTAL,
QT_AREA_EXEC,
QT_DOSE_REAL,
ROWVERSION,
NO_BOLETIM,
CD_INSUMO,
DA_INSUMO,
DE_INSUMO,
CD_UPNIVEL3,
ID_UPNIVEL2,
CD_UPNIVEL2,
DA_UPNIVEL2,
CD_DEPOSITO,
DA_DEPOSITO,
ID_UNIMEDIDA,
CD_UNI_MEDIDA,
DA_UNI_MEDIDA,
DE_UNI_MEDIDA
FROM (
SELECT AR.ID_APAPLINS_INSLC ID_AP_DETALHE,
AR.ID_APAPLINSUMO ID_AP,
AR.ID_INSUMO,
AR.ID_UPNIVEL3,
AR.ID_DEPOSITO,
AR.QT_DOSE_PROG,
AR.QT_CONS_TOTAL,
AR.QT_AREA_EXEC,
AR.QT_DOSE_REAL,
AR.ROWVERSION,
A.NO_BOLETIM,
I.CD_INSUMO,
I.DA_INSUMO,
I.DE_INSUMO,
UPN3.CD_UPNIVEL3,
UPN3.ID_UPNIVEL2,
UPN2.CD_UPNIVEL2,
UPN2.DA_UPNIVEL2,
D.CD_DEPOSITO,
D.DA_DEPOSITO,
UM.ID_UNIMEDIDA,
UM.CD_UNI_MEDIDA,
UM.DA_UNI_MEDIDA,
UM.DE_UNI_MEDIDA
FROM APAPLINS_INSLC AR
JOIN APAPLINSUMO A ON (AR.ID_APAPLINSUMO = A.ID_APAPLINSUMO)
JOIN INSUMO I ON (AR.ID_INSUMO = I.ID_INSUMO)
JOIN UPNIVEL3 UPN3 ON (AR.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
JOIN UPNIVEL2 UPN2 ON (UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
JOIN UNIMEDIDA UM ON (UM.ID_UNIMEDIDA = I.ID_UNIMEDIDA)
LEFT JOIN DEPOSITO D ON (AR.ID_DEPOSITO = D.ID_DEPOSITO)
WHERE AR.ID_APAPLINSUMO = ?
if (map.get("FILTRO_TIPOAPLICACAO_ID") != null) {
sql += " AND NVL(A.ID_TIPOAPLICACAO, AR.ID_TIPOAPLICACAO) = "
+ new Long(map.get("FILTRO_TIPOAPLICACAO_ID").getValue().toString()).longValue() + " ";
}
UNION ALL
SELECT AR.ID_AU_APTO_INS ID_AP_DETALHE,
A.ID_AU_APTO ID_AP,
AR.ID_INSUMO,
LC.ID_UPNIVEL3,
AR.ID_DEPOSITO,
AR.QT_DOSE_PROG,
AR.QT_CONS_TOTAL,
LC.QT_AREA QT_AREA_EXEC,
(CASE WHEN LC.QT_AREA > 0
THEN (AR.QT_CONS_TOTAL/LC.QT_AREA)
ELSE 0
END ) QT_DOSE_REAL,
AR.ROWVERSION,
A.NO_BOLETIM,
I.CD_INSUMO,
I.DA_INSUMO,
I.DE_INSUMO,
UPN3.CD_UPNIVEL3,
UPN3.ID_UPNIVEL2,
UPN2.CD_UPNIVEL2,
UPN2.DA_UPNIVEL2,
D.CD_DEPOSITO,
D.DA_DEPOSITO,
UM.ID_UNIMEDIDA,
UM.CD_UNI_MEDIDA,
UM.DA_UNI_MEDIDA,
UM.DE_UNI_MEDIDA
FROM AU_APTO A
JOIN AU_APTO_LC LC ON (A.ID_AU_APTO = LC.ID_AU_APTO)
JOIN AU_APTO_INS AR ON (A.ID_AU_APTO = AR.ID_AU_APTO)
JOIN INSUMO I ON (AR.ID_INSUMO = I.ID_INSUMO)
JOIN UPNIVEL3 UPN3 ON (LC.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
JOIN UPNIVEL2 UPN2 ON (UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
JOIN UNIMEDIDA UM ON (UM.ID_UNIMEDIDA = I.ID_UNIMEDIDA)
LEFT JOIN DEPOSITO D ON (AR.ID_DEPOSITO = D.ID_DEPOSITO)
WHERE A.ID_AU_APTO = ?
if (map.get("FILTRO_TIPOAPLICACAO_ID") != null) {
sql += " AND A.ID_TIPOAPLICACAO = "
+ new Long(map.get("FILTRO_TIPOAPLICACAO_ID").getValue().toString()).longValue() + " ";
}
)CONSULTA
ORDER BY NO_BOLETIM, CD_UPNIVEL3, CD_INSUMO

Alteração nos relatórios de Atividades Manuais para contemplar os Apontamentos Agrícolas.


Objetivo: Alteração nos relatórios de Atividades Manuais do tipo Analítico e Sumário Geral para contemplar os Apontamentos Agrícolas.
Menu: Visões > Atividades e Recursos > Atividades Manuais
Entrada de menu: AERV0009
Esboço da tela:


Especificação técnica:

  • Alterar os relatórios do Tipo Analítico e Sumário Geral dos Apontamentos de Atividades Manuais para que contemples os Apontamentos Agrícolas da seguinte maneira:

 

  • Tipo de Relatório Sumário Geral:
  • Alterar o método selectForReport da classe AtividadeManualDAO para contemplar os Apontamentos Agrícolas. Para isso, substituir a sql do método pela sql abaixo:


SELECT ID_APTO,
NO_BOLETIM ,
DT_OPERACAO,
ID_PERIODOSAFRA,
ID_EQUIPE,
ID_FUNCIONAR,
ID_CCUSTO,
ID_OPERACAO,
ID_UPNIVEL3,
QT_RECURSO,
HR_INI_JORN,
HR_FIM_JORN,
QT_TOTAL_JORN,
CD_FUNCIONAR,
DE_FUNCIONAR,
DE_CARGO,
CD_CCUSTO,
DE_CCUSTO,
ID_CCUSTO_DISP_FUN,
CD_CCUSTO_DISP_FUN,
DE_CCUSTO_DISP_FUN,
CD_OPERACAO,
DE_OPERACAO,
CD_PER_SAFRA,
DA_PER_SAFRA,
ID_SAFRA,
CD_SAFRA,
DA_SAFRA,
CD_EQUIPE,
DE_EQUIPE,
CD_UPNIVEL3,
ID_UPNIVEL2,
CD_UPNIVEL2,
DA_UPNIVEL2,
ID_UPNIVEL1,
CD_UPNIVEL1,
DA_UPNIVEL1,
ID_UNIDADEADM,
CD_UNI_ADM,
DA_UNI_ADM,
ID_APORDSERVICO,
NO_BOLETIM NO_OS,
QT_PRODUCAO,
ID_PRESTSERV,
CD_PRESTSERV,
DE_PRESTSERV,
ROWVERSION,
NO_COL_MOBILIDADE,
NO_BOL_MOBILIDADE,
CHANGED_BY_MOBIL,
NO_MOBILIDADE
FROM (
SELECT A.ID_APATIVMAN,
A.NO_BOLETIM ,
A.DT_OPERACAO,
A.ID_PERIODOSAFRA,
A.ID_EQUIPE,
A.ID_FUNCIONAR,
A.ID_CCUSTO,
A.ID_OPERACAO,
A.ID_UPNIVEL3,
A.QT_RECURSO,
A.HR_INI_JORN,
A.HR_FIM_JORN,
A.QT_TOTAL_JORN,
F.CD_FUNCIONAR,
F.DE_FUNCIONAR,
CA.DE_CARGO,
C.CD_CCUSTO,
C.DE_CCUSTO,
CCDISP.ID_CCUSTO AS ID_CCUSTO_DISP_FUN,
CCDISP.CD_CCUSTO AS CD_CCUSTO_DISP_FUN,
CCDISP.DE_CCUSTO AS DE_CCUSTO_DISP_FUN,
O.CD_OPERACAO,
O.DE_OPERACAO,
P.CD_PER_SAFRA,
P.DA_PER_SAFRA,
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
E.CD_EQUIPE,
E.DE_EQUIPE,
U3.CD_UPNIVEL3,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DA_UPNIVEL2,
U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DA_UPNIVEL1,
UNI.ID_UNIDADEADM,
UNI.CD_UNI_ADM,
UNI.DA_UNI_ADM,
OS.ID_APORDSERVICO,
OS.NO_BOLETIM NO_OS,
A.QT_PRODUCAO,
PSV.ID_PRESTSERV,
PSV.CD_PRESTSERV,
PSV.DE_PRESTSERV,
A.ROWVERSION,
A.NO_COL_MOBILIDADE,
A.NO_BOL_MOBILIDADE,
A.CHANGED_BY_MOBIL,
A.NO_MOBILIDADE
FROM APATIVMAN A
JOIN FUNCIONAR F ON (A.ID_FUNCIONAR = F.ID_FUNCIONAR)
JOIN CCUSTO C ON (A.ID_CCUSTO = C.ID_CCUSTO)
JOIN OPERACAO O ON (A.ID_OPERACAO = O.ID_OPERACAO)
JOIN PERIODOSAFRA P ON (A.ID_PERIODOSAFRA = P.ID_PERIODOSAFRA)
JOIN SAFRA S ON (P.ID_SAFRA = S.ID_SAFRA)
LEFT JOIN EQUIPE E ON (A.ID_EQUIPE = E.ID_EQUIPE)
LEFT JOIN FUNCIONARDISP FD ON ( F.ID_FUNCIONAR = FD.ID_FUNCIONAR )
LEFT JOIN CARGO CA ON ( FD.ID_CARGO = CA.ID_CARGO )
JOIN UPNIVEL3 U3 ON (A.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
JOIN UPNIVEL1 U1 ON (U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
LEFT JOIN UNIDADEADM UNI ON ( A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
LEFT JOIN CCUSTO CCDISP ON ( CCDISP.ID_CCUSTO = FD.ID_CCUSTO )
LEFT JOIN APORDSERVICO OS ON (A.ID_APORDSERVICO = OS.ID_APORDSERVICO)
LEFT JOIN PRESTSERV PSV ON (PSV.ID_PRESTSERV = FD.ID_PRESTSERV)
--filtros
AND FD.DT_EVENTO=(select max(FDI2.DT_EVENTO)
from FUNCIONARDISP FDI2
where FDI2.ID_FUNCIONAR = F.ID_FUNCIONAR
AND FDI2.DT_EVENTO <= A.DT_OPERACAO)
--caso o filtro prestador de serviço seja informado acrescentar o trecho abaixo
AND FD.DT_EVENTO=(SELECT MAX(FDI.DT_EVENTO)
FROM FUNCIONARDISP FDI
WHERE FDI.ID_FUNCIONAR = A.ID_FUNCIONAR
AND FDI.DT_EVENTO <= A.DT_OPERACAO) AND FD.ID_PRESTSERV = ?

UNION ALL
SELECT A.ID_AU_APTO ID_APTO,
A.NO_BOLETIM ,
A.DT_OPERACAO,
A.ID_PERIODOSAFRA,
A.ID_EQUIPE,
MAN.ID_FUNCIONAR,
MAN.ID_CCUSTO,
MAN.ID_OPERACAO,
MAN.ID_UPNIVEL3,
MAN.QT_RECURSO,
MAN.HR_INI_JORN,
MAN.HR_FIM_JORN,
MAN.QT_TOTAL_JORN,
F.CD_FUNCIONAR,
F.DE_FUNCIONAR,
CA.DE_CARGO,
C.CD_CCUSTO,
C.DE_CCUSTO,
CCDISP.ID_CCUSTO AS ID_CCUSTO_DISP_FUN,
CCDISP.CD_CCUSTO AS CD_CCUSTO_DISP_FUN,
CCDISP.DE_CCUSTO AS DE_CCUSTO_DISP_FUN,
O.CD_OPERACAO,
O.DE_OPERACAO,
P.CD_PER_SAFRA,
P.DA_PER_SAFRA,
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
E.CD_EQUIPE,
E.DE_EQUIPE,
U3.CD_UPNIVEL3,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DA_UPNIVEL2,
U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DA_UPNIVEL1,
UNI.ID_UNIDADEADM,
UNI.CD_UNI_ADM,
UNI.DA_UNI_ADM,
MAN.ID_APORDSERVICO,
OS.NO_BOLETIM NO_OS,
MAN.QT_PRODUCAO,
PSV.ID_PRESTSERV,
PSV.CD_PRESTSERV,
PSV.DE_PRESTSERV,
A.ROWVERSION,
A.NO_COL_MOBILIDADE,
A.NO_BOL_MOBILIDADE,
A.CHANGED_BY_MOBIL,
A.NO_MOBILIDADE
FROM AU_APTO A
JOIN AU_APTO_MAN MAN ON (A.ID_AU_APTO = MAN.ID_AU_APTO)
JOIN FUNCIONAR F ON (MAN.ID_FUNCIONAR = F.ID_FUNCIONAR)
JOIN CCUSTO C ON (MAN.ID_CCUSTO = C.ID_CCUSTO)
JOIN OPERACAO O ON (MAN.ID_OPERACAO = O.ID_OPERACAO)
JOIN PERIODOSAFRA P ON (A.ID_PERIODOSAFRA = P.ID_PERIODOSAFRA)
JOIN SAFRA S ON (P.ID_SAFRA = S.ID_SAFRA)
LEFT JOIN EQUIPE E ON (A.ID_EQUIPE = E.ID_EQUIPE)
LEFT JOIN FUNCIONARDISP FD ON ( F.ID_FUNCIONAR = FD.ID_FUNCIONAR )
LEFT JOIN CARGO CA ON ( FD.ID_CARGO = CA.ID_CARGO )
JOIN UPNIVEL3 U3 ON (A.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
JOIN UPNIVEL1 U1 ON (U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
LEFT JOIN UNIDADEADM UNI ON ( A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
LEFT JOIN CCUSTO CCDISP ON ( CCDISP.ID_CCUSTO = FD.ID_CCUSTO )
LEFT JOIN APORDSERVICO OS ON (MAN.ID_APORDSERVICO = OS.ID_APORDSERVICO)
LEFT JOIN PRESTSERV PSV ON (PSV.ID_PRESTSERV = FD.ID_PRESTSERV)
--filtros
AND FD.DT_EVENTO=(select max(FDI2.DT_EVENTO)
from FUNCIONARDISP FDI2
where FDI2.ID_FUNCIONAR = F.ID_FUNCIONAR
AND FDI2.DT_EVENTO <= A.DT_OPERACAO)
--caso o filtro prestador de serviço seja informado acrescentar o trecho abaixo
AND FD.DT_EVENTO=(SELECT MAX(FDI.DT_EVENTO)
FROM FUNCIONARDISP FDI
WHERE FDI.ID_FUNCIONAR = MAN.ID_FUNCIONAR
AND FDI.DT_EVENTO <= A.DT_OPERACAO) AND FD.ID_PRESTSERV = ?
)CONSULTA

  • Os filtros enviados pela tela devem ser mantidos. Observe o funcionamento já existente no método antes da alteração. Replicar tais filtros para os dois sub-selects da query acima.
  • Deverá ser alterado também o método generateOrderBy da mesma classe. A alteração consiste em excluir as instruções de ALIAS mapeados devido a alteração realizada no select.

 

  • Tipo de Relatório: Analítico.
  • Para o tipo de relatório Analítico deverá ser alterado o sql do método selectByFilter da classe AtividadeManualDAO para contemplar os Apontamentos Agrícolas. Para isso substituir a sql utilizada pela sql abaixo. Os filtros da tela devem ser aplicados em ambos os sub-selects da consulta abaixo:


SELECT
ID_APTO,
NO_BOLETIM ,
DT_OPERACAO,
ID_PERIODOSAFRA,
ID_EQUIPE,
ID_FUNCIONAR,
ID_CCUSTO,
ID_OPERACAO,
ID_UPNIVEL3,
HR_INI_JORN,
HR_FIM_JORN,
QT_TOTAL_JORN,
FG_TURNO,
CD_FUNCIONAR,
DE_FUNCIONAR,
CD_CCUSTO,
DE_CCUSTO,
CD_OPERACAO,
DE_OPERACAO,
CD_PER_SAFRA,
DA_PER_SAFRA,
ID_SAFRA,
CD_SAFRA,
DA_SAFRA,
CD_EQUIPE,
DE_EQUIPE,
CD_UPNIVEL3,
QT_AREA_PROD,
ID_UPNIVEL2,
CD_UPNIVEL2,
DA_UPNIVEL2,
ID_UPNIVEL1,
CD_UPNIVEL1,
DA_UPNIVEL1,
ID_APORDSERVICO,
NO_BOLETIM NO_OS,
QT_PRODUCAO,
ID_UNIDADEADM,
CD_UNI_ADM,
DA_UNI_ADM,
ROWVERSION,
NO_COL_MOBILIDADE,
NO_BOL_MOBILIDADE,
CHANGED_BY_MOBIL,
NO_MOBILIDADE,
QT_RECURSO
FROM (
SELECT
A.ID_APATIVMAN ID_APTO,
A.NO_BOLETIM ,
A.DT_OPERACAO,
A.ID_PERIODOSAFRA,
A.ID_EQUIPE,
A.ID_FUNCIONAR,
A.ID_CCUSTO,
A.ID_OPERACAO,
A.ID_UPNIVEL3,
A.HR_INI_JORN,
A.HR_FIM_JORN,
A.QT_TOTAL_JORN,
A.FG_TURNO,
F.CD_FUNCIONAR,
F.DE_FUNCIONAR,
C.CD_CCUSTO,
C.DE_CCUSTO,
O.CD_OPERACAO,
O.DE_OPERACAO,
P.CD_PER_SAFRA,
P.DA_PER_SAFRA,
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
E.CD_EQUIPE,
E.DE_EQUIPE,
U3.CD_UPNIVEL3,
U3.QT_AREA_PROD,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DA_UPNIVEL2,
U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DA_UPNIVEL1,
OS.ID_APORDSERVICO,
OS.NO_BOLETIM NO_OS,
QT_PRODUCAO,
UNI.ID_UNIDADEADM,
UNI.CD_UNI_ADM,
UNI.DA_UNI_ADM,
A.ROWVERSION,
A.NO_COL_MOBILIDADE,
A.NO_BOL_MOBILIDADE,
A.CHANGED_BY_MOBIL,
A.NO_MOBILIDADE,
QT_RECURSO
FROM APATIVMAN A
JOIN FUNCIONAR F ON (A.ID_FUNCIONAR = F.ID_FUNCIONAR)
LEFT JOIN FUNCIONARDISP FD ON ( F.ID_FUNCIONAR = FD.ID_FUNCIONAR )
JOIN CCUSTO C ON (A.ID_CCUSTO = C.ID_CCUSTO)
JOIN OPERACAO O ON (A.ID_OPERACAO = O.ID_OPERACAO)
JOIN PERIODOSAFRA P ON (A.ID_PERIODOSAFRA = P.ID_PERIODOSAFRA)
JOIN SAFRA S ON (P.ID_SAFRA = S.ID_SAFRA)
LEFT JOIN EQUIPE E ON (A.ID_EQUIPE = E.ID_EQUIPE)
JOIN UPNIVEL3 U3 ON (A.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
JOIN UPNIVEL1 U1 ON (U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
LEFT JOIN UNIDADEADM UNI ON ( A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
LEFT JOIN APORDSERVICO OS ON (A.ID_APORDSERVICO = OS.ID_APORDSERVICO)
LEFT JOIN PRESTSERV PSV ON (PSV.ID_PRESTSERV = FD.ID_PRESTSERV)
LEFT JOIN CCUSTO CCDISP ON ( CCDISP.ID_CCUSTO = FD.ID_CCUSTO )
--filtros
AND FD.DT_EVENTO=(select max(FDI2.DT_EVENTO)
from FUNCIONARDISP FDI2
where FDI2.ID_FUNCIONAR = F.ID_FUNCIONAR
AND FDI2.DT_EVENTO <= A.DT_OPERACAO)
--caso o filtro prestador de serviço seja informado acrescentar o trecho abaixo
AND FD.DT_EVENTO=(SELECT MAX(FDI.DT_EVENTO)
FROM FUNCIONARDISP FDI
WHERE FDI.ID_FUNCIONAR = A.ID_FUNCIONAR
AND FDI.DT_EVENTO <= A.DT_OPERACAO) AND FD.ID_PRESTSERV = ?
UNION ALL
SELECT
A.ID_AU_APTO ID_APTO,
A.NO_BOLETIM ,
A.DT_OPERACAO,
A.ID_PERIODOSAFRA,
A.ID_EQUIPE,
MAN.ID_FUNCIONAR,
MAN.ID_CCUSTO,
MAN.ID_OPERACAO,
MAN.ID_UPNIVEL3,
MAN.HR_INI_JORN,
MAN.HR_FIM_JORN,
MAN.QT_TOTAL_JORN,
A.FG_TURNO,
F.CD_FUNCIONAR,
F.DE_FUNCIONAR,
C.CD_CCUSTO,
C.DE_CCUSTO,
O.CD_OPERACAO,
O.DE_OPERACAO,
P.CD_PER_SAFRA,
P.DA_PER_SAFRA,
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
E.CD_EQUIPE,
E.DE_EQUIPE,
U3.CD_UPNIVEL3,
U3.QT_AREA_PROD,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DA_UPNIVEL2,
U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DA_UPNIVEL1,
MAN.ID_APORDSERVICO,
OS.NO_BOLETIM NO_OS,
MAN.QT_PRODUCAO,
UNI.ID_UNIDADEADM,
UNI.CD_UNI_ADM,
UNI.DA_UNI_ADM,
A.ROWVERSION,
A.NO_COL_MOBILIDADE,
A.NO_BOL_MOBILIDADE,
A.CHANGED_BY_MOBIL,
A.NO_MOBILIDADE,
MAN.QT_RECURSO
FROM AU_APTO A
JOIN AU_APTO_MAN MAN ON (A.ID_AU_APTO = MAN.ID_AU_APTO)
JOIN FUNCIONAR F ON (MAN.ID_FUNCIONAR = F.ID_FUNCIONAR)
LEFT JOIN FUNCIONARDISP FD ON ( F.ID_FUNCIONAR = FD.ID_FUNCIONAR )
JOIN CCUSTO C ON (MAN.ID_CCUSTO = C.ID_CCUSTO)
JOIN OPERACAO O ON (MAN.ID_OPERACAO = O.ID_OPERACAO)
JOIN PERIODOSAFRA P ON (A.ID_PERIODOSAFRA = P.ID_PERIODOSAFRA)
JOIN SAFRA S ON (P.ID_SAFRA = S.ID_SAFRA)
LEFT JOIN EQUIPE E ON (A.ID_EQUIPE = E.ID_EQUIPE)
JOIN UPNIVEL3 U3 ON (MAN.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
JOIN UPNIVEL1 U1 ON (U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
LEFT JOIN UNIDADEADM UNI ON ( A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
LEFT JOIN APORDSERVICO OS ON (MAN.ID_APORDSERVICO = OS.ID_APORDSERVICO)
LEFT JOIN PRESTSERV PSV ON (PSV.ID_PRESTSERV = FD.ID_PRESTSERV)
LEFT JOIN CCUSTO CCDISP ON ( CCDISP.ID_CCUSTO = FD.ID_CCUSTO )
--filtros
AND FD.DT_EVENTO=(select max(FDI2.DT_EVENTO)
from FUNCIONARDISP FDI2
where FDI2.ID_FUNCIONAR = F.ID_FUNCIONAR
AND FDI2.DT_EVENTO <= A.DT_OPERACAO)
--caso o filtro prestador de serviço seja informado acrescentar o trecho abaixo
AND FD.DT_EVENTO=(SELECT MAX(FDI.DT_EVENTO)
FROM FUNCIONARDISP FDI
WHERE FDI.ID_FUNCIONAR = MAN.ID_FUNCIONAR
AND FDI.DT_EVENTO <= A.DT_OPERACAO) AND FD.ID_PRESTSERV = ?
)CONSULTA
ORDER BY NO_BOLETIM, DT_OPERACAO, CD_UPNIVEL1, CD_UPNIVEL2,
CD_UPNIVEL3, CD_EQUIPE, CD_CCUSTO, CD_OPERACAO, CD_FUNCIONAR

Alteração nos relatórios de Atividades Mecanizadas para contemplar os Apontamentos Agrícolas.


Objetivo: Alteração nos relatórios de Atividades Mecanizadas dos tipos Sumário Geral, Analítico e Produção para contemplar os Apontamentos Agrícolas.
Menu: Visões > Atividades e Recursos > Atividades Mecanizadas
Entrada de menu: AERV0010
Esboço da tela:


Especificação técnica:

  • Alterar os relatórios de Atividades Mecanizadas do Tipo Sumário Geral, Analítico e Produção para contemplar os Apontamentos Agrícolas da seguinte forma:

 

  • Tipo Sumário Geral:
  • Alterar o método selectForReport da Classe AtividadeMecanizadaDAO. Para isso, acrescentar na sql utilizada o sal abaixo. Note que o select utilizado possui um sub-select para recuperar os Apontamentos de Atividades Mecanizadas. Deverá acrescentar a instrução abaixo sendo um outro subselect. Na nova instrução criada, acrescentar os filtros enviados pela tela.


UNION ALL
SELECT DISTINCT A.ID_AU_APTO ID_APATIVMEC,
A.NO_BOLETIM ,
A.DT_OPERACAO ,
NVL(ALC.ID_PERIODOSAFRA, PS.ID_PERIODOSAFRA) ID_PERIODOSAFRA,
A.ID_FUNCIONAR ,
A.ID_EQUIPTO ,
A.ID_EQUIPE ,
A.HR_INI_JORN ,
A.HR_FIM_JORN ,
A.QT_TOTAL_JORN ,
A.ROWVERSION ,
NVL(ALC.ID_UPNIVEL1, UPN1.ID_UPNIVEL1) ID_UPNIVEL1,
A.ID_UNIDADEADM ,
PS.CD_PER_SAFRA ,
PS.DA_PER_SAFRA ,
NVL(ALC.ID_SAFRA, S.ID_SAFRA) ID_SAFRA,
S.CD_SAFRA ,
S.DA_SAFRA ,
F.CD_FUNCIONAR ,
F.DE_FUNCIONAR ,
EPTO.CD_EQUIPTO ,
EQPE.CD_EQUIPE ,
EQPE.DE_EQUIPE ,
UPN1.CD_UPNIVEL1 ,
UPN1.DA_UPNIVEL1 ,
MO.CD_MODELO ,
MO.DE_MODELO ,
CAT.ID_CATOPERACIONAL ,
CAT.CD_CATEG_OPERAC ,
CAT.DE_CATEG_OPERAC ,
ALC.ID_AU_APTO_MEC ID_APATIVMEC_DE ,
ALC.ID_CCUSTO ,
ALC.ID_OPERACAO ,
ALC.ID_OP_PRINCIPAL ,
NVL(RAT.ID_UPNIVEL3, ALC.ID_UPNIVEL3) ID_UPNIVEL3,
ALC.ID_EQUIPTO_IM ,
ALC.QT_INI_HK ,
ALC.QT_FIM_HK ,
ALC.QT_TOTAL_HK ,
RAT.QT_TOTAL_HK AS QT_TOTAL_RAT ,
C.CD_CCUSTO ,
C.DE_CCUSTO ,
O.CD_OPERACAO ,
O.DE_OPERACAO ,
NVL(O.FG_TP_CLASSE, '0') FG_TP_CLASSE ,
OP.CD_OPERACAO CD_OP_PRINCIPAL ,
OP.DE_OPERACAO DE_OP_PRINCIPAL ,
NVL(OP.FG_TP_CLASSE, '0') FG_TP_CLASSE_OP_PRINCIPAL,
NVL(ALC.ID_UPNIVEL2, UPN2.ID_UPNIVEL2) ID_UPNIVEL2,
UPN2.CD_UPNIVEL2 ,
UPN2.DA_UPNIVEL2 ,
UPN3.CD_UPNIVEL3 ,
UPN3.ID_MODULOADM ,
MADM.CD_MOD_ADM ,
MADM.DA_MOD_ADM ,
CCDISP.ID_CCUSTO AS ID_CCUSTO_DISP_EQ,
CCDISP.CD_CCUSTO AS CD_CCUSTO_DISP_EQ,
CCDISP.DE_CCUSTO AS DE_CCUSTO_DISP_EQ,
IMP.ID_EQUIPTO AS ID_IMPLEMENTO ,
IMP.CD_EQUIPTO AS CD_IMPLEMENTO ,
MODIMPL.DE_MODELO AS DE_IMPLEMENTO ,
A.NO_COL_MOBILIDADE ,
A.NO_BOL_MOBILIDADE ,
A.CHANGED_BY_MOBIL ,
A.NO_MOBILIDADE ,
OS.NO_BOLETIM AS NO_OS
FROM AU_APTO A
JOIN AU_APTO_MEC ALC ON (A.ID_AU_APTO = ALC.ID_AU_APTO)
LEFT JOIN AU_APTO_MEC_RAT RAT ON (ALC.ID_AU_APTO_MEC = RAT.ID_AU_APTO_MEC)
LEFT JOIN UPNIVEL3 UPN3 ON (RAT.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3 OR ALC.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
LEFT JOIN MODULOADM MADM ON (UPN3.ID_MODULOADM = MADM.ID_MODULOADM)
LEFT JOIN UPNIVEL2 UPN2 ON (UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
LEFT JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
LEFT JOIN PERIODOSAFRA PS ON (UPN3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA OR ALC.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
LEFT JOIN APORDSERVICO OS ON (ALC.ID_APORDSERVICO = OS.ID_APORDSERVICO)
JOIN FUNCIONAR F ON (A.ID_FUNCIONAR = F.ID_FUNCIONAR)
JOIN EQUIPTO EPTO ON (A.ID_EQUIPTO = EPTO.ID_EQUIPTO)
JOIN CATOPERACIONAL CAT ON (EPTO.ID_CATOPERACIONAL = CAT.ID_CATOPERACIONAL )
LEFT JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA OR ALC.ID_SAFRA = S.ID_SAFRA)
JOIN MODELO MO ON (EPTO.ID_MODELO = MO.ID_MODELO)
LEFT JOIN OPERACAO O ON (ALC.ID_OPERACAO = O.ID_OPERACAO)
LEFT JOIN OPERACAO OP ON (ALC.ID_OP_PRINCIPAL = OP.ID_OPERACAO)
LEFT JOIN CCUSTO C ON (ALC.ID_CCUSTO = C.ID_CCUSTO)
LEFT JOIN EQUIPE EQPE ON (A.ID_EQUIPE = EQPE.ID_EQUIPE)
LEFT JOIN EQUIPTO IMP ON (ALC.ID_EQUIPTO_IM = IMP.ID_EQUIPTO)
LEFT JOIN EQUIPTODISP EDSP ON (EPTO.ID_EQUIPTO = EDSP.ID_EQUIPTO AND EDSP.ID_UNIDADEADM = A.ID_UNIDADEADM )
LEFT JOIN MODELO MODIMPL ON (IMP.ID_MODELO = MODIMPL.ID_MODELO)
LEFT JOIN CCUSTO CCDISP ON ( EDSP.ID_CCUSTO = CCDISP.ID_CCUSTO )
WHERE A.ID_UNIDADEADM = ?
AND A.DT_OPERACAO BETWEEN ? AND ?
AND EDSP.DT_EVENTO = ( SELECT MAX( B2.DT_EVENTO )
FROM EQUIPTODISP B2
WHERE B2.ID_EQUIPTO = A.ID_EQUIPTO
AND B2.ID_UNIDADEADM = A.ID_UNIDADEADM
AND B2.DT_EVENTO <= A.DT_OPERACAO )

  • Tipo de Relatório Analítico:
  • Alterar o método selectForAnaliticReport da Classe AtividadeMecanizadaDAO. Para isso, substituir a sql utilizada pela sql abaixo:


SELECT
ID_APTO,
DT_OPERACAO,
NO_BOLETIM,
ID_FUNCIONAR,
CD_FUNCIONAR,
DE_FUNCIONAR,
ID_EQUIPTO,
CD_EQUIPTO,
DE_MODELO,
ID_EQUIPE,
CD_EQUIPE,
DE_EQUIPE,
HR_INI_JORN,
HR_FIM_JORN,
QT_TOTAL_JORN
FROM(
SELECT
AP.ID_APATIVMEC ID_APTO,
AP.DT_OPERACAO,
AP.NO_BOLETIM,
AP.ID_FUNCIONAR,
FU.CD_FUNCIONAR,
FU.DE_FUNCIONAR,
AP.ID_EQUIPTO,
EQ.CD_EQUIPTO,
MO.DE_MODELO,
AP.ID_EQUIPE,
EQP.CD_EQUIPE,
EQP.DE_EQUIPE,
AP.HR_INI_JORN,
AP.HR_FIM_JORN,
AP.QT_TOTAL_JORN
FROM APATIVMEC AP
LEFT JOIN APATIVMEC_LC LC ON (AP.ID_APATIVMEC = LC.ID_APATIVMEC)
LEFT JOIN APATIVMEC_LC_RAT LC_RAT ON (LC.ID_APATIVMEC_LC = LC_RAT.ID_APATIVMEC_LC)
LEFT JOIN FUNCIONAR FU ON ( FU.ID_FUNCIONAR = AP.ID_FUNCIONAR )
LEFT JOIN EQUIPE EQP ON ( EQP.ID_EQUIPE = AP.ID_EQUIPE )
LEFT JOIN EQUIPTO EQ ON ( EQ.ID_EQUIPTO = AP.ID_EQUIPTO )
LEFT JOIN MODELO MO ON ( EQ.ID_MODELO = MO.ID_MODELO )
LEFT JOIN CCUSTO CC ON ( LC.ID_CCUSTO = CC.ID_CCUSTO )
LEFT JOIN OPERACAO OP ON ( LC.ID_OPERACAO = OP.ID_OPERACAO )
LEFT JOIN OPERACAO OPP ON ( LC.ID_OP_PRINCIPAL = OPP.ID_OPERACAO )
LEFT JOIN EQUIPTODISP EQD ON ( EQ.ID_EQUIPTO = EQD.ID_EQUIPTO AND EQD.ID_UNIDADEADM = AP.ID_UNIDADEADM )
LEFT JOIN CATOPERACIONAL COP ON ( EQ.ID_CATOPERACIONAL = COP.ID_CATOPERACIONAL )
LEFT JOIN UPNIVEL3 UPN3 ON ( LC.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3 OR LC_RAT.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3 )
LEFT JOIN MODULOADM MADM ON ( UPN3.ID_MODULOADM = MADM.ID_MODULOADM )
LEFT JOIN UPNIVEL2 UPN2 ON ( LC.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2 OR UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2 )
LEFT JOIN UPNIVEL1 UPN1 ON ( LC.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1 OR UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1 )
LEFT JOIN PERIODOSAFRA PS ON ( UPN3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA OR LC.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA )
LEFT JOIN SAFRA S ON ( PS.ID_SAFRA = S.ID_SAFRA OR LC.ID_SAFRA = S.ID_SAFRA )
LEFT JOIN APORDSERVICO OS ON(LC.ID_APORDSERVICO = OS.ID_APORDSERVICO)
WHERE AP.ID_UNIDADEADM = ? AND AP.DT_OPERACAO BETWEEN ? AND ?
AND EQD.DT_EVENTO = (SELECT MAX( DT_EVENTO )
FROM EQUIPTODISP
WHERE ID_EQUIPTO = AP.ID_EQUIPTO
AND ID_UNIDADEADM = AP.ID_UNIDADEADM
AND DT_EVENTO <= AP.DT_OPERACAO)
--FILTROS
UNION ALL
SELECT
AP.ID_AU_APTO ID_APTO,
AP.DT_OPERACAO,
AP.NO_BOLETIM,
AP.ID_FUNCIONAR,
FU.CD_FUNCIONAR,
FU.DE_FUNCIONAR,
AP.ID_EQUIPTO,
EQ.CD_EQUIPTO,
MO.DE_MODELO,
AP.ID_EQUIPE,
EQP.CD_EQUIPE,
EQP.DE_EQUIPE,
AP.HR_INI_JORN,
AP.HR_FIM_JORN,
AP.QT_TOTAL_JORN
FROM AU_APTO AP
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_MECANIZADO = 'S')
LEFT JOIN AU_APTO_MEC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
LEFT JOIN AU_APTO_MEC_RAT LC_RAT ON (LC.ID_AU_APTO_MEC = LC_RAT.ID_AU_APTO_MEC)
LEFT JOIN FUNCIONAR FU ON ( FU.ID_FUNCIONAR = AP.ID_FUNCIONAR )
LEFT JOIN EQUIPE EQP ON ( EQP.ID_EQUIPE = AP.ID_EQUIPE )
LEFT JOIN EQUIPTO EQ ON ( EQ.ID_EQUIPTO = AP.ID_EQUIPTO )
LEFT JOIN MODELO MO ON ( EQ.ID_MODELO = MO.ID_MODELO )
LEFT JOIN CCUSTO CC ON ( LC.ID_CCUSTO = CC.ID_CCUSTO )
LEFT JOIN OPERACAO OP ON ( LC.ID_OPERACAO = OP.ID_OPERACAO )
LEFT JOIN OPERACAO OPP ON ( LC.ID_OP_PRINCIPAL = OPP.ID_OPERACAO )
LEFT JOIN EQUIPTODISP EQD ON ( EQ.ID_EQUIPTO = EQD.ID_EQUIPTO AND EQD.ID_UNIDADEADM = AP.ID_UNIDADEADM )
LEFT JOIN CATOPERACIONAL COP ON ( EQ.ID_CATOPERACIONAL = COP.ID_CATOPERACIONAL )
LEFT JOIN UPNIVEL3 UPN3 ON ( LC.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3 OR LC_RAT.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3 )
LEFT JOIN MODULOADM MADM ON ( UPN3.ID_MODULOADM = MADM.ID_MODULOADM )
LEFT JOIN UPNIVEL2 UPN2 ON ( LC.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2 OR UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2 )
LEFT JOIN UPNIVEL1 UPN1 ON ( LC.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1 OR UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1 )
LEFT JOIN PERIODOSAFRA PS ON ( UPN3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA OR LC.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA )
LEFT JOIN SAFRA S ON ( PS.ID_SAFRA = S.ID_SAFRA OR LC.ID_SAFRA = S.ID_SAFRA )
LEFT JOIN APORDSERVICO OS ON(LC.ID_APORDSERVICO = OS.ID_APORDSERVICO)
WHERE AP.ID_UNIDADEADM = ? AND AP.DT_OPERACAO BETWEEN ? AND ?
AND EQD.DT_EVENTO = (SELECT MAX( DT_EVENTO )
FROM EQUIPTODISP
WHERE ID_EQUIPTO = AP.ID_EQUIPTO
AND ID_UNIDADEADM = AP.ID_UNIDADEADM
AND DT_EVENTO <= AP.DT_OPERACAO)
--FILTROS
)CONSULTA
ORDER BY DT_OPERACAO, NO_BOLETIM ;

  • Tipo Produção:
  • Alterar o método selectForReportWithProduction da classe AtividadeMecanizadaDAO para contemplar os Apontramentos Agrícolas da seguinte maneira:
  • Note que o método recupera os campos de acordo com os agrupamentos informados no método generateQuery. Assim, deve-se considerar esses campos na inclusão dos sub-selects referentes aos Apontamentos Agrícolas.
  • A estrutura atual da consulta é da seguinte forma:


SELECT [campos do informados no agrupamento]
FROM
(
SELECT APATIVMEC
UNION ALL
(
SELECT [campos do informados no agrupamento]
FROM APATIVPROD
UNION
SELECT [campos do informados no agrupamento]
FROM APAPLINSUMO
UNION
SELECT [campos do informados no agrupamento]
FROM APPLANTIO
)
)

  • A estrutura atual deverá ser modificada para a seguinte forma:


SELECT [campos do informados no agrupamento]
FROM
(
(
SELECT [campos do informados no agrupamento]
FROM APATIVMEC
UNION ALL
(
SELECT [campos do informados no agrupamento]
FROM APATIVPROD
UNION
SELECT [campos do informados no agrupamento]
FROM APAPLINSUMO
UNION
SELECT [campos do informados no agrupamento]
FROM APPLANTIO
)
)
UNION ALL
(
SELECT [campos do informados no agrupamento]
FROM AU_APTO
JOIN AU_APTO_MEC
UNION ALL
(
SELECT [campos do informados no agrupamento]
FROM AU_APTO A
JOIN AU_APTO_PROD
UNION
SELECT [campos do informados no agrupamento]
FROM AU_APTO
JOIN AU_APTO_LC
JOIN AU_APTO_INS
)
)
)

  • Abaixo, verifique o trecho que deverá ser incluído no select atual. As tratativas efetuadas no sql atual também deverão ser aplicadas no novo trecho que será adicionado. Abaixo segue o sql contendo as relações que deverão ser estabelecidas entre as tabelas. No trecho abaixo, quando recuperados as Produções (AU_APTO_PROD) a SQL deverá recuperar apenas os apontamentos Agrícolas de Produção que possuem a unidade de medida Hectare. Para isso, recuperar o parâmetro das configurações gerais: Tabela: PRXPARAMETER, CONTEXT_APL = "PIMSGRAOS.UNIMEDIDA" e NAME_PARAMETER = "CD_UM_HA". Recuperado o parâmetro, substituir na sql abaixo o trecho destacado ("PARÂMETRO HECTARE") pelo campo ID_VALOR recuperado na consulta do parâmetro.
  • Note o funcionamento atual da inclusão dos filtros e como é realizada a recuperação dos campos. Aplicar a mesma tratativa no trecho abaixo que será incluído na consulta.


UNION ALL(
SELECT
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
PS.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DA_PER_SAFRA,
EQPE.ID_EQUIPE,
EQPE.CD_EQUIPE,
EQPE.DE_EQUIPE,
SUM(RAT.QT_TOTAL_HK) QT_HORAS,
SUM(0) QT_AREA
FROM AU_APTO A
JOIN AU_APTO_MEC ALC ON (A.ID_AU_APTO = ALC.ID_AU_APTO)
LEFT JOIN AU_APTO_MEC_RAT RAT ON (ALC.ID_AU_APTO_MEC = RAT.ID_AU_APTO_MEC)
LEFT JOIN UPNIVEL3 UPN3 ON (RAT.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
LEFT JOIN MODULOADM MADM ON(UPN3.ID_MODULOADM = MADM.ID_MODULOADM)
LEFT JOIN UPNIVEL2 UPN2 ON(NVL(ALC.ID_UPNIVEL2, UPN3.ID_UPNIVEL2) = UPN2.ID_UPNIVEL2)
LEFT JOIN UPNIVEL1 UPN1 ON(NVL(ALC.ID_UPNIVEL1, UPN2.ID_UPNIVEL1) = UPN1.ID_UPNIVEL1)
LEFT JOIN PERIODOSAFRA PS ON(NVL(ALC.ID_PERIODOSAFRA, UPN3.ID_PERIODOSAFRA) = PS.ID_PERIODOSAFRA)
JOIN FUNCIONAR F ON(A.ID_FUNCIONAR = F.ID_FUNCIONAR)
JOIN EQUIPTO EPTO ON(A.ID_EQUIPTO = EPTO.ID_EQUIPTO)
JOIN EQUIPTODISP EDSP ON(EPTO.ID_EQUIPTO= EDSP.ID_EQUIPTO AND EDSP.ID_UNIDADEADM = A.ID_UNIDADEADM)
LEFT JOIN EQUIPE EQPE ON(A.ID_EQUIPE = EQPE.ID_EQUIPE)
LEFT JOIN SAFRA S ON (NVL(ALC.ID_SAFRA, PS.ID_SAFRA) = S.ID_SAFRA)
JOIN MODELO MOD ON(EPTO.ID_MODELO = MOD.ID_MODELO)
JOIN OPERACAO O ON (ALC.ID_OPERACAO = O.ID_OPERACAO)
LEFT JOIN OPERACAO OP ON(ALC.ID_OP_PRINCIPAL = OP.ID_OPERACAO)
LEFT JOIN APORDSERVICO OS ON(ALC.ID_APORDSERVICO = OS.ID_APORDSERVICO)
JOIN CCUSTO C ON(ALC.ID_CCUSTO = C.ID_CCUSTO)
LEFT JOIN EQUIPTO IMP ON (ALC.ID_EQUIPTO_IM = IMP.ID_EQUIPTO)
LEFT JOIN CATOPERACIONAL CAT ON (EPTO.ID_CATOPERACIONAL = CAT.ID_CATOPERACIONAL)
LEFT JOIN MODELO MODIMPL ON (IMP.ID_MODELO = MOD.ID_MODELO)
JOIN CCUSTO CCDISP ON (EDSP.ID_CCUSTO = CCDISP.ID_CCUSTO AND EDSP.ID_UNIDADEADM = A.ID_UNIDADEADM)
WHERE
( A.DT_OPERACAO >= ? AND A.DT_OPERACAO <= ?)
AND A.ID_UNIDADEADM IN ( 8046868420951499909 )
AND EDSP.DT_EVENTO =
(
SELECT MAX( B2.DT_EVENTO )
FROM EQUIPTODISP B2
WHERE B2.ID_EQUIPTO = A.ID_EQUIPTO
AND ID_UNIDADEADM = A.ID_UNIDADEADM
AND B2.DT_EVENTO <= A.DT_OPERACAO
)
GROUP BY
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
PS.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DA_PER_SAFRA,
EQPE.ID_EQUIPE,
EQPE.CD_EQUIPE,
EQPE.DE_EQUIPE
UNION ALL(
SELECT
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
PS.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DA_PER_SAFRA,
EQPE.ID_EQUIPE,
EQPE.CD_EQUIPE,
EQPE.DE_EQUIPE,
SUM(0) QT_HORAS,
SUM(PROD.QT_PRODUCAO) QT_AREA
FROM AU_APTO A
JOIN AU_APTO_PROD PROD ON(A.ID_AU_APTO = PROD.ID_AU_APTO)
JOIN PERIODOSAFRA PS ON (A.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
LEFT OUTER JOIN EQUIPE EQPE ON(A.ID_EQUIPE = EQPE.ID_EQUIPE)
JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA)
LEFT OUTER JOIN UPNIVEL3 UPN3 ON(PROD.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
LEFT OUTER JOIN MODULOADM MADM ON (UPN3.ID_MODULOADM = MADM.ID_MODULOADM)
LEFT OUTER JOIN UPNIVEL2 UPN2 ON(UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
LEFT OUTER JOIN UPNIVEL1 UPN1 ON(UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
JOIN OPERACAO O ON(PROD.ID_OPERACAO = O.ID_OPERACAO)
JOIN CCUSTO C ON(PROD.ID_CCUSTO = C.ID_CCUSTO)
LEFT JOIN EQUIPTO EPTO ON (A.ID_EQUIPTO = EPTO.ID_EQUIPTO)
LEFT JOIN EQUIPTODISP EDSP ON (EPTO.ID_EQUIPTO = EDSP.ID_EQUIPTO AND EDSP.ID_UNIDADEADM = A.ID_UNIDADEADM)
LEFT JOIN MODELO MOD ON(EPTO.ID_MODELO = MOD.ID_MODELO)
LEFT OUTER JOIN CATOPERACIONAL CAT ON(EPTO.ID_CATOPERACIONAL = CAT.ID_CATOPERACIONAL)
LEFT JOIN CCUSTO CCDISP ON(EDSP.ID_CCUSTO = CCDISP.ID_CCUSTO AND EDSP.ID_UNIDADEADM = A.ID_UNIDADEADM)
LEFT JOIN APORDSERVICO OS ON(PROD.ID_APORDSERVICO = OS.ID_APORDSERVICO)
WHERE
(A.DT_OPERACAO >= ? AND A.DT_OPERACAO <= ?)
AND O.ID_UNIMEDIDA = "PARÂMETRO HECTARE"
AND A.ID_UNIDADEADM IN ( 8046868420951499909 )
AND
(
(EDSP.DT_EVENTO IS NULL)
OR ( EDSP.DT_EVENTO = (
(SELECT MAX( B2.DT_EVENTO )
FROM EQUIPTODISP B2
WHERE B2.ID_EQUIPTO = A.ID_EQUIPTO
AND ID_UNIDADEADM = A.ID_UNIDADEADM
AND B2.DT_EVENTO <= A.DT_OPERACAO
)
))
)
GROUP BY
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
PS.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DA_PER_SAFRA,
EQPE.ID_EQUIPE,
EQPE.CD_EQUIPE,
EQPE.DE_EQUIPE
UNION
SELECT
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
PS.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DA_PER_SAFRA,
EQPE.ID_EQUIPE,
EQPE.CD_EQUIPE,
EQPE.DE_EQUIPE,
SUM(0) QT_HORAS,
SUM(LC.QT_AREA) QT_AREA
FROM AU_APTO A
JOIN AU_APTO_LC LC ON (A.ID_AU_APTO = LC.ID_AU_APTO)
JOIN AU_APTO_INS D ON (A.ID_AU_APTO = D.ID_AU_APTO)
JOIN PERIODOSAFRA PS ON(A.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
LEFT OUTER JOIN EQUIPE EQPE ON(A.ID_EQUIPE = EQPE.ID_EQUIPE)
JOIN SAFRA S ON(PS.ID_SAFRA = S.ID_SAFRA)
LEFT OUTER JOIN UPNIVEL3 UPN3 ON(LC.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
LEFT OUTER JOIN MODULOADM MADM ON(UPN3.ID_MODULOADM = MADM.ID_MODULOADM)
LEFT OUTER JOIN UPNIVEL2 UPN2 ON(UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
LEFT OUTER JOIN UPNIVEL1 UPN1 ON(UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
JOIN OPERACAO O ON(A.ID_OPERACAO = O.ID_OPERACAO)
JOIN CCUSTO C ON(A.ID_CCUSTO = C.ID_CCUSTO)
LEFT JOIN EQUIPTO EPTO ON(A.ID_EQUIPTO = EPTO.ID_EQUIPTO)
LEFT JOIN EQUIPTODISP EDSP ON(EPTO.ID_EQUIPTO = EDSP.ID_EQUIPTO AND EDSP.ID_UNIDADEADM = A.ID_UNIDADEADM)
LEFT JOIN MODELO MOD ON(EPTO.ID_MODELO = MOD.ID_MODELO)
LEFT OUTER JOIN CATOPERACIONAL CAT ON(EPTO.ID_CATOPERACIONAL = CAT.ID_CATOPERACIONAL)
LEFT JOIN CCUSTO CCDISP ON(EDSP.ID_CCUSTO = CCDISP.ID_CCUSTO AND EDSP.ID_UNIDADEADM = A.ID_UNIDADEADM)
LEFT JOIN APORDSERVICO OS ON(A.ID_APORDSERVICO = OS.ID_APORDSERVICO)
WHERE (A.DT_OPERACAO >= ? AND A.DT_OPERACAO <= ?)
AND A.ID_UNIDADEADM IN ( 8046868420951499909 )
AND(
(EDSP.DT_EVENTO IS NULL)
OR(EDSP.DT_EVENTO = ((SELECT MAX( B2.DT_EVENTO )
FROM EQUIPTODISP B2
WHERE B2.ID_EQUIPTO = A.ID_EQUIPTO
AND ID_UNIDADEADM = A.ID_UNIDADEADM
AND B2.DT_EVENTO <= A.DT_OPERACAO
))
))
GROUP BY
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
PS.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DA_PER_SAFRA,
EQPE.ID_EQUIPE,
EQPE.CD_EQUIPE,
EQPE.DE_EQUIPE
) )

Alteração nos relatórios de Atividades de Produção para contemplar os Apontamentos Agrícolas


Objetivo: Alteração nos relatórios de Atividades de Produção dos tipos Sumário Geral e Analítico para contemplar os Apontamentos Agrícolas.
Menu: Visões > Atividades e Recursos > Atividades de Produção
Entrada de menu: AERV0011
Esboço da tela:


Especificação técnica:

  • Deverá ser alterado o método selectForReport da classe AtividadeProducaoDAO para recuperar os Apontamentos Agrícolas de Produção. Para isso, alterar a sql utilizada pela sql abaixo.
  • A SQL deverá recuperar apenas os apontamentos Agrícolas de Produção que possuem a unidade de medida Hectare. Para isso, recuperar o parâmetro das configurações gerais: Tabela: PRXPARAMETER, CONTEXT_APL = "PIMSGRAOS.UNIMEDIDA" e NAME_PARAMETER = "CD_UM_HA". Recuperado o parâmetro, substituir na sql abaixo o trecho destacado ("PARÂMETRO HECTARE") pelo campo ID_VALOR recuperado na consulta do parâmetro.


SELECT
ID_APto ,
NO_BOLETIM ,
DT_OPERACAO ,
QT_AREA_EXEC ,
ID_CCUSTO ,
ID_PERIODOSAFRA ,
ID_OPERACAO ,
ID_UPNIVEL3 ,
ID_EQUIPE ,
ROWVERSION ,
NO_COL_MOBILIDADE ,
NO_BOL_MOBILIDADE ,
CHANGED_BY_MOBIL ,
NO_MOBILIDADE ,
ID_UNIDADEADM ,
ID_APORDSERVICO ,
ID_EQUIPTO ,
CD_CCUSTO ,
DE_CCUSTO ,
CD_EQUIPE ,
DE_EQUIPE ,
CD_PER_SAFRA ,
DA_PER_SAFRA ,
ID_SAFRA ,
CD_SAFRA ,
DA_SAFRA ,
CD_OPERACAO ,
DE_OPERACAO ,
ID_UNIMEDIDA ,
CD_UNI_MEDIDA ,
DA_UNI_MEDIDA ,
CD_UPNIVEL3 ,
ID_UPNIVEL2 ,
CD_UPNIVEL2 ,
DA_UPNIVEL2 ,
ID_UPNIVEL1 ,
CD_UPNIVEL1 ,
DA_UPNIVEL1 ,
CD_UNI_ADM ,
DA_UNI_ADM ,
NO_BOLETIM NO_OS ,
CD_EQUIPTO ,
DE_MODELO
FROM(
SELECT
A.ID_APATIVPROD ID_APTO,
A.NO_BOLETIM ,
A.DT_OPERACAO ,
A.QT_AREA_EXEC ,
A.ID_CCUSTO ,
A.ID_PERIODOSAFRA ,
A.ID_OPERACAO ,
A.ID_UPNIVEL3 ,
A.ID_EQUIPE ,
A.ROWVERSION ,
A.NO_COL_MOBILIDADE ,
A.NO_BOL_MOBILIDADE ,
A.CHANGED_BY_MOBIL ,
A.NO_MOBILIDADE ,
A.ID_UNIDADEADM ,
A.ID_APORDSERVICO ,
A.ID_EQUIPTO ,
C.CD_CCUSTO ,
C.DE_CCUSTO ,
E.CD_EQUIPE ,
E.DE_EQUIPE ,
P.CD_PER_SAFRA ,
P.DA_PER_SAFRA ,
S.ID_SAFRA ,
S.CD_SAFRA ,
S.DA_SAFRA ,
O.CD_OPERACAO ,
O.DE_OPERACAO ,
UMED.ID_UNIMEDIDA ,
UMED.CD_UNI_MEDIDA ,
UMED.DA_UNI_MEDIDA ,
U3.CD_UPNIVEL3 ,
U2.ID_UPNIVEL2 ,
U2.CD_UPNIVEL2 ,
U2.DA_UPNIVEL2 ,
U1.ID_UPNIVEL1 ,
U1.CD_UPNIVEL1 ,
U1.DA_UPNIVEL1 ,
UNI.CD_UNI_ADM ,
UNI.DA_UNI_ADM ,
APOS.NO_BOLETIM NO_OS ,
EQ.CD_EQUIPTO ,
MOD.DE_MODELO
FROM APATIVPROD A
JOIN CCUSTO C ON (A.ID_CCUSTO = C.ID_CCUSTO)
JOIN PERIODOSAFRA P ON (A.ID_PERIODOSAFRA = P.ID_PERIODOSAFRA)
JOIN SAFRA S ON (P.ID_SAFRA = S.ID_SAFRA)
JOIN OPERACAO O ON (A.ID_OPERACAO = O.ID_OPERACAO)
JOIN UNIMEDIDA UMED ON (O.ID_UNIMEDIDA = UMED.ID_UNIMEDIDA )
JOIN UPNIVEL3 U3 ON (A.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
JOIN UPNIVEL1 U1 ON (U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
JOIN UNIDADEADM UNI ON ( A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
LEFT JOIN EQUIPE E ON (A.ID_EQUIPE = E.ID_EQUIPE)
LEFT JOIN EQUIPTO EQ ON (A.ID_EQUIPTO = EQ.ID_EQUIPTO)
LEFT JOIN MODELO MOD ON (EQ.ID_MODELO = MOD.ID_MODELO)
LEFT JOIN APORDSERVICO APOS ON (A.ID_APORDSERVICO = APOS.ID_APORDSERVICO)
UNION ALL
SELECT
A.ID_AU_APTO ID_APTO ,
A.NO_BOLETIM ,
A.DT_OPERACAO ,
PROD.QT_PRODUCAO QT_AREA_EXEC,
PROD.ID_CCUSTO ,
A.ID_PERIODOSAFRA ,
PROD.ID_OPERACAO ,
PROD.ID_UPNIVEL3 ,
A.ID_EQUIPE ,
A.ROWVERSION ,
A.NO_COL_MOBILIDADE ,
A.NO_BOL_MOBILIDADE ,
A.CHANGED_BY_MOBIL ,
A.NO_MOBILIDADE ,
A.ID_UNIDADEADM ,
PROD.ID_APORDSERVICO ,
A.ID_EQUIPTO ,
C.CD_CCUSTO ,
C.DE_CCUSTO ,
E.CD_EQUIPE ,
E.DE_EQUIPE ,
P.CD_PER_SAFRA ,
P.DA_PER_SAFRA ,
S.ID_SAFRA ,
S.CD_SAFRA ,
S.DA_SAFRA ,
O.CD_OPERACAO ,
O.DE_OPERACAO ,
UMED.ID_UNIMEDIDA ,
UMED.CD_UNI_MEDIDA ,
UMED.DA_UNI_MEDIDA ,
U3.CD_UPNIVEL3 ,
U2.ID_UPNIVEL2 ,
U2.CD_UPNIVEL2 ,
U2.DA_UPNIVEL2 ,
U1.ID_UPNIVEL1 ,
U1.CD_UPNIVEL1 ,
U1.DA_UPNIVEL1 ,
UNI.CD_UNI_ADM ,
UNI.DA_UNI_ADM ,
APOS.NO_BOLETIM NO_OS ,
EQ.CD_EQUIPTO ,
MOD.DE_MODELO
FROM AU_APTO A
JOIN AU_APTO_PROD PROD ON (A.ID_AU_APTO = PROD.ID_AU_APTO)
JOIN CCUSTO C ON (PROD.ID_CCUSTO = C.ID_CCUSTO)
JOIN PERIODOSAFRA P ON (A.ID_PERIODOSAFRA = P.ID_PERIODOSAFRA)
JOIN SAFRA S ON (P.ID_SAFRA = S.ID_SAFRA)
JOIN OPERACAO O ON (PROD.ID_OPERACAO = O.ID_OPERACAO)
JOIN UNIMEDIDA UMED ON (O.ID_UNIMEDIDA = UMED.ID_UNIMEDIDA )
JOIN UPNIVEL3 U3 ON (PROD.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
JOIN UPNIVEL1 U1 ON (U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
JOIN UNIDADEADM UNI ON ( A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
LEFT JOIN EQUIPE E ON (A.ID_EQUIPE = E.ID_EQUIPE)
LEFT JOIN EQUIPTO EQ ON (A.ID_EQUIPTO = EQ.ID_EQUIPTO)
LEFT JOIN MODELO MOD ON (EQ.ID_MODELO = MOD.ID_MODELO)
LEFT JOIN APORDSERVICO APOS ON (PROD.ID_APORDSERVICO = APOS.ID_APORDSERVICO)
WHERE O.ID_UNIMEDIDA = "PARÂMETRO HECTARE"
)

  • Para otimização da consulta, considerar os filtros informados para os dois sub-selects.
  • Alterar o método generateOrderBy para desconsiderar o ALIAS dos campos após alteração do sql.

 

  • Tipo Analítico:
  • O relatório de Atividade de Produção do tipo analítico utiliza o método selectByFilter da classe AtividadeProducaoDAO. Porém, este método também é utilizado para recuperar os Apontamentos de Produção na tela Apontamentos > Atividades e Recursos > Atividades de Produção. Para não haver conflito entre as funcionalidades, deverá ser criado um novo serviço para recuperar os registros para o relatório. Assim, utilizar o sql abaixo. Para não haver impactos no arquivo de relatório, utilizar o mesmo tipo de objeto do método selectByFilter.
  • A SQL deverá recuperar apenas os apontamentos Agrícolas de Produção que possuem a unidade de medida Hectare. Para isso, recuperar o parâmetro das configurações gerais: Tabela: PRXPARAMETER, CONTEXT_APL = "PIMSGRAOS.UNIMEDIDA" e NAME_PARAMETER = "CD_UM_HA". Recuperado o parâmetro, substituir na sql abaixo o trecho destacado ("PARÂMETRO HECTARE") pelo campo ID_VALOR recuperado na consulta do parâmetro.


SELECT
ID_APTO ,
NO_BOLETIM ,
DT_OPERACAO ,
QT_AREA_EXEC ,
ID_CCUSTO ,
ID_PERIODOSAFRA ,
ID_OPERACAO ,
ID_UPNIVEL3 ,
ID_EQUIPE ,
ROWVERSION ,
ID_UNIDADEADM ,
NO_COL_MOBILIDADE ,
NO_BOL_MOBILIDADE ,
CHANGED_BY_MOBIL ,
NO_MOBILIDADE ,
ID_APORDSERVICO ,
ID_EQUIPTO ,
FG_TURNO ,
CD_CCUSTO ,
DE_CCUSTO ,
CD_EQUIPE ,
DE_EQUIPE ,
CD_PER_SAFRA ,
DA_PER_SAFRA ,
ID_SAFRA ,
CD_SAFRA ,
DA_SAFRA ,
CD_OPERACAO ,
DE_OPERACAO ,
ID_UNIMEDIDA ,
CD_UNI_MEDIDA ,
DA_UNI_MEDIDA ,
CD_UPNIVEL3 ,
QT_AREA_PROD ,
ID_UPNIVEL2 ,
CD_UPNIVEL2 ,
DA_UPNIVEL2 ,
ID_UPNIVEL1 ,
CD_UPNIVEL1 ,
DA_UPNIVEL1 ,
CD_UNI_ADM ,
DA_UNI_ADM ,
NO_OS ,
CD_EQUIPTO ,
DE_MODELO
FROM
(
SELECT
A.ID_APATIVPROD ID_APTO,
A.NO_BOLETIM ,
A.DT_OPERACAO ,
A.QT_AREA_EXEC ,
A.ID_CCUSTO ,
A.ID_PERIODOSAFRA ,
A.ID_OPERACAO ,
A.ID_UPNIVEL3 ,
A.ID_EQUIPE ,
A.ROWVERSION ,
A.ID_UNIDADEADM ,
A.NO_COL_MOBILIDADE ,
A.NO_BOL_MOBILIDADE ,
A.CHANGED_BY_MOBIL ,
A.NO_MOBILIDADE ,
A.ID_APORDSERVICO ,
A.ID_EQUIPTO ,
A.FG_TURNO ,
C.CD_CCUSTO ,
C.DE_CCUSTO ,
E.CD_EQUIPE ,
E.DE_EQUIPE ,
P.CD_PER_SAFRA ,
P.DA_PER_SAFRA ,
S.ID_SAFRA ,
S.CD_SAFRA ,
S.DA_SAFRA ,
O.CD_OPERACAO ,
O.DE_OPERACAO ,
UMED.ID_UNIMEDIDA ,
UMED.CD_UNI_MEDIDA ,
UMED.DA_UNI_MEDIDA ,
U3.CD_UPNIVEL3 ,
U3.QT_AREA_PROD ,
U2.ID_UPNIVEL2 ,
U2.CD_UPNIVEL2 ,
U2.DA_UPNIVEL2 ,
U1.ID_UPNIVEL1 ,
U1.CD_UPNIVEL1 ,
U1.DA_UPNIVEL1 ,
UNI.CD_UNI_ADM ,
UNI.DA_UNI_ADM ,
APOS.NO_BOLETIM NO_OS ,
EQ.CD_EQUIPTO ,
MOD.DE_MODELO
FROM APATIVPROD A
LEFT JOIN EQUIPE E ON (A.ID_EQUIPE = E.ID_EQUIPE)
LEFT JOIN UNIDADEADM UNI ON (A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
JOIN CCUSTO C ON (A.ID_CCUSTO = C.ID_CCUSTO)
JOIN PERIODOSAFRA P ON (A.ID_PERIODOSAFRA = P.ID_PERIODOSAFRA)
JOIN SAFRA S ON (P.ID_SAFRA = S.ID_SAFRA)
JOIN OPERACAO O ON (A.ID_OPERACAO = O.ID_OPERACAO)
JOIN UNIMEDIDA UMED ON (O.ID_UNIMEDIDA = UMED.ID_UNIMEDIDA )
JOIN UPNIVEL3 U3 ON (A.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
JOIN UPNIVEL1 U1 ON (U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
LEFT JOIN EQUIPTO EQ ON (A.ID_EQUIPTO = EQ.ID_EQUIPTO)
LEFT JOIN MODELO MOD ON (EQ.ID_MODELO = MOD.ID_MODELO)
LEFT JOIN APORDSERVICO APOS ON (A.ID_APORDSERVICO = APOS.ID_APORDSERVICO)
UNION ALL
SELECT
A.ID_AU_APTO ID_APTO,
A.NO_BOLETIM ,
A.DT_OPERACAO ,
PROD.QT_PRODUCAO QT_AREA_EXEC ,
PROD.ID_CCUSTO ,
A.ID_PERIODOSAFRA ,
PROD.ID_OPERACAO ,
PROD.ID_UPNIVEL3 ,
A.ID_EQUIPE ,
A.ROWVERSION ,
A.ID_UNIDADEADM ,
A.NO_COL_MOBILIDADE ,
A.NO_BOL_MOBILIDADE ,
A.CHANGED_BY_MOBIL ,
A.NO_MOBILIDADE ,
PROD.ID_APORDSERVICO ,
A.ID_EQUIPTO ,
A.FG_TURNO ,
C.CD_CCUSTO ,
C.DE_CCUSTO ,
E.CD_EQUIPE ,
E.DE_EQUIPE ,
P.CD_PER_SAFRA ,
P.DA_PER_SAFRA ,
S.ID_SAFRA ,
S.CD_SAFRA ,
S.DA_SAFRA ,
O.CD_OPERACAO ,
O.DE_OPERACAO ,
UMED.ID_UNIMEDIDA ,
UMED.CD_UNI_MEDIDA ,
UMED.DA_UNI_MEDIDA ,
U3.CD_UPNIVEL3 ,
U3.QT_AREA_PROD ,
U2.ID_UPNIVEL2 ,
U2.CD_UPNIVEL2 ,
U2.DA_UPNIVEL2 ,
U1.ID_UPNIVEL1 ,
U1.CD_UPNIVEL1 ,
U1.DA_UPNIVEL1 ,
UNI.CD_UNI_ADM ,
UNI.DA_UNI_ADM ,
APOS.NO_BOLETIM NO_OS ,
EQ.CD_EQUIPTO ,
MOD.DE_MODELO
FROM AU_APTO A
JOIN AU_APTO_PROD PROD ON (A.ID_AU_APTO = PROD.ID_AU_APTO)
LEFT JOIN EQUIPE E ON (A.ID_EQUIPE = E.ID_EQUIPE)
LEFT JOIN UNIDADEADM UNI ON (A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
JOIN CCUSTO C ON (PROD.ID_CCUSTO = C.ID_CCUSTO)
JOIN PERIODOSAFRA P ON (A.ID_PERIODOSAFRA = P.ID_PERIODOSAFRA)
JOIN SAFRA S ON (P.ID_SAFRA = S.ID_SAFRA)
JOIN OPERACAO O ON (PROD.ID_OPERACAO = O.ID_OPERACAO)
JOIN UNIMEDIDA UMED ON (O.ID_UNIMEDIDA = UMED.ID_UNIMEDIDA )
JOIN UPNIVEL3 U3 ON (PROD.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
JOIN UPNIVEL1 U1 ON (U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
LEFT JOIN EQUIPTO EQ ON (A.ID_EQUIPTO = EQ.ID_EQUIPTO)
LEFT JOIN MODELO MOD ON (EQ.ID_MODELO = MOD.ID_MODELO)
LEFT JOIN APORDSERVICO APOS ON (PROD.ID_APORDSERVICO = APOS.ID_APORDSERVICO)
WHERE O.ID_UNIMEDIDA = "PARÂMETRO HECTARE"
)

Alteração na consulta de Consistência em Atividades Mecanizadas para contemplar os Apontamentos Agrícolas.


Objetivo: Alteração na consulta de Consistência em Atividades Mecanizadas para contemplar os Apontamentos Agrícolas.
Menu: Visões > Atividades e Recursos > Consistência em Atividades Mecanizadas
Entrada de menu: AERV0012
Esboço da tela:



Especificação técnica:

  • Alterar a Consistência de Atividades Mecanizadas para contemplar os Apontamentos Agrícolas. Para isso, alterar o método selectConsistenciaAtividadeMecanizada da classe AtividadeMecanizadaDAO incluindo no select utilizado o trecho abaixo.

 

  • Os filtros da tela deverão ser aplicados no trecho que deverá ser incluso.


UNION ALL
SELECT
A.ID_UNIDADEADM,
U.DA_UNI_ADM,
C.DE_CATEG_OPERAC,
EP.DE_EQUIPE,
A.NO_BOLETIM,
A.DT_OPERACAO,
E.CD_EQUIPTO,
M.DE_MODELO,
F.CD_FUNCIONAR,
F.DE_FUNCIONAR,
S.CD_SAFRA,
PS.CD_PER_SAFRA,
PS.DE_PER_SAFRA,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
O.CD_OPERACAO,
O.DE_OPERACAO,
LC.QT_INI_HK,
LC.QT_FIM_HK,
LC.QT_TOTAL_HK ,
IMP.CD_EQUIPTO AS CD_IMPLEMENTO,
M_IMP.DE_MODELO AS DE_MODELO_IMPLEMENTO
FROM AU_APTO A
JOIN AU_APTO_MEC LC ON (A.ID_AU_APTO = LC.ID_AU_APTO)
JOIN UNIDADEADM U ON(A.ID_UNIDADEADM = U.ID_UNIDADEADM)
JOIN EQUIPTO E ON(A.ID_EQUIPTO = E.ID_EQUIPTO)
JOIN CATOPERACIONAL C ON(E.ID_CATOPERACIONAL = C.ID_CATOPERACIONAL)
LEFT JOIN EQUIPE EP ON(A.ID_EQUIPE = EP.ID_EQUIPE)
JOIN MODELO M ON(E.ID_MODELO = M.ID_MODELO)
JOIN FUNCIONAR F ON (A.ID_FUNCIONAR = F.ID_FUNCIONAR)
LEFT JOIN UPNIVEL3 U3 ON(LC.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
LEFT JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA OR LC.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
LEFT JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA OR LC.ID_SAFRA = S.ID_SAFRA)
JOIN CCUSTO CC ON(LC.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO O ON(LC.ID_OPERACAO = O.ID_OPERACAO)
LEFT JOIN EQUIPTO IMP ON(LC.ID_EQUIPTO_IM = IMP.ID_EQUIPTO)
LEFT JOIN MODELO M_IMP ON (IMP.ID_MODELO = M_IMP.ID_MODELO)
WHERE(
(O.FG_TP_CLASSE = '1')
OR
(O.FG_TP_CLASSE = '2')
)
AND
(
(E.ID_UNIDADEADM = ?)
OR(
(SELECT D.ID_UNIDADEADM
FROM EQUIPTODISP D
WHERE D.ID_EQUIPTO = E.ID_EQUIPTO
AND D.DT_EVENTO = (
SELECT MAX(D1.DT_EVENTO)
FROM EQUIPTODISP D1
WHERE D1.ID_EQUIPTO = E.ID_EQUIPTO
AND D1.DT_EVENTO <= SYSDATE
)
) = ?
)
)
--FILTRO

Alteração na consulta de Consistência em Controle de Rendimentos para contemplar os Apontamentos Agrícolas.


Objetivo: Alteração na consulta de Consistência em Controle de Rendimentos para contemplar os Apontamentos Agrícolas.
Menu: Visões > Atividades e Recursos > Consistência em Controle de Rendimentos
Entrada de menu: AERV0013
Esboço da tela:


Especificação técnica:

  • Alterar o método selectConsistenciaControleRendimentos da Classe AtividadeMecanizadaDAO considerando os apontamentos agrícolas. Para isso, alterar a sql incluindo o trecho abaixo. Os filtros utilizados na sql atual deverão ser mantidos no trecho a ser incluído. Observe que na consulta abaixo há a instrução sql.append(whereIntern);. A instrução é utilizada no código fonte, dessa forma, deve-se mantê-la.



UNION ALL(
SELECT
S.ID_SAFRA,
S.CD_SAFRA,
PS.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DE_PER_SAFRA,
CC.ID_CCUSTO,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
O.ID_OPERACAO,
O.CD_OPERACAO,
O.DE_OPERACAO,
U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
U3.CD_UPNIVEL3,
RAT.ID_UPNIVEL3,
U3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
SUM(rat.QT_TOTAL_HK) HORAS,
0 AREA,
EP.ID_EQUIPE,
EP.CD_EQUIPE,
EP.DE_EQUIPE
FROM AU_APTO M
JOIN AU_APTO_MEC MD ON (M.ID_AU_APTO = MD.ID_AU_APTO)
JOIN AU_APTO_MEC_RAT RAT on (MD.ID_AU_APTO_MEC = RAT.ID_AU_APTO_MEC)
LEFT JOIN UPNIVEL3 U3 ON (RAT.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
LEFT JOIN MODULOADM MADM ON (U3.ID_MODULOADM = MADM.ID_MODULOADM)
LEFT JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
LEFT JOIN UPNIVEL1 U1 ON (U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
LEFT JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
LEFT JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA)
JOIN CCUSTO CC ON (MD.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO O ON (MD.ID_OPERACAO = O.ID_OPERACAO)
JOIN EQUIPTO E ON (M.ID_EQUIPTO = E.ID_EQUIPTO)
JOIN CATOPERACIONAL C ON (E.ID_CATOPERACIONAL = C.ID_CATOPERACIONAL)
JOIN UNIMEDIDA UME ON (C.ID_UNIMEDIDA = UME.ID_UNIMEDIDA)
JOIN UNIMEDIDA UMO ON (O.ID_UNIMEDIDA = UMO.ID_UNIMEDIDA)
LEFT JOIN EQUIPE EP ON (M.ID_EQUIPE = EP.ID_EQUIPE)
WHERE
UPPER(UME.CD_UNI_MEDIDA) = 'valorParametroHora'
AND UPPER(UMO.CD_UNI_MEDIDA) = 'valorParametroHectare'
AND O.FG_TP_CLASSE IN (1,2,3)
AND O.FG_TP_OPER IN ('M', 'S')
AND M.ID_UNIDADEADM = ?
--sql.append(whereIntern);
GROUP BY
S.ID_SAFRA,
S.CD_SAFRA,
PS.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DE_PER_SAFRA,
CC.ID_CCUSTO,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
O.ID_OPERACAO,
O.CD_OPERACAO,
O.DE_OPERACAO,
U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
U3.CD_UPNIVEL3,
RAT.ID_UPNIVEL3,
U3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
EP.ID_EQUIPE,
EP.CD_EQUIPE,
EP.DE_EQUIPE
UNION
SELECT
S.ID_SAFRA,
S.CD_SAFRA,
PS.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DE_PER_SAFRA,
CC.ID_CCUSTO,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
O.ID_OPERACAO,
O.CD_OPERACAO,
O.DE_OPERACAO,
U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
U3.CD_UPNIVEL3,
MD.ID_UPNIVEL3,
U3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
0 HORAS,
SUM(MD.QT_AREA) AREA,
EP.ID_EQUIPE,
EP.CD_EQUIPE,
EP.DE_EQUIPE
FROM AU_APTO M
JOIN AU_APTO_INS AP_INS ON (M.ID_AU_APTO = AP_INS.ID_AU_APTO)
JOIN AU_APTO_LC MD ON (M.ID_AU_APTO = MD.ID_AU_APTO)
LEFT JOIN UPNIVEL3 U3 ON (MD.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
LEFT JOIN MODULOADM MADM ON (U3.ID_MODULOADM = MADM.ID_MODULOADM)
LEFT JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
LEFT JOIN UPNIVEL1 U1 ON (U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
LEFT JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
LEFT JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA)
JOIN CCUSTO CC ON (M.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO O ON (M.ID_OPERACAO = O.ID_OPERACAO)
JOIN UNIMEDIDA UMO ON (O.ID_UNIMEDIDA = UMO.ID_UNIMEDIDA)
LEFT JOIN EQUIPE EP ON (M.ID_EQUIPE = EP.ID_EQUIPE)
WHERE
UPPER(UMO.CD_UNI_MEDIDA) = 'valorParametroHectare'
AND O.FG_TP_CLASSE IN (1,2,3)
AND O.FG_TP_OPER IN ('M', 'S')
AND M.ID_UNIDADEADM = ?
--sql.append(whereIntern);
GROUP BY
S.ID_SAFRA,
S.CD_SAFRA,
PS.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DE_PER_SAFRA,
CC.ID_CCUSTO,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
O.ID_OPERACAO,
O.CD_OPERACAO,
O.DE_OPERACAO,
U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
U3.CD_UPNIVEL3,
MD.ID_UPNIVEL3,
U3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
EP.ID_EQUIPE,
EP.CD_EQUIPE,
EP.DE_EQUIPE
UNION
SELECT
S.ID_SAFRA,
S.CD_SAFRA,
PS.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DE_PER_SAFRA,
CC.ID_CCUSTO,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
O.ID_OPERACAO,
O.CD_OPERACAO,
O.DE_OPERACAO,
U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
U3.CD_UPNIVEL3,
PROD.ID_UPNIVEL3,
U3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
0 HORAS,
SUM(PROD.QT_PRODUCAO) AREA,
EP.ID_EQUIPE,
EP.CD_EQUIPE,
EP.DE_EQUIPE
FROM AU_APTO M
JOIN AU_APTO_PROD PROD ON (M.ID_AU_APTO = PROD.ID_AU_APTO)
JOIN UPNIVEL3 U3 ON (PROD.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
LEFT JOIN MODULOADM MADM ON (U3.ID_MODULOADM = MADM.ID_MODULOADM)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
JOIN UPNIVEL1 U1 ON (U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA)
JOIN CCUSTO CC ON (PROD.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO O ON (PROD.ID_OPERACAO = O.ID_OPERACAO)
JOIN UNIMEDIDA UMO ON (O.ID_UNIMEDIDA = UMO.ID_UNIMEDIDA)
LEFT JOIN EQUIPE EP ON (M.ID_EQUIPE = EP.ID_EQUIPE)
WHERE
UPPER(UMO.CD_UNI_MEDIDA) = 'valorParametroHectare'
AND O.FG_TP_CLASSE IN (1,2,3)
AND O.FG_TP_OPER IN ('M', 'S')
AND M.ID_UNIDADEADM = ?
--sql.append(whereIntern);
GROUP BY
S.ID_SAFRA,
S.CD_SAFRA,
PS.ID_PERIODOSAFRA,
PS.CD_PER_SAFRA,
PS.DE_PER_SAFRA,
CC.ID_CCUSTO,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
O.ID_OPERACAO,
O.CD_OPERACAO,
O.DE_OPERACAO,
U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
U3.CD_UPNIVEL3,
PROD.ID_UPNIVEL3,
U3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
EP.ID_EQUIPE,
EP.CD_EQUIPE,
EP.DE_EQUIPE
)

Alteração na Consulta Analítica de Atividades Manuais para contemplar os Apontamentos


Objetivo: Alteração na Consulta Analítica de Atividades Manuais para contemplar os Apontamentos
Menu: Visões > Atividades e Recursos > Consulta Analítica de Atividades Manuais
Entrada de menu: AERV0014
Esboço da tela:


Especificação técnica:

  • Alterar o método selectAnaliticAtividadesManuais da Classe AtividadeManualDAO para contemplar os Apontamentos Agrícolas. Para isso, substituir o sql utilizado pelo sql abaixo.

 

  • Deverá ser alterado o arquivo consultaAnaliticaAtividadesManuaisFilters.xml excluindo os "ALIAS" existentes para contemplar a nova consulta. Os filtros deverão ser aplicados nos dois sub-selects utilizados na nova consulta.


SELECT NO_BOLETIM,
DT_OPERACAO,
CD_EQUIPE,
DE_EQUIPE,
CD_FUNCIONAR,
DE_FUNCIONAR,
CD_CCUSTOD,
DE_CCUSTOD,
CD_CARGO,
DE_CARGO,
CD_SAFRA,
CD_PER_SAFRA,
DE_PER_SAFRA,
CD_CCUSTO,
DE_CCUSTO,
CD_OPERACAO,
DE_OPERACAO,
HR_INI_JORN,
HR_FIM_JORN,
QT_RECURSO,
QT_TOTAL_JORN
FROM
(
SELECT P.NO_BOLETIM,
P.DT_OPERACAO,
E.CD_EQUIPE,
E.DE_EQUIPE,
F.CD_FUNCIONAR,
F.DE_FUNCIONAR,
CCD.CD_CCUSTO CD_CCUSTOD,
CCD.DE_CCUSTO DE_CCUSTOD,
C.CD_CARGO,
C.DE_CARGO,
S.CD_SAFRA,
PS.CD_PER_SAFRA,
PS.DE_PER_SAFRA,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
O.CD_OPERACAO,
O.DE_OPERACAO,
P.HR_INI_JORN,
P.HR_FIM_JORN,
P.QT_RECURSO,
P.QT_TOTAL_JORN
FROM APATIVMAN P
LEFT JOIN EQUIPE E ON (P.ID_EQUIPE = E.ID_EQUIPE)
JOIN FUNCIONAR F ON (P.ID_FUNCIONAR = F.ID_FUNCIONAR)
JOIN FUNCIONARDISP FD ON (P.ID_FUNCIONAR = FD.ID_FUNCIONAR)
JOIN CCUSTO CCD ON (FD.ID_CCUSTO = CCD.ID_CCUSTO)
JOIN CARGO C ON (FD.ID_CARGO = C.ID_CARGO)
JOIN UPNIVEL3 U3 ON (P.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA)
JOIN CCUSTO CC ON (P.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO O ON (P.ID_OPERACAO = O.ID_OPERACAO)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
WHERE (FD.DT_EVENTO =
(SELECT MAX(FD1.DT_EVENTO)
FROM FUNCIONARDISP FD1
WHERE FD1.ID_FUNCIONAR = P.ID_FUNCIONAR
AND FD1.DT_EVENTO <= P.DT_OPERACAO
))
AND (P.ID_UNIDADEADM = 8046868420951499909 )
--filtro
UNION ALL
SELECT P.NO_BOLETIM,
P.DT_OPERACAO,
E.CD_EQUIPE,
E.DE_EQUIPE,
F.CD_FUNCIONAR,
F.DE_FUNCIONAR,
CCD.CD_CCUSTO CD_CCUSTOD,
CCD.DE_CCUSTO DE_CCUSTOD,
C.CD_CARGO,
C.DE_CARGO,
S.CD_SAFRA,
PS.CD_PER_SAFRA,
PS.DE_PER_SAFRA,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
O.CD_OPERACAO,
O.DE_OPERACAO,
MAN.HR_INI_JORN,
MAN.HR_FIM_JORN,
MAN.QT_RECURSO,
MAN.QT_TOTAL_JORN
FROM AU_APTO P
JOIN AU_APTO_MAN MAN ON (P.ID_AU_APTO = MAN.ID_AU_APTO)
LEFT JOIN EQUIPE E ON (P.ID_EQUIPE = E.ID_EQUIPE)
JOIN FUNCIONAR F ON (MAN.ID_FUNCIONAR = F.ID_FUNCIONAR)
JOIN FUNCIONARDISP FD ON (MAN.ID_FUNCIONAR = FD.ID_FUNCIONAR)
JOIN CCUSTO CCD ON (FD.ID_CCUSTO = CCD.ID_CCUSTO)
JOIN CARGO C ON (FD.ID_CARGO = C.ID_CARGO)
JOIN UPNIVEL3 U3 ON (MAN.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN PERIODOSAFRA PS ON (U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA)
JOIN CCUSTO CC ON (MAN.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO O ON (MAN.ID_OPERACAO = O.ID_OPERACAO)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
WHERE (FD.DT_EVENTO =
(SELECT MAX(FD1.DT_EVENTO)
FROM FUNCIONARDISP FD1
WHERE FD1.ID_FUNCIONAR = MAN.ID_FUNCIONAR
AND FD1.DT_EVENTO <= P.DT_OPERACAO
))
AND (P.ID_UNIDADEADM = 8046868420951499909 )
--filtro
)CONSULTA
ORDER BY NO_BOLETIM, CD_FUNCIONAR

Alteração nos relatórios de Apontamentos de Plantio para contemplar os Apontamentos Agrícolas.


Objetivo: Alteração nos relatórios de Apontamentos de Plantio dos tipos Sumário Geral, Consumo de Insumos Analítico, Consumo de Insumos por Operação, Consumos de Insumos no Plantio e Acompanhamento de Plantio Analítico para contemplar os Apontamentos Agrícolas.
Menu: Visões > Plantio > Plantio
Entrada de menu: PLAV0006
Esboço da tela:


Especificação técnica:

  • Alterar os relatórios de Plantio dos tipos Sumário Geral, Consumo de Insumos Analítico, Consumo de Insumos por Operação, Consumos de Insumos no Plantio e Acompanhamento de Plantio Analítico para contemplar os Apontamentos Agrícolas da seguinte forma:

 

  • Tipo: Sumário Geral

 

  • Para o tipo de relatório Sumário Geral, deverá ser alterado o Método selectForReport da classe ApontamentoPlantioDAO. Deverá ser substituído o sql utilizado pelo sql abaixo. Os filtros utilizados atualmente deverão ser aplicados em ambos os selects utilizados na consulta.


SELECT ID_APTO,
NO_BOLETIM,
DT_OPERACAO,
ID_PERIODOSAFRA,
ID_CCUSTO,
ID_OPERACAO,
ID_UPNIVEL3,
ID_VARIEDADE,
ID_ESPACAMENTO,
ID_SISTCULTIVO,
ID_SISTPLANTIO,
ID_APTRATSEMENT,
NO_PENEIRA,
PE_VIGOR,
PE_GERMINACAO,
QT_DENSIDADE,
FG_REPLANTIO,
QT_AREA,
ID_PRESTSERVICO,
ID_EQUIPE,
ROWVERSION,
CD_PER_SAFRA,
DA_PER_SAFRA,
ID_SAFRA,
CD_SAFRA,
DA_SAFRA,
CD_CCUSTO,
DE_CCUSTO,
CD_OPERACAO,
DE_OPERACAO,
CD_UPNIVEL3,
QT_AREA_PROD,
DT_PLANT_ENC,
DT_PLANT_INI,
ID_MODULOADM,
CD_MOD_ADM,
DA_MOD_ADM,
ID_UPNIVEL2,
CD_UPNIVEL2,
DA_UPNIVEL2,
ID_UPNIVEL1,
CD_UPNIVEL1,
DA_UPNIVEL1,
CD_VARIEDADE,
DA_VARIEDADE,
FG_TP_CLASSE,
ID_OCUPACAO,
CD_OCUPACAO,
DA_OCUPACAO,
CD_ESPACAMENTO,
DA_ESPACAMENTO,
CD_SIST_CULT,
DA_SIST_CULT,
CD_SIST_PLAN,
DA_SIST_PLAN,
NO_BOLETIM_TS,
CD_PRESTSERV,
DE_PRESTSERV,
CD_EQUIPE,
DE_EQUIPE,
AP_DET,
ID_INSUMO,
QT_DOSE,
QT_TOTAL,
ID_DEPOSITO,
ID_PROCEDENCIA,
CD_INSUMO,
DA_INSUMO,
FG_SEMENTE,
CD_DEPOSITO,
DA_DEPOSITO,
CD_PROCEDENCIA,
DA_PROCEDENCIA,
ID_TRAT_SEMENTE,
NO_BOLETIM_TRAT_SEMENTE,
NO_COL_MOBILIDADE,
NO_BOL_MOBILIDADE,
CHANGED_BY_MOBIL,
NO_MOBILIDADE,
FG_ROYALTIES,
NO_LINHAS,
ID_GRPVARIEDADE,
CD_GRP_VARIEDADE,
DA_GRP_VARIEDADE,
ID_EQUIPTO,
CD_EQUIPTO,
DE_MODELO
FROM(
SELECT AP.ID_APPLANTIO AS ID_APTO,
AP.NO_BOLETIM,
AP.DT_OPERACAO,
AP.ID_PERIODOSAFRA,
AP.ID_CCUSTO,
AP.ID_OPERACAO,
AP.ID_UPNIVEL3,
AP.ID_VARIEDADE,
AP.ID_ESPACAMENTO,
AP.ID_SISTCULTIVO,
AP.ID_SISTPLANTIO,
AP.ID_APTRATSEMENT,
AP.NO_PENEIRA,
AP.PE_VIGOR,
AP.PE_GERMINACAO,
AP.QT_DENSIDADE,
AP.FG_REPLANTIO,
AP.QT_AREA,
AP.ID_PRESTSERVICO,
AP.ID_EQUIPE,
AP.ROWVERSION,
PS.CD_PER_SAFRA,
PS.DA_PER_SAFRA,
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
OPER.CD_OPERACAO,
OPER.DE_OPERACAO,
N3.CD_UPNIVEL3,
N3.QT_AREA_PROD,
N3.DT_PLANT_ENC,
N3.DT_PLANT_INI,
N3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
UPN2.ID_UPNIVEL2,
UPN2.CD_UPNIVEL2,
UPN2.DA_UPNIVEL2,
UPN1.ID_UPNIVEL1,
UPN1.CD_UPNIVEL1,
UPN1.DA_UPNIVEL1,
VAR.CD_VARIEDADE,
VAR.DA_VARIEDADE,
VAR.FG_TP_CLASSE,
OCUP.ID_OCUPACAO,
OCUP.CD_OCUPACAO,
OCUP.DA_OCUPACAO,
ESP.CD_ESPACAMENTO,
ESP.DA_ESPACAMENTO,
SCUL.CD_SIST_CULT,
SCUL.DA_SIST_CULT,
SPLAN.CD_SIST_PLAN,
SPLAN.DA_SIST_PLAN,
APTO.NO_BOLETIM AS NO_BOLETIM_TS,
PSERV.CD_PRESTSERV,
PSERV.DE_PRESTSERV,
E.CD_EQUIPE,
E.DE_EQUIPE,
PP_IN.ID_APPLANTIO_IN AS AP_DET,
PP_IN.ID_INSUMO,
PP_IN.QT_DOSE,
PP_IN.QT_TOTAL,
PP_IN.ID_DEPOSITO,
PP_IN.ID_PROCEDENCIA,
I.CD_INSUMO,
I.DA_INSUMO,
I.FG_SEMENTE,
D.CD_DEPOSITO,
D.DA_DEPOSITO,
P.CD_PROCEDENCIA,
P.DA_PROCEDENCIA,
AP.ID_APTRATSEMENT AS ID_TRAT_SEMENTE,
TS.NO_BOLETIM AS NO_BOLETIM_TRAT_SEMENTE,
AP.NO_COL_MOBILIDADE,
AP.NO_BOL_MOBILIDADE,
AP.CHANGED_BY_MOBIL,
AP.NO_MOBILIDADE,
AP.FG_ROYALTIES,
NO_LINHAS,
GV.ID_GRPVARIEDADE,
GV.CD_GRP_VARIEDADE,
GV.DA_GRP_VARIEDADE,
AP.ID_EQUIPTO,
EPTO.CD_EQUIPTO,
MOD.DE_MODELO
FROM APPLANTIO AP
JOIN PERIODOSAFRA PS ON (AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN CCUSTO CC ON (AP.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO OPER ON (AP.ID_OPERACAO = OPER.ID_OPERACAO)
JOIN UPNIVEL3 N3 ON (AP.ID_UPNIVEL3 = N3.ID_UPNIVEL3)
LEFT JOIN MODULOADM MADM ON (N3.ID_MODULOADM = MADM.ID_MODULOADM)
JOIN VARIEDADE VAR ON (AP.ID_VARIEDADE = VAR.ID_VARIEDADE)
JOIN OCUPACAO OCUP ON (VAR.ID_OCUPACAO = OCUP.ID_OCUPACAO)
JOIN ESPACAMENTO ESP ON (AP.ID_ESPACAMENTO = ESP.ID_ESPACAMENTO)
LEFT OUTER JOIN SISTCULTIVO SCUL ON (AP.ID_SISTCULTIVO = SCUL.ID_SISTCULTIVO)
LEFT OUTER JOIN SISTPLANTIO SPLAN ON (AP.ID_SISTPLANTIO = SPLAN.ID_SISTPLANTIO)
LEFT OUTER JOIN APTRATSEMENT APTO ON (AP.ID_APTRATSEMENT = APTO.ID_APTRATSEMENT)
JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA)
JOIN UPNIVEL2 UPN2 ON (N3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
LEFT OUTER JOIN PRESTSERV PSERV ON (AP.ID_PRESTSERVICO = PSERV.ID_PRESTSERV)
LEFT OUTER JOIN EQUIPE E ON (AP.ID_EQUIPE = E.ID_EQUIPE)
LEFT OUTER JOIN APPLANTIO_IN PP_IN ON (AP.ID_APPLANTIO = PP_IN.ID_APPLANTIO)
JOIN INSUMO I ON (PP_IN.ID_INSUMO = I.ID_INSUMO)
LEFT OUTER JOIN DEPOSITO D ON (PP_IN.ID_DEPOSITO = D.ID_DEPOSITO)
LEFT OUTER JOIN PROCEDENCIA P ON (PP_IN.ID_PROCEDENCIA = P.ID_PROCEDENCIA)
LEFT OUTER JOIN APTRATSEMENT TS ON (AP.ID_APTRATSEMENT = TS.ID_APTRATSEMENT)
LEFT JOIN GRPVARIEDADE GV ON (VAR.ID_GRPVARIEDADE = GV.ID_GRPVARIEDADE)
LEFT OUTER JOIN EQUIPTO EPTO ON (AP.ID_EQUIPTO = EPTO.ID_EQUIPTO)
LEFT OUTER JOIN MODELO MOD ON (EPTO.ID_MODELO = MOD.ID_MODELO)
UNION ALL
SELECT AP.ID_AU_APTO AS ID_APTO,
AP.NO_BOLETIM,
AP.DT_OPERACAO,
AP.ID_PERIODOSAFRA,
AP.ID_CCUSTO,
AP.ID_OPERACAO,
AP.ID_UPNIVEL3,
AP.ID_VARIEDADE,
AP.ID_ESPACAMENTO,
AP.ID_SISTCULTIVO,
AP.ID_SISTPLANTIO,
AP.ID_APTRATSEMENT,
AP.NO_PENEIRA,
AP.PE_VIGOR,
AP.PE_GERMINACAO,
AP.QT_DENSIDADE,
AP.FG_REPLANTIO,
AP.QT_AREA,
NULL,
AP.ID_EQUIPE,
AP.ROWVERSION,
PS.CD_PER_SAFRA,
PS.DA_PER_SAFRA,
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
OPER.CD_OPERACAO,
OPER.DE_OPERACAO,
N3.CD_UPNIVEL3,
N3.QT_AREA_PROD,
N3.DT_PLANT_ENC,
N3.DT_PLANT_INI,
N3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
UPN2.ID_UPNIVEL2,
UPN2.CD_UPNIVEL2,
UPN2.DA_UPNIVEL2,
UPN1.ID_UPNIVEL1,
UPN1.CD_UPNIVEL1,
UPN1.DA_UPNIVEL1,
VAR.CD_VARIEDADE,
VAR.DA_VARIEDADE,
VAR.FG_TP_CLASSE,
OCUP.ID_OCUPACAO,
OCUP.CD_OCUPACAO,
OCUP.DA_OCUPACAO,
ESP.CD_ESPACAMENTO,
ESP.DA_ESPACAMENTO,
SCUL.CD_SIST_CULT,
SCUL.DA_SIST_CULT,
SPLAN.CD_SIST_PLAN,
SPLAN.DA_SIST_PLAN,
APTO.NO_BOLETIM AS NO_BOLETIM_TS,
NULL,
NULL,
E.CD_EQUIPE,
E.DE_EQUIPE,
PP_IN.ID_AU_APTO_INS AS AP_DET,
PP_IN.ID_INSUMO,
PP_IN.QT_DOSE_PROG AS QT_DOSE,
PP_IN.QT_CONS_TOTAL AS QT_TOTAL,
PP_IN.ID_DEPOSITO,
PP_IN.ID_PROCEDENCIA,
I.CD_INSUMO,
I.DA_INSUMO,
I.FG_SEMENTE,
D.CD_DEPOSITO,
D.DA_DEPOSITO,
P.CD_PROCEDENCIA,
P.DA_PROCEDENCIA,
AP.ID_APTRATSEMENT AS ID_TRAT_SEMENTE,
TS.NO_BOLETIM AS NO_BOLETIM_TRAT_SEMENTE,
AP.NO_COL_MOBILIDADE,
AP.NO_BOL_MOBILIDADE,
AP.CHANGED_BY_MOBIL,
AP.NO_MOBILIDADE,
AP.FG_ROYALTIES,
NO_LINHAS,
GV.ID_GRPVARIEDADE,
GV.CD_GRP_VARIEDADE,
GV.DA_GRP_VARIEDADE,
AP.ID_EQUIPTO,
EPTO.CD_EQUIPTO,
MOD.DE_MODELO
FROM AU_APTO AP
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN PERIODOSAFRA PS ON (AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN CCUSTO CC ON (AP.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO OPER ON (AP.ID_OPERACAO = OPER.ID_OPERACAO)
JOIN UPNIVEL3 N3 ON (LC.ID_UPNIVEL3 = N3.ID_UPNIVEL3)
LEFT JOIN MODULOADM MADM ON (N3.ID_MODULOADM = MADM.ID_MODULOADM)
JOIN VARIEDADE VAR ON (AP.ID_VARIEDADE = VAR.ID_VARIEDADE)
JOIN OCUPACAO OCUP ON (VAR.ID_OCUPACAO = OCUP.ID_OCUPACAO)
LEFT JOIN ESPACAMENTO ESP ON (AP.ID_ESPACAMENTO = ESP.ID_ESPACAMENTO)
LEFT OUTER JOIN SISTCULTIVO SCUL ON (AP.ID_SISTCULTIVO = SCUL.ID_SISTCULTIVO)
LEFT OUTER JOIN SISTPLANTIO SPLAN ON (AP.ID_SISTPLANTIO = SPLAN.ID_SISTPLANTIO)
LEFT OUTER JOIN APTRATSEMENT APTO ON (AP.ID_APTRATSEMENT = APTO.ID_APTRATSEMENT)
JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA)
JOIN UPNIVEL2 UPN2 ON (N3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
LEFT OUTER JOIN EQUIPE E ON (AP.ID_EQUIPE = E.ID_EQUIPE)
LEFT OUTER JOIN AU_APTO_INS PP_IN ON (AP.ID_AU_APTO = PP_IN.ID_AU_APTO)
JOIN INSUMO I ON (PP_IN.ID_INSUMO = I.ID_INSUMO)
LEFT OUTER JOIN DEPOSITO D ON (PP_IN.ID_DEPOSITO = D.ID_DEPOSITO)
LEFT OUTER JOIN PROCEDENCIA P ON (PP_IN.ID_PROCEDENCIA = P.ID_PROCEDENCIA)
LEFT OUTER JOIN APTRATSEMENT TS ON (AP.ID_APTRATSEMENT = TS.ID_APTRATSEMENT)
LEFT JOIN GRPVARIEDADE GV ON (VAR.ID_GRPVARIEDADE = GV.ID_GRPVARIEDADE)
LEFT OUTER JOIN EQUIPTO EPTO ON (AP.ID_EQUIPTO = EPTO.ID_EQUIPTO)
LEFT OUTER JOIN MODELO MOD ON (EPTO.ID_MODELO = MOD.ID_MODELO)
)
ORDER BY DT_OPERACAO,
DA_SAFRA,
NO_BOLETIM,
DA_PER_SAFRA,
DE_EQUIPE,
DA_VARIEDADE,
FG_SEMENTE DESC,
DA_INSUMO

  • Tipo: Consumo de Insumos Analítico

 

  • Para o Tipo de relatório Consumo de Insumos Analítico é utilizado o método selectByFilter da classe ApontamentoPlantioDAO. Este mesmo método é utilizado para recuperar os Apontamentos exclusivamente de Plantio. Para não haver impactos na funcionalidade de Apontamento de Plantio, deverá ser criado um novo serviço na classe ApontamentoPlantioDAO que deverá ser chamado no método showAnaliticReport da classe ApontamentoPlantioAction. Utilize os mesmos objetos utilizados no método selectByFilter.

 

  • No novo serviço, deverá ser recuperado em uma lista os Apontamentos de Plantio através do sql abaixo. Os filtros aplicados devem-se manter os mesmos existentes atualmente.


SELECT AP.ID_APPLANTIO,
AP.NO_BOLETIM,
AP.DT_OPERACAO,
AP.ID_CCUSTO,
AP.ID_OPERACAO,
AP.ID_UPNIVEL3,
AP.ID_APTRATSEMENT,
AP.QT_AREA,
AP.ID_EQUIPE,
PS.CD_PER_SAFRA,
PS.DA_PER_SAFRA,
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
OPER.CD_OPERACAO,
OPER.DE_OPERACAO,
N3.CD_UPNIVEL3,
N3.QT_AREA_PROD,
UPN2.ID_UPNIVEL2,
UPN2.CD_UPNIVEL2,
UPN2.DA_UPNIVEL2,
UPN1.ID_UPNIVEL1,
UPN1.CD_UPNIVEL1,
UPN1.DA_UPNIVEL1,
APTO.NO_BOLETIM AS NO_BOLETIM_TS,
E.CD_EQUIPE,
E.DE_EQUIPE,
NO_LINHAS
FROM APPLANTIO AP
JOIN PERIODOSAFRA PS ON (AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN CCUSTO CC ON (AP.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO OPER ON (AP.ID_OPERACAO = OPER.ID_OPERACAO)
JOIN UPNIVEL3 N3 ON (AP.ID_UPNIVEL3 = N3.ID_UPNIVEL3)
JOIN MODULOADM MADM ON (N3.ID_MODULOADM = MADM.ID_MODULOADM)
JOIN VARIEDADE VAR ON (AP.ID_VARIEDADE = VAR.ID_VARIEDADE)
JOIN OCUPACAO OCUP ON (VAR.ID_OCUPACAO = OCUP.ID_OCUPACAO)
JOIN ESPACAMENTO ESP ON (AP.ID_ESPACAMENTO = ESP.ID_ESPACAMENTO)
LEFT OUTER JOIN SISTCULTIVO SCUL ON (AP.ID_SISTCULTIVO = SCUL.ID_SISTCULTIVO)
LEFT OUTER JOIN SISTPLANTIO SPLAN ON (AP.ID_SISTPLANTIO = SPLAN.ID_SISTPLANTIO)
LEFT OUTER JOIN APTRATSEMENT APTO ON (AP.ID_APTRATSEMENT = APTO.ID_APTRATSEMENT)
JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA)
JOIN UPNIVEL2 UPN2 ON (N3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
LEFT OUTER JOIN PRESTSERV PSERV ON (AP.ID_PRESTSERVICO = PSERV.ID_PRESTSERV)
LEFT OUTER JOIN EQUIPE E ON (AP.ID_EQUIPE = E.ID_EQUIPE)
LEFT OUTER JOIN EQUIPTO EPTO ON (AP.ID_EQUIPTO = EPTO.ID_EQUIPTO)
LEFT OUTER JOIN MODELO MOD ON (EPTO.ID_MODELO = MOD.ID_MODELO)
LEFT OUTER JOIN APORDSERVICO APORD ON (AP.ID_APORDSERVICO = APORD.ID_APORDSERVICO)
LEFT JOIN UNIDADEADM UNI ON ( AP.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
ORDER BY AP.DT_OPERACAO,
APTO.NO_BOLETIM

  • Para cada apontamento recuperado na consulta acima, deverão ser recuperados os insumos utilizados através do sql abaixo:
    SELECT
    PI.ID_APPLANTIO_IN,
    PI.ID_APPLANTIO,
    PI.ID_INSUMO,
    PI.QT_DOSE,
    PI.QT_TOTAL,
    PI.ID_PROCEDENCIA,
    PI.ROWVERSION,
    APTO.NO_BOLETIM,
    I.CD_INSUMO,
    I.DA_INSUMO,
    I.FG_SEMENTE,
    FROM APPLANTIO_IN PI
    JOIN APPLANTIO APTO ON (PI.ID_APPLANTIO = APTO.ID_APPLANTIO)
    JOIN INSUMO I ON (PI.ID_INSUMO = I.ID_INSUMO)
    LEFT JOIN DEPOSITO D ON (PI.ID_DEPOSITO = D.ID_DEPOSITO)
    LEFT JOIN PROCEDENCIA P ON (PI.ID_PROCEDENCIA = P.ID_PROCEDENCIA)
    WHERE PI.ID_APPLANTIO = ?
    ORDER BY I.FG_SEMENTE DESC, I.CD_INSUMO
  • Em seguida, deverão ser recuperados os Apontamentos Agrícolas de acordo com o select abaixo. Deverão ser mantidos os mesmos filtros utilizados no método selectByFilter.


SELECT AP.ID_AU_APTO,
AP.NO_BOLETIM,
AP.DT_OPERACAO,
AP.ID_CCUSTO,
AP.ID_OPERACAO,
AP.ID_UPNIVEL3,
AP.ID_APTRATSEMENT,
AP.QT_AREA,
AP.ID_EQUIPE,
PS.CD_PER_SAFRA,
PS.DA_PER_SAFRA,
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
OPER.CD_OPERACAO,
OPER.DE_OPERACAO,
N3.CD_UPNIVEL3,
N3.QT_AREA_PROD,
UPN2.ID_UPNIVEL2,
UPN2.CD_UPNIVEL2,
UPN2.DA_UPNIVEL2,
UPN1.ID_UPNIVEL1,
UPN1.CD_UPNIVEL1,
UPN1.DA_UPNIVEL1,
APTO.NO_BOLETIM AS NO_BOLETIM_TS,
E.CD_EQUIPE,
E.DE_EQUIPE,
NO_LINHAS
FROM AU_APTO AP
JOIN AU_TIPO TP ON(AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN PERIODOSAFRA PS ON (AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN CCUSTO CC ON (AP.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO OPER ON (AP.ID_OPERACAO = OPER.ID_OPERACAO)
JOIN UPNIVEL3 N3 ON (LC.ID_UPNIVEL3 = N3.ID_UPNIVEL3)
JOIN MODULOADM MADM ON (N3.ID_MODULOADM = MADM.ID_MODULOADM)
JOIN VARIEDADE VAR ON (AP.ID_VARIEDADE = VAR.ID_VARIEDADE)
JOIN OCUPACAO OCUP ON (VAR.ID_OCUPACAO = OCUP.ID_OCUPACAO)
JOIN ESPACAMENTO ESP ON (AP.ID_ESPACAMENTO = ESP.ID_ESPACAMENTO)
LEFT OUTER JOIN SISTCULTIVO SCUL ON (AP.ID_SISTCULTIVO = SCUL.ID_SISTCULTIVO)
LEFT OUTER JOIN SISTPLANTIO SPLAN ON (AP.ID_SISTPLANTIO = SPLAN.ID_SISTPLANTIO)
LEFT OUTER JOIN APTRATSEMENT APTO ON (AP.ID_APTRATSEMENT = APTO.ID_APTRATSEMENT)
JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA)
JOIN UPNIVEL2 UPN2 ON (N3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
LEFT OUTER JOIN EQUIPE E ON (AP.ID_EQUIPE = E.ID_EQUIPE)
LEFT OUTER JOIN EQUIPTO EPTO ON (AP.ID_EQUIPTO = EPTO.ID_EQUIPTO)
LEFT OUTER JOIN MODELO MOD ON (EPTO.ID_MODELO = MOD.ID_MODELO)
LEFT OUTER JOIN APORDSERVICO APORD ON (AP.ID_APORDSERVICO = APORD.ID_APORDSERVICO)
LEFT JOIN UNIDADEADM UNI ON ( AP.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
ORDER BY AP.DT_OPERACAO, APTO.NO_BOLETIM

  • Para cada registro recuperado na consulta acima recuperar os detalhes através do sql abaixo. Nesse sql deverá ser passado os campos ID_AU_APTO e ID_UPNIVEL3 da consulta recuperada acima.


SELECT
PI.ID_AU_APTO_INS_LC,
PI.ID_AU_APTO,
PI.ID_INSUMO,
--PI.QT_DOSE,
PI.QT_CONS_TOTAL,
APTO.NO_BOLETIM,
I.CD_INSUMO,
I.DA_INSUMO,
I.FG_SEMENTE
FROM AU_APTO_INS_LC PI
JOIN AU_APTO APTO ON (PI.ID_AU_APTO = APTO.ID_AU_APTO)
JOIN INSUMO I ON (PI.ID_INSUMO = I.ID_INSUMO)
WHERE PI.ID_AU_APTO = ?
AND PI.ID_UPNIVEL3 = ?
ORDER BY I.FG_SEMENTE DESC, I.CD_INSUMO

  • Para que o relatório contemple as novas alterações, deverá ser criado um agrupamento no arquivo de relatório (ApontamentoPlantioAnalitico.jrxml) por Talhão (UPNIVEL3), pois no Apontamento Agrícola, podem ser apontados mais de um talhão por Apontamento, o que não ocorre no Apontamento de Plantio.


  • Tipo: Consumo de Insumos por Operação

 

  • Para o Tipo de Relatório Consumo de Insumos por Operação é utilizado o método selectForConsumoInsumosReport da classe ApontamentoPlantioDAO. O sql utilizado deverá ser substituído pelo sql abaixo. Os filtros utilizados atualmente deverão ser mantidos nos dois sub-selects da nova consulta


SELECT CD_UNI_ADM ,
DA_UNI_ADM ,
CD_SAFRA ,
DE_SAFRA ,
CD_PER_SAFRA ,
DE_PER_SAFRA ,
CD_CCUSTO ,
DE_CCUSTO ,
CD_OPERACAO ,
DE_OPERACAO ,
ID_INSUMO ,
CD_INSUMO ,
DA_INSUMO ,
FG_SEMENTE ,
SUM(SOMA_TOTAL) AS SOMA_TOTAL ,
SUM(VALOR_TOTAL ) AS VALOR_TOTAL ,
SUM(AREA_PROD) AS AREA_PROD
FROM(
SELECT UA.CD_UNI_ADM ,
UA.DA_UNI_ADM ,
S.CD_SAFRA ,
S.DE_SAFRA ,
PS.CD_PER_SAFRA ,
PS.DE_PER_SAFRA ,
CC.CD_CCUSTO ,
CC.DE_CCUSTO ,
OP.CD_OPERACAO ,
OP.DE_OPERACAO ,
PI.ID_INSUMO ,
I.CD_INSUMO ,
I.DA_INSUMO ,
I.FG_SEMENTE ,
SUM(PI.QT_TOTAL) AS SOMA_TOTAL ,
SUM(PI.QT_VALOR) AS VALOR_TOTAL ,
SUM(AP.QT_AREA) AS AREA_PROD
FROM APPLANTIO_IN PI
JOIN APPLANTIO AP ON (PI.ID_APPLANTIO = AP.ID_APPLANTIO)
JOIN INSUMO I ON (PI.ID_INSUMO = I.ID_INSUMO)
JOIN CCUSTO CC ON ( AP.ID_CCUSTO = CC.ID_CCUSTO )
JOIN PERIODOSAFRA PS ON ( PS.ID_PERIODOSAFRA = AP.ID_PERIODOSAFRA )
JOIN SAFRA S ON ( PS.ID_SAFRA = S.ID_SAFRA )
JOIN OPERACAO OP ON ( AP.ID_OPERACAO = OP.ID_OPERACAO )
JOIN UPNIVEL3 N3 ON ( AP.ID_UPNIVEL3 = N3.ID_UPNIVEL3 )
JOIN UPNIVEL2 N2 ON ( N3.ID_UPNIVEL2 = N2.ID_UPNIVEL2 )
JOIN UPNIVEL1 UPN1 ON ( N2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1 )
JOIN UNIDADEADM UA ON ( AP.ID_UNIDADEADM = UA.ID_UNIDADEADM )
GROUP BY UA.CD_UNI_ADM ,
UA.DA_UNI_ADM ,
S.CD_SAFRA ,
S.DE_SAFRA ,
PS.CD_PER_SAFRA ,
PS.DE_PER_SAFRA ,
CC.CD_CCUSTO ,
CC.DE_CCUSTO ,
OP.CD_OPERACAO ,
OP.DE_OPERACAO ,
PI.ID_INSUMO ,
I.CD_INSUMO ,
I.DA_INSUMO ,
I.FG_SEMENTE
UNION ALL
SELECT UA.CD_UNI_ADM ,
UA.DA_UNI_ADM ,
S.CD_SAFRA ,
S.DE_SAFRA ,
PS.CD_PER_SAFRA ,
PS.DE_PER_SAFRA ,
CC.CD_CCUSTO ,
CC.DE_CCUSTO ,
OP.CD_OPERACAO ,
OP.DE_OPERACAO ,
PI.ID_INSUMO ,
I.CD_INSUMO ,
I.DA_INSUMO ,
I.FG_SEMENTE ,
SUM(PI.QT_CONS_TOTAL) AS SOMA_TOTAL ,
SUM(PI.QT_VALOR) AS VALOR_TOTAL ,
SUM(LC.QT_AREA) AS AREA_PROD
FROM AU_APTO_INS PI
JOIN AU_APTO AP ON (PI.ID_AU_APTO = AP.ID_AU_APTO)
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO='S')
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN INSUMO I ON (PI.ID_INSUMO = I.ID_INSUMO)
JOIN CCUSTO CC ON ( AP.ID_CCUSTO = CC.ID_CCUSTO )
JOIN PERIODOSAFRA PS ON ( PS.ID_PERIODOSAFRA = AP.ID_PERIODOSAFRA )
JOIN SAFRA S ON ( PS.ID_SAFRA = S.ID_SAFRA )
JOIN OPERACAO OP ON ( AP.ID_OPERACAO = OP.ID_OPERACAO )
JOIN UPNIVEL3 N3 ON ( LC.ID_UPNIVEL3 = N3.ID_UPNIVEL3 )
JOIN UPNIVEL2 N2 ON ( N3.ID_UPNIVEL2 = N2.ID_UPNIVEL2 )
JOIN UPNIVEL1 UPN1 ON ( N2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1 )
JOIN UNIDADEADM UA ON ( AP.ID_UNIDADEADM = UA.ID_UNIDADEADM )
GROUP BY UA.CD_UNI_ADM ,
UA.DA_UNI_ADM ,
S.CD_SAFRA ,
S.DE_SAFRA ,
PS.CD_PER_SAFRA ,
PS.DE_PER_SAFRA ,
CC.CD_CCUSTO ,
CC.DE_CCUSTO ,
OP.CD_OPERACAO ,
OP.DE_OPERACAO ,
PI.ID_INSUMO ,
I.CD_INSUMO ,
I.DA_INSUMO ,
I.FG_SEMENTE
)
GROUP BY CD_UNI_ADM ,
DA_UNI_ADM ,
CD_SAFRA ,
DE_SAFRA ,
CD_PER_SAFRA ,
DE_PER_SAFRA ,
CD_CCUSTO ,
DE_CCUSTO ,
CD_OPERACAO ,
DE_OPERACAO ,
ID_INSUMO ,
CD_INSUMO ,
DA_INSUMO ,
FG_SEMENTE
ORDER BY CD_UNI_ADM ,
CD_SAFRA ,
CD_PER_SAFRA ,
CD_CCUSTO
CD_INSUMO

  • Consumos de Insumos no Plantio

 

  • Para o Tipo Consumo de Insumo no Plantio deverá ser alterado o método selectConsumoInsumosPlantio da Classe ApontamentoPlantioDAO. Para isso substituir o sql existente pelo sql abaixo para considerar os Apontamentos Agrícolas. Os filtros existentes atualmente deverão ser considerados em todos os pontos do sql abaixo delimitados por –FILTRO. Onde ocorre no sql abaixo a delimitação –FILTRO UNIDADE ADMINISTRATIVA deverá ser considerado apenas o filtro de Unidade Administrativa assim como na sql atual.


SELECT TAB_FIM.CD_UPNIVEL1,
TAB_FIM.DE_UPNIVEL1,
TAB_FIM.CD_UPNIVEL2,
TAB_FIM.DE_UPNIVEL2,
TAB_FIM.CD_VARIEDADE,
TAB_FIM.DE_VARIEDADE,
SUM(TAB_FIM.AREA) AREA,
TAB_FIM.DE_GRP_INSUMO,
TAB_FIM.FG_SEMENTE,
TAB_FIM.CD_INSUMO,
TAB_FIM.DE_INSUMO,
SUM(TAB_FIM.QT_TOTAL) QT_TOTAL
FROM
(
– RECUPERA OS APONTAMENTOS PROVENIENTES DO APONTAMENTO DE PLANTIO
(
--RECUPERA A ÁREA DOS APONTAMENTOS COM SEMENTE
SELECT U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
SUM(APPL.QT_AREA) AREA,
GIN.DE_GRP_INSUMO,
INPL.FG_SEMENTE,
INPL.CD_INSUMO,
INPL.DE_INSUMO,
0 AS QT_TOTAL
FROM APPLANTIO APPL
LEFT JOIN APTRATSEMENT APTR ON ( APPL.ID_APTRATSEMENT = APTR.ID_APTRATSEMENT )
JOIN
(
--RECUPERA APENAS UM INSUMO (SEMENTE) DOS APONTAMENTOS PARA LISTAR A ÁREA
SELECT APPL.ID_APPLANTIO,
MIN(APPLI.ID_INSUMO) ID_INSUMO
FROM APPLANTIO APPL
JOIN APPLANTIO_IN APPLI
ON (APPL.ID_APPLANTIO = APPLI.ID_APPLANTIO)
JOIN INSUMO INPL
ON (APPLI.ID_INSUMO = INPL.ID_INSUMO)
WHERE INPL.FG_SEMENTE = 'S'
AND (APPL.DT_OPERACAO BETWEEN ? AND ? )
– FILTRO UNIDADE ADMINISTRATIVA
GROUP BY APPL.ID_APPLANTIO
) TAB_PLAN_SEM ON (APPL.ID_APPLANTIO = TAB_PLAN_SEM.ID_APPLANTIO)
JOIN UPNIVEL3 U3 ON ( APPL.ID_UPNIVEL3 = U3.ID_UPNIVEL3 )
JOIN MODULOADM MADM ON ( U3.ID_MODULOADM = MADM.ID_MODULOADM )
JOIN UPNIVEL2 U2 ON ( U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2 )
JOIN UPNIVEL1 U1 ON ( U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1 )
JOIN VARIEDADE VA ON ( APPL.ID_VARIEDADE = VA.ID_VARIEDADE )
JOIN INSUMO INPL ON ( TAB_PLAN_SEM.ID_INSUMO = INPL.ID_INSUMO )
JOIN GRPINSUMO GIN ON ( INPL.ID_GRPINSUMO = GIN.ID_GRPINSUMO )
JOIN PERIODOSAFRA PS ON(APPL.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA SA ON(PS.ID_SAFRA = SA.ID_SAFRA)
WHERE (APPL.DT_OPERACAO BETWEEN ? AND ? )
– FILTRO
GROUP BY U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
GIN.DE_GRP_INSUMO,
INPL.FG_SEMENTE,
INPL.CD_INSUMO,
INPL.DE_INSUMO
UNION ALL
--RECUPERA SOMENTE AS SEMENTES DOS APONTAMENTOS DE PLANTIO COM OS RESPECTIVOS VALORES
SELECT U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
0 AS AREA,
GIN.DE_GRP_INSUMO,
INPL.FG_SEMENTE,
INPL.CD_INSUMO,
INPL.DE_INSUMO,
SUM(APPLI.QT_TOTAL) AS QT_TOTAL
FROM APPLANTIO APPL
LEFT JOIN APTRATSEMENT APTR ON ( APPL.ID_APTRATSEMENT = APTR.ID_APTRATSEMENT )
LEFT JOIN APPLANTIO_IN APPLI ON ( APPL.ID_APPLANTIO = APPLI.ID_APPLANTIO )
JOIN UNIDADEADM UA ON ( APPL.ID_UNIDADEADM = UA.ID_UNIDADEADM )
LEFT JOIN INSUMO INPL ON ( APPLI.ID_INSUMO = INPL.ID_INSUMO )
JOIN UPNIVEL3 U3 ON ( APPL.ID_UPNIVEL3 = U3.ID_UPNIVEL3 )
JOIN MODULOADM MADM ON ( U3.ID_MODULOADM = MADM.ID_MODULOADM )
JOIN UPNIVEL2 U2 ON ( U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2 )
JOIN UPNIVEL1 U1 ON ( U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1 )
JOIN VARIEDADE VA ON ( APPL.ID_VARIEDADE = VA.ID_VARIEDADE )
LEFT JOIN GRPINSUMO GIN ON ( INPL.ID_GRPINSUMO = GIN.ID_GRPINSUMO )
JOIN PERIODOSAFRA PS ON(APPL.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA SA ON(PS.ID_SAFRA = SA.ID_SAFRA)
WHERE INPL.FG_SEMENTE = 'S'
AND (APPL.DT_OPERACAO BETWEEN ? AND ? )
– FILTRO
GROUP BY U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
GIN.DE_GRP_INSUMO,
INPL.FG_SEMENTE,
INPL.CD_INSUMO,
INPL.DE_INSUMO
UNION ALL
--RECUPERA OS OUTROS INSUMOS DOS APONTAMENTOS DE PLANTIO E SEUS RESPECTIVOS VALORES
SELECT U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
0 AS AREA,
GIN.DE_GRP_INSUMO,
INPL.FG_SEMENTE,
INPL.CD_INSUMO,
INPL.DE_INSUMO,
SUM(APPLI.QT_TOTAL) AS QT_TOTAL
FROM APPLANTIO APPL
LEFT JOIN APTRATSEMENT APTR ON ( APPL.ID_APTRATSEMENT = APTR.ID_APTRATSEMENT )
LEFT JOIN APPLANTIO_IN APPLI ON ( APPL.ID_APPLANTIO = APPLI.ID_APPLANTIO )
JOIN UNIDADEADM UA ON ( APPL.ID_UNIDADEADM = UA.ID_UNIDADEADM )
LEFT JOIN INSUMO INPL ON ( APPLI.ID_INSUMO = INPL.ID_INSUMO )
JOIN UPNIVEL3 U3 ON ( APPL.ID_UPNIVEL3 = U3.ID_UPNIVEL3 )
JOIN MODULOADM MADM ON ( U3.ID_MODULOADM = MADM.ID_MODULOADM )
JOIN UPNIVEL2 U2 ON ( U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2 )
JOIN UPNIVEL1 U1 ON ( U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1 )
JOIN VARIEDADE VA ON ( APPL.ID_VARIEDADE = VA.ID_VARIEDADE )
LEFT JOIN GRPINSUMO GIN ON ( INPL.ID_GRPINSUMO = GIN.ID_GRPINSUMO )
JOIN PERIODOSAFRA PS ON(APPL.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA SA ON(PS.ID_SAFRA = SA.ID_SAFRA)
WHERE INPL.FG_SEMENTE ='N'
AND (APPL.DT_OPERACAO BETWEEN ? AND ? )
--FILTRO
GROUP BY U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
GIN.DE_GRP_INSUMO,
INPL.FG_SEMENTE,
INPL.CD_INSUMO,
INPL.DE_INSUMO
UNION ALL
--RECUPERA OS OUTROS INSUMOS DO TRATAMENTO DE SEMENTE INFORMADO NO APONTAMENTO DE PLANTIO
SELECT TAB_TS.CD_UPNIVEL1,
TAB_TS.DE_UPNIVEL1,
TAB_TS.CD_UPNIVEL2,
TAB_TS.DE_UPNIVEL2,
TAB_TS.CD_VARIEDADE,
TAB_TS.DE_VARIEDADE,
TAB_TS.AREA,
TAB_TS.DE_GRP_INSUMO,
TAB_TS.FG_SEMENTE,
TAB_TS.CD_INSUMO,
TAB_TS.DE_INSUMO,
SUM(TAB_TS.QT_VALOR)
FROM
(SELECT U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
0 AS AREA,
GIN.DE_GRP_INSUMO,
INTR.FG_SEMENTE,
INTR.CD_INSUMO,
INTR.DE_INSUMO,
NVL(TAB_PLAN.VALOR_PLAN/TAB_TRAT.VALOR*APTRI.QT_TOTAL, 0) QT_VALOR
FROM APPLANTIO APPL
JOIN APTRATSEMENT APTR ON ( APPL.ID_APTRATSEMENT = APTR.ID_APTRATSEMENT )
JOIN APTRATSEMENT_IN APTRI ON ( APTR.ID_APTRATSEMENT=APTRI.ID_APTRATSEMENT )
JOIN UNIDADEADM UA ON ( APPL.ID_UNIDADEADM =UA.ID_UNIDADEADM )
JOIN INSUMO INTR ON ( APTRI.ID_INSUMO =INTR.ID_INSUMO )
JOIN UPNIVEL3 U3 ON ( APPL.ID_UPNIVEL3 =U3.ID_UPNIVEL3 )
JOIN MODULOADM MADM ON ( U3.ID_MODULOADM = MADM.ID_MODULOADM )
JOIN UPNIVEL2 U2 ON ( U3.ID_UPNIVEL2 =U2.ID_UPNIVEL2 )
JOIN UPNIVEL1 U1 ON ( U2.ID_UPNIVEL1 =U1.ID_UPNIVEL1 )
JOIN VARIEDADE VA ON ( APPL.ID_VARIEDADE =VA.ID_VARIEDADE )
JOIN GRPINSUMO GIN ON ( INTR.ID_GRPINSUMO =GIN.ID_GRPINSUMO )
JOIN PERIODOSAFRA PS ON(APPL.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA SA ON(PS.ID_SAFRA = SA.ID_SAFRA)
JOIN (SELECT API.ID_APTRATSEMENT AS ID_TAB_VALOR,
SUM(API.QT_TOTAL) AS VALOR
FROM APTRATSEMENT_IN API
JOIN INSUMO I ON(API.ID_INSUMO = I.ID_INSUMO)
WHERE I.FG_SEMENTE = 'S'
AND API.ID_APTRATSEMENT IN
( SELECT DISTINCT AP.ID_APTRATSEMENT
FROM APPLANTIO AP
LEFT JOIN APTRATSEMENT APTR ON ( AP.ID_APTRATSEMENT = APTR.ID_APTRATSEMENT )
LEFT JOIN APPLANTIO_IN APPLI ON ( AP.ID_APPLANTIO = APPLI.ID_APPLANTIO )
JOIN UNIDADEADM UA ON ( AP.ID_UNIDADEADM = UA.ID_UNIDADEADM )
LEFT JOIN INSUMO INPL ON ( APPLI.ID_INSUMO = INPL.ID_INSUMO )
JOIN UPNIVEL3 U3 ON ( AP.ID_UPNIVEL3 = U3.ID_UPNIVEL3 )
JOIN MODULOADM MADM ON ( U3.ID_MODULOADM = MADM.ID_MODULOADM )
JOIN UPNIVEL2 U2 ON ( U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2 )
JOIN UPNIVEL1 U1 ON ( U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1 )
JOIN VARIEDADE VA ON ( AP.ID_VARIEDADE = VA.ID_VARIEDADE )
LEFT JOIN GRPINSUMO GIN ON ( INPL.ID_GRPINSUMO = GIN.ID_GRPINSUMO )
JOIN PERIODOSAFRA PS ON(AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA SA ON(PS.ID_SAFRA = SA.ID_SAFRA)
WHERE (AP.DT_OPERACAO BETWEEN ? AND ? )
--FILTRO
)
GROUP BY API.ID_APTRATSEMENT
) TAB_TRAT ON(APTR.ID_APTRATSEMENT = TAB_TRAT.ID_TAB_VALOR)
JOIN
(SELECT APPLI.ID_APPLANTIO AS ID_TAB_PLAN,
SUM(APPLI.QT_TOTAL) AS VALOR_PLAN
FROM APPLANTIO_IN APPLI
JOIN APPLANTIO AP ON ( AP.ID_APPLANTIO = APPLI.ID_APPLANTIO )
LEFT JOIN APTRATSEMENT APTR ON ( AP.ID_APTRATSEMENT = APTR.ID_APTRATSEMENT )
JOIN UNIDADEADM UA ON ( AP.ID_UNIDADEADM = UA.ID_UNIDADEADM )
JOIN INSUMO I ON(APPLI.ID_INSUMO = I.ID_INSUMO)
JOIN UPNIVEL3 U3 ON ( AP.ID_UPNIVEL3 = U3.ID_UPNIVEL3 )
JOIN MODULOADM MADM ON ( U3.ID_MODULOADM = MADM.ID_MODULOADM )
JOIN UPNIVEL2 U2 ON ( U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2 )
JOIN UPNIVEL1 U1 ON ( U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1 )
JOIN VARIEDADE VA ON (AP.ID_VARIEDADE = VA.ID_VARIEDADE )
JOIN GRPINSUMO GIN ON ( I.ID_GRPINSUMO = GIN.ID_GRPINSUMO )
JOIN PERIODOSAFRA PS ON(AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA SA ON(PS.ID_SAFRA = SA.ID_SAFRA)
WHERE I.FG_SEMENTE = 'S'
AND (AP.DT_OPERACAO BETWEEN ? AND ? )
--FILTRO
GROUP BY APPLI.ID_APPLANTIO
) TAB_PLAN ON(APPL.ID_APPLANTIO = TAB_PLAN.ID_TAB_PLAN)
WHERE INTR.FG_SEMENTE ='N'
AND (APPL.DT_OPERACAO BETWEEN ? AND ? )
--FILTRO
) TAB_TS
GROUP BY TAB_TS.CD_UPNIVEL1,
TAB_TS.DE_UPNIVEL1,
TAB_TS.CD_UPNIVEL2,
TAB_TS.DE_UPNIVEL2,
TAB_TS.CD_VARIEDADE,
TAB_TS.DE_VARIEDADE,
TAB_TS.AREA,
TAB_TS.DE_GRP_INSUMO,
TAB_TS.FG_SEMENTE,
TAB_TS.CD_INSUMO,
TAB_TS.DE_INSUMO
)
UNION ALL
--RECUPERA OS APONTAMENTOS AGRÍCOLAS DO TIPO PLANTIO
(
--RECUPERA AS ÁREAS DOS APONTAMENTO AGRÍCOLAS DE PLANTIO COM SEMENTE
SELECT U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
SUM(LC.QT_AREA) AREA,
GIN.DE_GRP_INSUMO,
INPL.FG_SEMENTE,
INPL.CD_INSUMO,
INPL.DE_INSUMO,
0 AS QT_TOTAL
FROM AU_APTO APPL
JOIN AU_TIPO TP ON (APPL.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S' )
JOIN AU_APTO_LC LC ON (APPL.ID_AU_APTO = LC.ID_AU_APTO)
LEFT JOIN APTRATSEMENT APTR ON ( APPL.ID_APTRATSEMENT = APTR.ID_APTRATSEMENT )
JOIN
(
--RECUPERA SOMENTE UM INSUMO (SEMENTE) DOS APONTAMENTOS AGRÍCOLAS PARA LISTAR A ÁREA
SELECT APPL.ID_AU_APTO,
MIN(APPLI.ID_INSUMO) ID_INSUMO
FROM AU_APTO APPL
JOIN AU_TIPO TP ON (APPL.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S' )
JOIN AU_APTO_INS APPLI ON (APPL.ID_AU_APTO = APPLI.ID_AU_APTO)
JOIN INSUMO INPL ON (APPLI.ID_INSUMO = INPL.ID_INSUMO)
WHERE INPL.FG_SEMENTE = 'S'
AND (APPL.DT_OPERACAO BETWEEN ? AND ? )
– FILTRO UNIDADE ADMINISTRATIVA
GROUP BY APPL.ID_AU_APTO
) TAB_PLAN_SEM ON (APPL.ID_AU_APTO = TAB_PLAN_SEM.ID_AU_APTO)
JOIN UPNIVEL3 U3 ON ( LC.ID_UPNIVEL3 = U3.ID_UPNIVEL3 )
JOIN MODULOADM MADM ON ( U3.ID_MODULOADM = MADM.ID_MODULOADM )
JOIN UPNIVEL2 U2 ON ( U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2 )
JOIN UPNIVEL1 U1 ON ( U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1 )
JOIN VARIEDADE VA ON ( APPL.ID_VARIEDADE = VA.ID_VARIEDADE )
JOIN INSUMO INPL ON ( TAB_PLAN_SEM.ID_INSUMO = INPL.ID_INSUMO )
JOIN GRPINSUMO GIN ON ( INPL.ID_GRPINSUMO = GIN.ID_GRPINSUMO )
JOIN PERIODOSAFRA PS ON(APPL.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA SA ON(PS.ID_SAFRA = SA.ID_SAFRA)
WHERE (APPL.DT_OPERACAO BETWEEN ? AND ? )
--FILTRO
GROUP BY U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
GIN.DE_GRP_INSUMO,
INPL.FG_SEMENTE,
INPL.CD_INSUMO,
INPL.DE_INSUMO
UNION ALL
– RECUPERA SOMENTE AS SEMENTES DOS APONTAMENTOS AGRÍCOLAS DE PLANTIO COM OS RESPECTIVOS VALORES
SELECT U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
0 AS AREA,
GIN.DE_GRP_INSUMO,
INPL.FG_SEMENTE,
INPL.CD_INSUMO,
INPL.DE_INSUMO,
SUM(APPLI.QT_CONS_TOTAL) AS QT_TOTAL
FROM AU_APTO APPL
JOIN AU_TIPO TP ON (APPL.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S' )
LEFT JOIN APTRATSEMENT APTR ON ( APPL.ID_APTRATSEMENT = APTR.ID_APTRATSEMENT )
LEFT JOIN AU_APTO_INS_LC APPLI ON ( APPL.ID_AU_APTO = APPLI.ID_AU_APTO )
JOIN UNIDADEADM UA ON ( APPL.ID_UNIDADEADM = UA.ID_UNIDADEADM )
LEFT JOIN INSUMO INPL ON ( APPLI.ID_INSUMO = INPL.ID_INSUMO )
JOIN UPNIVEL3 U3 ON ( APPLI.ID_UPNIVEL3 = U3.ID_UPNIVEL3 )
JOIN MODULOADM MADM ON ( U3.ID_MODULOADM = MADM.ID_MODULOADM )
JOIN UPNIVEL2 U2 ON ( U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2 )
JOIN UPNIVEL1 U1 ON ( U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1 )
JOIN VARIEDADE VA ON ( APPL.ID_VARIEDADE = VA.ID_VARIEDADE )
LEFT JOIN GRPINSUMO GIN ON ( INPL.ID_GRPINSUMO = GIN.ID_GRPINSUMO )
JOIN PERIODOSAFRA PS ON(APPL.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA SA ON(PS.ID_SAFRA = SA.ID_SAFRA)
WHERE INPL.FG_SEMENTE = 'S'
AND (APPL.DT_OPERACAO BETWEEN ? AND ? )
– FILTRO
GROUP BY U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
GIN.DE_GRP_INSUMO,
INPL.FG_SEMENTE,
INPL.CD_INSUMO,
INPL.DE_INSUMO
UNION ALL
– RECUPERA OS OUTROS INSUMOS DOS APONTAMENTOS AGRÍCOLAS DE PLANTIO COM SEUS RESPECTIVOS VALORES
SELECT U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
0 AS AREA,
GIN.DE_GRP_INSUMO,
INPL.FG_SEMENTE,
INPL.CD_INSUMO,
INPL.DE_INSUMO,
SUM(APPLI.QT_CONS_TOTAL) AS QT_TOTAL
FROM AU_APTO APPL
JOIN AU_TIPO TP ON (APPL.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S' )
LEFT JOIN APTRATSEMENT APTR ON ( APPL.ID_APTRATSEMENT = APTR.ID_APTRATSEMENT )
LEFT JOIN AU_APTO_INS_LC APPLI ON ( APPL.ID_AU_APTO = APPLI.ID_AU_APTO )
JOIN UNIDADEADM UA ON ( APPL.ID_UNIDADEADM = UA.ID_UNIDADEADM )
LEFT JOIN INSUMO INPL ON ( APPLI.ID_INSUMO = INPL.ID_INSUMO )
JOIN UPNIVEL3 U3 ON ( APPLI.ID_UPNIVEL3 = U3.ID_UPNIVEL3 )
JOIN MODULOADM MADM ON ( U3.ID_MODULOADM = MADM.ID_MODULOADM )
JOIN UPNIVEL2 U2 ON ( U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2 )
JOIN UPNIVEL1 U1 ON ( U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1 )
JOIN VARIEDADE VA ON ( APPL.ID_VARIEDADE = VA.ID_VARIEDADE )
LEFT JOIN GRPINSUMO GIN ON ( INPL.ID_GRPINSUMO = GIN.ID_GRPINSUMO )
JOIN PERIODOSAFRA PS ON(APPL.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA SA ON(PS.ID_SAFRA = SA.ID_SAFRA)
WHERE INPL.FG_SEMENTE ='N'
AND (APPL.DT_OPERACAO BETWEEN ? AND ? )
– FILTRO
GROUP BY U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
GIN.DE_GRP_INSUMO,
INPL.FG_SEMENTE,
INPL.CD_INSUMO,
INPL.DE_INSUMO
UNION ALL
– RECUPERA OS OUTROS INSUMOS DO TRATAMENTO DE SEMENTE INFORMADO NO APONTAMENTO AGRÍCOLA DE PLANTIO
SELECT TAB_TS.CD_UPNIVEL1,
TAB_TS.DE_UPNIVEL1,
TAB_TS.CD_UPNIVEL2,
TAB_TS.DE_UPNIVEL2,
TAB_TS.CD_VARIEDADE,
TAB_TS.DE_VARIEDADE,
TAB_TS.AREA,
TAB_TS.DE_GRP_INSUMO,
TAB_TS.FG_SEMENTE,
TAB_TS.CD_INSUMO,
TAB_TS.DE_INSUMO,
SUM(TAB_TS.QT_VALOR)
FROM
(SELECT U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
VA.CD_VARIEDADE,
VA.DE_VARIEDADE,
0 AS AREA,
GIN.DE_GRP_INSUMO,
INTR.FG_SEMENTE,
INTR.CD_INSUMO,
INTR.DE_INSUMO,
NVL(TAB_PLAN.VALOR_PLAN/TAB_TRAT.VALOR*APTRI.QT_TOTAL, 0) QT_VALOR
FROM AU_APTO APPL
JOIN APTRATSEMENT APTR ON ( APPL.ID_APTRATSEMENT = APTR.ID_APTRATSEMENT )
JOIN AU_TIPO TP ON (APPL.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON (APPL.ID_AU_APTO = LC.ID_AU_APTO)
JOIN APTRATSEMENT_IN APTRI ON ( APTR.ID_APTRATSEMENT=APTRI.ID_APTRATSEMENT )
JOIN UNIDADEADM UA ON ( APPL.ID_UNIDADEADM =UA.ID_UNIDADEADM )
JOIN INSUMO INTR ON ( APTRI.ID_INSUMO =INTR.ID_INSUMO )
JOIN UPNIVEL3 U3 ON ( LC.ID_UPNIVEL3 =U3.ID_UPNIVEL3 )
JOIN MODULOADM MADM ON ( U3.ID_MODULOADM = MADM.ID_MODULOADM )
JOIN UPNIVEL2 U2 ON ( U3.ID_UPNIVEL2 =U2.ID_UPNIVEL2 )
JOIN UPNIVEL1 U1 ON ( U2.ID_UPNIVEL1 =U1.ID_UPNIVEL1 )
JOIN VARIEDADE VA ON ( APPL.ID_VARIEDADE =VA.ID_VARIEDADE )
JOIN GRPINSUMO GIN ON ( INTR.ID_GRPINSUMO =GIN.ID_GRPINSUMO )
JOIN PERIODOSAFRA PS ON(APPL.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA SA ON(PS.ID_SAFRA = SA.ID_SAFRA)
JOIN (
SELECT API.ID_APTRATSEMENT AS ID_TAB_VALOR,
SUM(API.QT_TOTAL) AS VALOR
FROM APTRATSEMENT_IN API
JOIN INSUMO I ON(API.ID_INSUMO = I.ID_INSUMO)
WHERE I.FG_SEMENTE = 'S'
AND API.ID_APTRATSEMENT IN
( SELECT DISTINCT AP.ID_APTRATSEMENT
FROM AU_APTO AP
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
LEFT JOIN APTRATSEMENT APTR ON ( AP.ID_APTRATSEMENT = APTR.ID_APTRATSEMENT )
LEFT JOIN AU_APTO_INS_LC APPLI ON ( AP.ID_AU_APTO = APPLI.ID_AU_APTO )
JOIN UNIDADEADM UA ON ( AP.ID_UNIDADEADM = UA.ID_UNIDADEADM )
LEFT JOIN INSUMO INPL ON ( APPLI.ID_INSUMO = INPL.ID_INSUMO )
JOIN UPNIVEL3 U3 ON ( LC.ID_UPNIVEL3 = U3.ID_UPNIVEL3 )
JOIN MODULOADM MADM ON ( U3.ID_MODULOADM = MADM.ID_MODULOADM )
JOIN UPNIVEL2 U2 ON ( U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2 )
JOIN UPNIVEL1 U1 ON ( U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1 )
JOIN VARIEDADE VA ON ( AP.ID_VARIEDADE = VA.ID_VARIEDADE )
LEFT JOIN GRPINSUMO GIN ON ( INPL.ID_GRPINSUMO = GIN.ID_GRPINSUMO )
JOIN PERIODOSAFRA PS ON(AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA SA ON(PS.ID_SAFRA = SA.ID_SAFRA)
WHERE (AP.DT_OPERACAO BETWEEN ? AND ? )
--FILTRO
)
GROUP BY API.ID_APTRATSEMENT
) TAB_TRAT ON(APTR.ID_APTRATSEMENT = TAB_TRAT.ID_TAB_VALOR)
JOIN
(SELECT APPLI.ID_AU_APTO AS ID_TAB_PLAN,
SUM(APPLI.QT_CONS_TOTAL) AS VALOR_PLAN
FROM AU_APTO_INS_LC APPLI
JOIN AU_APTO AP ON ( AP.ID_AU_APTO = APPLI.ID_AU_APTO)
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO AND APPLI.ID_UPNIVEL3 = LC.ID_UPNIVEL3)
LEFT JOIN APTRATSEMENT APTR ON ( AP.ID_APTRATSEMENT = APTR.ID_APTRATSEMENT )
JOIN UNIDADEADM UA ON ( AP.ID_UNIDADEADM = UA.ID_UNIDADEADM )
JOIN INSUMO I ON(APPLI.ID_INSUMO = I.ID_INSUMO)
JOIN UPNIVEL3 U3 ON ( APPLI.ID_UPNIVEL3 = U3.ID_UPNIVEL3 )
JOIN MODULOADM MADM ON ( U3.ID_MODULOADM = MADM.ID_MODULOADM )
JOIN UPNIVEL2 U2 ON ( U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2 )
JOIN UPNIVEL1 U1 ON ( U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1 )
JOIN VARIEDADE VA ON (AP.ID_VARIEDADE = VA.ID_VARIEDADE )
JOIN GRPINSUMO GIN ON ( I.ID_GRPINSUMO = GIN.ID_GRPINSUMO )
JOIN PERIODOSAFRA PS ON(AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA SA ON(PS.ID_SAFRA = SA.ID_SAFRA)
WHERE I.FG_SEMENTE = 'S'
AND (AP.DT_OPERACAO BETWEEN ? AND ? )
--FILTRO
GROUP BY APPLI.ID_AU_APTO
) TAB_PLAN ON(APPL.ID_AU_APTO = TAB_PLAN.ID_TAB_PLAN)
WHERE INTR.FG_SEMENTE ='N'
AND (APPL.DT_OPERACAO BETWEEN ? AND ? )
--FILTRO
) TAB_TS
GROUP BY TAB_TS.CD_UPNIVEL1,
TAB_TS.DE_UPNIVEL1,
TAB_TS.CD_UPNIVEL2,
TAB_TS.DE_UPNIVEL2,
TAB_TS.CD_VARIEDADE,
TAB_TS.DE_VARIEDADE,
TAB_TS.AREA,
TAB_TS.DE_GRP_INSUMO,
TAB_TS.FG_SEMENTE,
TAB_TS.CD_INSUMO,
TAB_TS.DE_INSUMO
)
) TAB_FIM
GROUP BY TAB_FIM.CD_UPNIVEL1,
TAB_FIM.DE_UPNIVEL1,
TAB_FIM.CD_UPNIVEL2,
TAB_FIM.DE_UPNIVEL2,
TAB_FIM.CD_VARIEDADE,
TAB_FIM.DE_VARIEDADE,
TAB_FIM.DE_GRP_INSUMO,
TAB_FIM.FG_SEMENTE,
TAB_FIM.CD_INSUMO,
TAB_FIM.DE_INSUMO
ORDER BY 2, 4, 6, 9, 8, 11

  • Tipo: Acompanhamento de Plantio Analítico

 

  • Para o tipo de Relatório Acompanhamento de Plantio Analítico deverá ser alterado o Método selectAcompanhamentoPlantio da classe ApontamentoPlantioDAO. Para isso substituir o sql utilizado pelo sql abaixo. Os filtros aplicados atualmente deverão ser mantidos onde há o identificador –FILTRO na consulta abaixo.

 

  • Corrigir os filtros enviados pela tela para que os mesmos sejam aplicados nas consultas. Os Filtros ANO Agrícola, Operação, Sistema de Plantio, Grupo de Variedade, Opções Palm, Número Coletor, NÚMERO BOLETIM PALM, RESPONSÁVEL PALM, DENSIDADE INICIAL E DENSIDADE FINAl. Verificar a aplicação, caso necessário, de left joins na consulta.


SELECT
ID_UPNIVEL1,
CD_UPNIVEL1,
DA_UPNIVEL1,
CD_UPNIVEL2,
ID_UPNIVEL2 ,
DA_UPNIVEL2 ,
ID_UPNIVEL3 ,
CD_UPNIVEL3 ,
ID_MODULOADM ,
CD_MOD_ADM ,
DA_MOD_ADM ,
ID_VARIEDADE ,
DE_VARIEDADE ,
AREA_TOTAL ,
FG_ROYALTIES ,
FG_SEMENTE ,
CD_INSUMO ,
DE_INSUMO ,
QTDE_PLAN,
TOTAL_PLAN ,
QTDE_REAL,
TOTAL_REAL
FROM
(
SELECT PIV.ID_UPNIVEL1,
PIV.CD_UPNIVEL1,
PIV.DA_UPNIVEL1,
PIV.CD_UPNIVEL2,
PIV.ID_UPNIVEL2 ,
PIV.DA_UPNIVEL2 ,
PIV.ID_UPNIVEL3 ,
PIV.CD_UPNIVEL3 ,
PIV.ID_MODULOADM ,
PIV.CD_MOD_ADM ,
PIV.DA_MOD_ADM ,
PIV.ID_VARIEDADE ,
PIV.DE_VARIEDADE ,
PIV.AREA_TOTAL_UP3_VAR AREA_TOTAL ,
PIV.FG_ROYALTIES ,
DADOS.FG_SEMENTE ,
DADOS.CD_INSUMO ,
DADOS.DE_INSUMO ,
CASE
WHEN (PIV.AREA_TOTAL > 0)
THEN (SUM( DADOS.TOTAL_PLAN)/PIV.AREA_TOTAL)
ELSE (0)
END QTDE_PLAN,
SUM( DADOS.TOTAL_PLAN) TOTAL_PLAN ,
CASE
WHEN (PIV.AREA_TOTAL > 0)
THEN (SUM(DADOS.TOTAL_REAL)/PIV.AREA_TOTAL)
ELSE (0)
END QTDE_REAL,
SUM(DADOS.TOTAL_REAL) TOTAL_REAL
FROM
(SELECT DISTINCT PIV2.ID_UPNIVEL1 ID_UPNIVEL1 ,
PIV2.CD_UPNIVEL1 CD_UPNIVEL1 ,
PIV2.DA_UPNIVEL1 DA_UPNIVEL1 ,
PIV2.ID_UPNIVEL2 ID_UPNIVEL2 ,
PIV2.CD_UPNIVEL2 CD_UPNIVEL2 ,
PIV2.DA_UPNIVEL2 DA_UPNIVEL2 ,
PIV2.ID_UPNIVEL3 ID_UPNIVEL3 ,
PIV2.CD_UPNIVEL3 CD_UPNIVEL3 ,
PIV2.ID_MODULOADM ID_MODULOADM ,
PIV2.CD_MOD_ADM CD_MOD_ADM ,
PIV2.DA_MOD_ADM DA_MOD_ADM ,
PIV2.ID_VARIEDADE ID_VARIEDADE ,
PIV2.DE_VARIEDADE DE_VARIEDADE ,
PIV2.FG_ROYALTIES FG_ROYALTIES ,
SUM(PIV2.QT_AREA) AREA_TOTAL,
AREA.AREA_TOTAL AREA_TOTAL_UP3_VAR
FROM
(SELECT U1.ID_UPNIVEL1 ID_UPNIVEL1 ,
U1.CD_UPNIVEL1 CD_UPNIVEL1 ,
U1.DA_UPNIVEL1 DA_UPNIVEL1 ,
U2.ID_UPNIVEL2 ID_UPNIVEL2 ,
U2.CD_UPNIVEL2 CD_UPNIVEL2 ,
U2.DA_UPNIVEL2 DA_UPNIVEL2 ,
U3.ID_UPNIVEL3 ID_UPNIVEL3 ,
U3.CD_UPNIVEL3 CD_UPNIVEL3 ,
U3.ID_MODULOADM ID_MODULOADM ,
MADM.CD_MOD_ADM CD_MOD_ADM ,
MADM.DA_MOD_ADM DA_MOD_ADM ,
VA.ID_VARIEDADE ID_VARIEDADE ,
VA.DE_VARIEDADE DE_VARIEDADE ,
AP.FG_ROYALTIES FG_ROYALTIES ,
SUM(AP.QT_AREA) QT_AREA
FROM APPLANTIO AP,
UPNIVEL3 U3 ,
MODULOADM MADM ,
UPNIVEL2 U2 ,
UPNIVEL1 U1 ,
VARIEDADE VA
WHERE AP.ID_VARIEDADE =VA.ID_VARIEDADE
AND AP.ID_UPNIVEL3 = U3.ID_UPNIVEL3
AND U3.ID_MODULOADM = MADM.ID_MODULOADM
AND U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2
AND U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1
AND (AP.DT_OPERACAO BETWEEN ? AND ? )
--FILTRO
GROUP BY U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DA_UPNIVEL1,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DA_UPNIVEL2,
U3.ID_UPNIVEL3,
U3.CD_UPNIVEL3,
U3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
VA.ID_VARIEDADE,
VA.DE_VARIEDADE,
AP.FG_ROYALTIES
) PIV2
JOIN
(SELECT U3.ID_UPNIVEL3,
VA.ID_VARIEDADE,
SUM(AP.QT_AREA) AREA_TOTAL
FROM APPLANTIO AP,
UPNIVEL3 U3 ,
MODULOADM MADM ,
UPNIVEL2 U2 ,
UPNIVEL1 U1 ,
VARIEDADE VA
WHERE AP.ID_VARIEDADE =VA.ID_VARIEDADE
AND AP.ID_UPNIVEL3 = U3.ID_UPNIVEL3
AND U3.ID_MODULOADM = MADM.ID_MODULOADM
AND U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2
AND U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1
AND (AP.DT_OPERACAO BETWEEN ? AND ? )
--FILTRO
GROUP BY U3.ID_UPNIVEL3,
VA.ID_VARIEDADE
) AREA
ON (PIV2.ID_UPNIVEL3 = AREA.ID_UPNIVEL3
AND PIV2.ID_VARIEDADE = AREA.ID_VARIEDADE )
GROUP BY PIV2.ID_UPNIVEL1,
PIV2.CD_UPNIVEL1,
PIV2.DA_UPNIVEL1,
PIV2.ID_UPNIVEL2,
PIV2.CD_UPNIVEL2,
PIV2.DA_UPNIVEL2,
PIV2.ID_UPNIVEL3 ,
PIV2.CD_UPNIVEL3 ,
PIV2.ID_MODULOADM,
PIV2.CD_MOD_ADM ,
PIV2.DA_MOD_ADM ,
PIV2.ID_VARIEDADE ,
PIV2.DE_VARIEDADE ,
PIV2.FG_ROYALTIES,
AREA.AREA_TOTAL
) PIV,
(SELECT U1.ID_UPNIVEL1 ID_UPNIVEL1 ,
U1.CD_UPNIVEL1 CD_UPNIVEL1 ,
U1.DA_UPNIVEL1 DA_UPNIVEL1 ,
U2.ID_UPNIVEL2 ID_UPNIVEL2 ,
U2.CD_UPNIVEL2 CD_UPNIVEL2 ,
U2.DA_UPNIVEL2 DA_UPNIVEL2 ,
U3.ID_UPNIVEL3 ID_UPNIVEL3 ,
U3.CD_UPNIVEL3 CD_UPNIVEL3 ,
U3.ID_MODULOADM ID_MODULOADM ,
MADM.CD_MOD_ADM CD_MOD_ADM ,
MADM.DA_MOD_ADM DA_MOD_ADM ,
VA.ID_VARIEDADE ID_VARIEDADE ,
VA.DE_VARIEDADE DE_VARIEDADE ,
AP.FG_ROYALTIES FG_ROYALTIES ,
FG_SEMENTE ,
CD_INSUMO ,
DE_INSUMO ,
TOTAL_PLAN ,
TOTAL_REAL
FROM APPLANTIO AP,
UPNIVEL3 U3,
MODULOADM MADM,
UPNIVEL2 U2,
UPNIVEL1 U1,
VARIEDADE VA,
(SELECT AP.ID_APPLANTIO,
AP.QT_AREA ,
INS.FG_SEMENTE FG_SEMENTE ,
INS.CD_INSUMO CD_INSUMO ,
INS.DE_INSUMO DE_INSUMO ,
SUM(APINS.QT_DOSE*AP.QT_AREA) TOTAL_PLAN,
SUM(APINS.QT_TOTAL) TOTAL_REAL
FROM APPLANTIO AP ,
APPLANTIO_IN APINS,
UPNIVEL3 U3 ,
MODULOADM MADM ,
UPNIVEL2 U2 ,
UPNIVEL1 U1 ,
INSUMO INS
WHERE APINS.ID_APPLANTIO=AP.ID_APPLANTIO
AND APINS.ID_INSUMO =INS.ID_INSUMO
AND (AP.DT_OPERACAO BETWEEN ? AND ? )
AND AP.ID_UPNIVEL3 = U3.ID_UPNIVEL3
AND U3.ID_MODULOADM = MADM.ID_MODULOADM
AND U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2
AND U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1
--FILTRO
GROUP BY AP.ID_APPLANTIO,
INS.FG_SEMENTE ,
AP.QT_AREA ,
INS.CD_INSUMO ,
INS.DE_INSUMO
) DETALHES
WHERE AP.ID_VARIEDADE= VA.ID_VARIEDADE
AND AP.ID_UPNIVEL3 = U3.ID_UPNIVEL3
AND U3.ID_MODULOADM = MADM.ID_MODULOADM
AND U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2
AND U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1
AND (AP.DT_OPERACAO BETWEEN ? AND ? )
AND DETALHES.ID_APPLANTIO = AP.ID_APPLANTIO
--FILTRO
) DADOS
WHERE PIV.ID_UPNIVEL1 = DADOS.ID_UPNIVEL1
AND PIV.ID_UPNIVEL2 = DADOS.ID_UPNIVEL2
AND PIV.ID_UPNIVEL3 = DADOS.ID_UPNIVEL3
AND PIV.ID_MODULOADM = DADOS.ID_MODULOADM
AND PIV.ID_VARIEDADE = DADOS.ID_VARIEDADE
AND PIV.FG_ROYALTIES = DADOS.FG_ROYALTIES
GROUP BY PIV.ID_UPNIVEL1,
PIV.CD_UPNIVEL1,
PIV.DA_UPNIVEL1,
PIV.ID_UPNIVEL2,
PIV.CD_UPNIVEL2,
PIV.DA_UPNIVEL2,
PIV.ID_UPNIVEL3,
PIV.CD_UPNIVEL3,
PIV.ID_MODULOADM,
PIV.CD_MOD_ADM ,
PIV.DA_MOD_ADM ,
PIV.ID_VARIEDADE,
PIV.DE_VARIEDADE,
PIV.AREA_TOTAL_UP3_VAR,
PIV.AREA_TOTAL,
PIV.FG_ROYALTIES ,
DADOS.FG_SEMENTE ,
DADOS.CD_INSUMO ,
DADOS.DE_INSUMO
UNION ALL
SELECT
PIV.ID_UPNIVEL1,
PIV.CD_UPNIVEL1,
PIV.DA_UPNIVEL1,
PIV.CD_UPNIVEL2,
PIV.ID_UPNIVEL2 ,
PIV.DA_UPNIVEL2 ,
PIV.ID_UPNIVEL3 ,
PIV.CD_UPNIVEL3 ,
PIV.ID_MODULOADM ,
PIV.CD_MOD_ADM ,
PIV.DA_MOD_ADM ,
PIV.ID_VARIEDADE ,
PIV.DE_VARIEDADE ,
PIV.AREA ,
PIV.FG_ROYALTIES ,
DADOS.FG_SEMENTE ,
DADOS.CD_INSUMO ,
DADOS.DE_INSUMO,
(DADOS.QT_DOSE_PROG * PIV.AREA) QTDE_PLAN, – quantidade Planejada
(DADOS.QT_DOSE_PROG) TOTAL_PLAN, – total planejado
((DADOS.QT_CONS_TOTAL/AREA.AREA_TOTAL)*PIV.AREA) QTDE_REAL,-- quantidade realizada
(((DADOS.QT_CONS_TOTAL/AREA.AREA_TOTAL)*PIV.AREA)/PIV.AREA) TOTAL_REAL-- total realizado
FROM
(SELECT
AP.ID_AU_APTO,
AP_INS.ID_INSUMO,
INS.CD_INSUMO,
INS.DE_INSUMO,
INS.FG_SEMENTE,
AP_INS.QT_DOSE_PROG,
AP_INS.QT_CONS_TOTAL
FROM AU_APTO_INS AP_INS
JOIN AU_APTO AP ON (AP.ID_AU_APTO = AP_INS.ID_AU_APTO)
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN INSUMO INS ON (AP_INS.ID_INSUMO = INS.ID_INSUMO)
WHERE AP.DT_OPERACAO BETWEEN ? AND ?
--FILTRO
)DADOS,
(SELECT
AP.ID_AU_APTO,
LC.ID_UPNIVEL3,
U3.CD_UPNIVEL3,
U3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DA_UPNIVEL1,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DA_UPNIVEL2,
VA.ID_VARIEDADE,
VA.DE_VARIEDADE,
AP.FG_ROYALTIES,
SUM(LC.QT_AREA) AREA
FROM AU_APTO_LC LC
JOIN AU_APTO AP ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN UPNIVEL3 U3 ON (LC.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN MODULOADM MADM ON (U3.ID_MODULOADM = MADM.ID_MODULOADM)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
JOIN UPNIVEL1 U1 ON( U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
JOIN VARIEDADE VA ON (AP.ID_VARIEDADE= VA.ID_VARIEDADE)
WHERE AP.DT_OPERACAO BETWEEN ? AND ?
--FILTRO
GROUP BY
AP.ID_AU_APTO,
LC.ID_UPNIVEL3,
U3.CD_UPNIVEL3,
U3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
U1.ID_UPNIVEL1,
U1.CD_UPNIVEL1,
U1.DA_UPNIVEL1,
U2.ID_UPNIVEL2,
U2.CD_UPNIVEL2,
U2.DA_UPNIVEL2,
VA.ID_VARIEDADE,
VA.DE_VARIEDADE,
AP.FG_ROYALTIES
)PIV,
(
SELECT
AP.ID_AU_APTO,
SUM(LC.QT_AREA) AREA_TOTAL
FROM AU_APTO_LC LC
JOIN AU_APTO AP ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
WHERE AP.DT_OPERACAO BETWEEN ? AND ?
--FILTRO
GROUP BY AP.ID_AU_APTO
)AREA
WHERE PIV.ID_AU_APTO = DADOS.ID_AU_APTO
AND AREA.ID_AU_APTO = PIV.ID_AU_APTO
)
ORDER BY CD_UPNIVEL1,
DA_UPNIVEL1,
CD_UPNIVEL2,
DA_UPNIVEL2,
CD_UPNIVEL3,
DE_VARIEDADE,
FG_SEMENTE DESC,
CD_INSUMO,
DE_INSUMO

Alteração nos relatórios de Período de Plantio para contemplar os Apontamentos Agrícolas.


Objetivo: Alteração nos relatórios de Período de Plantio para contemplar os Apontamentos Agrícolas.
Menu: Visões > Plantio > Período de Plantio
Entrada de menu: PLAV0007
Esboço da tela:


Especificação técnica:

  • Alterar o método selectPeriodoDePlantioForReport da classe ApontamentoPlantioDAO para considerar os Apontamentos Agrícolas. Para isso incluir na sql utilizada o trecho abaixo. Os filtros deverão ser aplicados no trecho abaixo da mesma forma que é aplicado na consulta existente atualmente.


UNION ALL
SELECT U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1,
U2.CD_UPNIVEL2,
U2.DE_UPNIVEL2,
U3.CD_UPNIVEL3,
U3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
V.CD_VARIEDADE ,
V.DE_VARIEDADE ,
GM.DE_GRP_MATUR ,
GM.QT_DIAS_MATUR ,
GV.CD_GRP_VARIEDADE ,
GV.DA_GRP_VARIEDADE ,
MIN( PL_INI.DT_INICIO) AS INICIO_PLANTIO,
MAX( PL_FIM.DT_FIM) AS FIM_PLANTIO
FROM AU_APTO PL
JOIN AU_TIPO TIPO ON (PL.ID_AU_TIPO = TIPO.ID_AU_TIPO AND TIPO.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON(PL.ID_AU_APTO = LC.ID_AU_APTO)
JOIN
(SELECT AP.ID_PERIODOSAFRA, LC.ID_UPNIVEL3, MIN( AP.DT_OPERACAO) DT_INICIO
FROM AU_APTO AP
JOIN AU_TIPO TIPO ON (AP.ID_AU_TIPO = TIPO.ID_AU_TIPO AND TIPO.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON(AP.ID_AU_APTO = LC.ID_AU_APTO)
WHERE LC.FG_REPLANTIO='N'
GROUP BY AP.ID_PERIODOSAFRA, LC.ID_UPNIVEL3
) PL_INI ON PL.ID_PERIODOSAFRA =PL_INI.ID_PERIODOSAFRA AND PL.ID_UPNIVEL3 = PL_INI.ID_UPNIVEL3
JOIN
(SELECT AP.ID_PERIODOSAFRA, LC.ID_UPNIVEL3, MAX( AP.DT_OPERACAO) DT_FIM
FROM AU_APTO AP
JOIN AU_TIPO TIPO ON (AP.ID_AU_TIPO = TIPO.ID_AU_TIPO AND TIPO.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON(AP.ID_AU_APTO = LC.ID_AU_APTO)
WHERE AP.FG_REPLANTIO='N'
GROUP BY AP.ID_PERIODOSAFRA,LC.ID_UPNIVEL3
) PL_FIM ON PL.ID_PERIODOSAFRA =PL_FIM.ID_PERIODOSAFRA AND PL.ID_UPNIVEL3 = PL_FIM.ID_UPNIVEL3
JOIN UPNIVEL3 U3 ON LC.ID_UPNIVEL3 =U3.ID_UPNIVEL3
JOIN UPNIVEL2 U2 ON U3.ID_UPNIVEL2 =U2.ID_UPNIVEL2
JOIN UPNIVEL1 U1 ON U2.ID_UPNIVEL1 =U1.ID_UPNIVEL1
JOIN MODULOADM MADM ON (U3.ID_MODULOADM = MADM.ID_MODULOADM)
JOIN VARIEDADE V ON PL.ID_VARIEDADE =V.ID_VARIEDADE
JOIN GRPMATURACAO GM ON V.ID_GRPMATURACAO =GM.ID_GRPMATURACAO
JOIN PERIODOSAFRA PS ON PL.ID_PERIODOSAFRA =PS.ID_PERIODOSAFRA
JOIN SAFRA SA ON PS.ID_SAFRA =SA.ID_SAFRA
LEFT JOIN GRPVARIEDADE GV ON V.ID_GRPVARIEDADE =GV.ID_GRPVARIEDADE
– filtro
AND LC.FG_REPLANTIO ='N'
GROUP BY U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1 ,
U2.CD_UPNIVEL2 ,
U2.DE_UPNIVEL2 ,
U3.CD_UPNIVEL3 ,
U3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
V.CD_VARIEDADE ,
V.DE_VARIEDADE ,
GM.DE_GRP_MATUR,
GM.QT_DIAS_MATUR,
GV.CD_GRP_VARIEDADE,
GV.DA_GRP_VARIEDADE

Alteração nos relatórios de Encerramento de Plantio para contemplar os Apontamentos Agrícolas.


Objetivo: Alteração nos relatórios de Encerramento de Plantio para contemplar os Apontamentos Agrícolas.
Menu: Visões > Plantio > Encerramento de Plantio
Entrada de menu: PLAV0008
Esboço da tela:


Especificação técnica:

  • Para o relatório de Encerramento de Plantio deverá ser alterado o método selectForEndReport da classe ApontamentoPlantioDAO para serem incluídos os Apontamentos Agrícolas. Para isso incluir na sql existente o sql abaixo. Os filtros aplicados atualmente deverão ser incluídos na nova consulta.


UNION ALL
SELECT AP.ID_AU_APTO,
AP.NO_BOLETIM,
AP.DT_OPERACAO,
AP.ID_PERIODOSAFRA,
AP.ID_CCUSTO,
AP.ID_OPERACAO,
AP.ID_UPNIVEL3,
AP.ID_VARIEDADE,
AP.ID_ESPACAMENTO,
AP.ID_SISTCULTIVO,
AP.ID_SISTPLANTIO,
AP.ID_APTRATSEMENT,
AP.NO_PENEIRA,
AP.PE_VIGOR,
AP.PE_GERMINACAO,
AP.QT_DENSIDADE,
AP.FG_REPLANTIO,
LC.QT_AREA,
AP.ID_EQUIPE,
AP.ROWVERSION,
PS.CD_PER_SAFRA,
PS.DA_PER_SAFRA,
S.ID_SAFRA,
S.CD_SAFRA,
S.DA_SAFRA,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
OPER.CD_OPERACAO,
OPER.DE_OPERACAO,
N3.CD_UPNIVEL3,
N3.QT_AREA_PROD,
N3.DT_PLANT_ENC,
N3.DT_PLANT_INI,
N3.ID_MODULOADM,
MADM.CD_MOD_ADM,
MADM.DA_MOD_ADM,
UPN2.ID_UPNIVEL2,
UPN2.CD_UPNIVEL2,
UPN2.DA_UPNIVEL2,
UPN1.ID_UPNIVEL1,
UPN1.CD_UPNIVEL1,
UPN1.DA_UPNIVEL1,
VAR.CD_VARIEDADE,
VAR.DA_VARIEDADE,
VAR.FG_TP_CLASSE,
OCUP.ID_OCUPACAO,
OCUP.CD_OCUPACAO,
OCUP.DA_OCUPACAO,
ESP.CD_ESPACAMENTO,
ESP.DA_ESPACAMENTO,
SCUL.CD_SIST_CULT,
SCUL.DA_SIST_CULT,
SPLAN.CD_SIST_PLAN,
SPLAN.DA_SIST_PLAN,
APTO.NO_BOLETIM AS NO_BOLETIM_TS,
E.CD_EQUIPE,
E.DE_EQUIPE,
PP_IN.ID_AU_APTO_INS,
PP_IN.ID_INSUMO,
PP_IN.QT_DOSE_PROG QT_DOSE,
INS_LC. QT_CONS_TOTAL QT_TOTAL,
PP_IN.ID_DEPOSITO,
PP_IN.ID_PROCEDENCIA,
I.CD_INSUMO,
I.DA_INSUMO,
I.FG_SEMENTE,
D.CD_DEPOSITO,
D.DA_DEPOSITO,
UNI.ID_UNIDADEADM,
UNI.CD_UNI_ADM,
UNI.DA_UNI_ADM,
P.CD_PROCEDENCIA,
P.DA_PROCEDENCIA,
AP.NO_COL_MOBILIDADE,
AP.NO_BOL_MOBILIDADE,
AP.CHANGED_BY_MOBIL,
AP.FG_ROYALTIES,
NO_LINHAS,
AP.ID_EQUIPTO,
EPTO.CD_EQUIPTO,
MOD.DE_MODELO
FROM AU_APTO AP
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO='S')
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN CCUSTO CC ON (AP.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO OPER ON (AP.ID_OPERACAO = OPER.ID_OPERACAO)
JOIN UPNIVEL3 N3 ON (LC.ID_UPNIVEL3 = N3.ID_UPNIVEL3)
JOIN PERIODOSAFRA PS ON (N3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN SAFRA S ON (PS.ID_SAFRA = S.ID_SAFRA)
JOIN UPNIVEL2 UPN2 ON (N3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
LEFT JOIN MODULOADM MADM ON (N3.ID_MODULOADM = MADM.ID_MODULOADM)
JOIN VARIEDADE VAR ON (AP.ID_VARIEDADE = VAR.ID_VARIEDADE)
JOIN OCUPACAO OCUP ON (VAR.ID_OCUPACAO = OCUP.ID_OCUPACAO)
LEFT JOIN ESPACAMENTO ESP ON (AP.ID_ESPACAMENTO = ESP.ID_ESPACAMENTO)
LEFT OUTER JOIN SISTCULTIVO SCUL ON (AP.ID_SISTCULTIVO = SCUL.ID_SISTCULTIVO)
LEFT OUTER JOIN SISTPLANTIO SPLAN ON (AP.ID_SISTPLANTIO = SPLAN.ID_SISTPLANTIO)
LEFT OUTER JOIN APTRATSEMENT APTO ON (AP.ID_APTRATSEMENT = APTO.ID_APTRATSEMENT)
LEFT OUTER JOIN EQUIPE E ON (AP.ID_EQUIPE = E.ID_EQUIPE)
LEFT OUTER JOIN AU_APTO_INS PP_IN ON (AP.ID_AU_APTO = PP_IN.ID_AU_APTO)
LEFT JOIN AU_APTO_INS_LC INS_LC ON (AP.ID_AU_APTO = INS_LC.ID_AU_APTO AND PP_IN.ID_INSUMO = INS_LC.ID_INSUMO AND LC.ID_UPNIVEL3 = INS_LC.ID_UPNIVEL3)
JOIN INSUMO I ON (PP_IN.ID_INSUMO = I.ID_INSUMO)
LEFT OUTER JOIN DEPOSITO D ON (PP_IN.ID_DEPOSITO = D.ID_DEPOSITO)
LEFT OUTER JOIN PROCEDENCIA P ON (PP_IN.ID_PROCEDENCIA = P.ID_PROCEDENCIA)
LEFT JOIN UNIDADEADM UNI ON ( AP.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
LEFT OUTER JOIN EQUIPTO EPTO ON (AP.ID_EQUIPTO = EPTO.ID_EQUIPTO)
LEFT OUTER JOIN MODELO MOD ON (EPTO.ID_MODELO = MOD.ID_MODELO)
--FILTROS
ORDER BY DA_SAFRA,
DA_PER_SAFRA,
DA_UPNIVEL1,
DA_UPNIVEL2,
CD_UPNIVEL3,
I.FG_SEMENTE DESC,
I.DA_INSUMO

Alteração na Consulta de Rendimento Energético no Plantio para contemplar os Apontamentos Agrícolas.


Objetivo: Alteração na Consulta de Rendimento Energético no Plantio para contemplar os Apontamentos Agrícolas.
Menu: Visões > Gerenciais > Rendimento Energético no Plantio
Entrada de menu: PLAV0010
Esboço da tela:



Especificação técnica:

  • Alterar o método selectRendimentoEnergeticoPlantioByFilter da Classe ColheitaDAO. Para isso alterar a sql utilizada pela sql abaixo. Os filtros deverão ser aplicados em ambos os selects. O trecho destacado abaixo refere-se como a consulta é efetuada atualmente. Os filtros deverão ser aplicados no novo trecho da consulta assim como é efetuado atualmente.

 

  • Na consulta abaixo (destacado em vermelho) há referência ao PARÂMETRO HORA. O valor deverá ser recuperado das Configurações Gerais do Grupo Unidade de Medida. Para isso, recuperar o parâmetro das configurações gerais: Tabela: PRXPARAMETER, CONTEXT_APL = "PIMSGRAOS.UNIMEDIDA" e NAME_PARAMETER = "CD_UM_HA". Recuperado o parâmetro, substituir na sql acima o trecho destacado ("PARÂMETRO HORA") pelo campo VALOR recuperado na consulta do parâmetro.







SELECT ID_UNIDADEADM,
CD_UNI_ADM,
DE_UNI_ADM,
DA_UNI_ADM,
SUM(QT_AREA) QT_AREA,
SUM(QT_HORAS) QT_HORAS,
SUM(QT_COMB) QT_COMB
FROM (
SELECT UNIDADEADM.ID_UNIDADEADM,
UNIDADEADM.CD_UNI_ADM,
UNIDADEADM.DE_UNI_ADM,
UNIDADEADM.DA_UNI_ADM,
SUM(TABELA.QT_AREA) QT_AREA,
SUM(TABELA.QT_HORAS) QT_HORAS,
SUM(TABELA.QT_COMB) QT_COMB
FROM (
(SELECT APP.ID_UNIDADEADM ID_UNIDADEADM,
SUM(APP.QT_AREA) QT_AREA,
0 QT_HORAS,
0 QT_COMB
FROM APPLANTIO APP
JOIN UPNIVEL3 U3 ON ( APP.ID_UPNIVEL3 = U3.ID_UPNIVEL3 )
JOIN PERIODOSAFRA PS ON ( U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA )
JOIN UNIDADEADM UNI ON ( APP.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
JOIN FILIAL F ON ( UNI.ID_FILIAL = F.ID_FILIAL )
JOIN EMPRESA E ON ( F.ID_EMPRESA = E.ID_EMPRESA )
WHERE APP.FG_REPLANTIO = 'N'
AND APP.DT_OPERACAO BETWEEN ? AND ?
GROUP BY APP.ID_UNIDADEADM
)
UNION
(SELECT ID_UNIDADEADM ID_UNIDADEADM,
0 QT_AREA,
SUM(HORAS.QT_TOTAL_HK) QT_HORAS,
0 COMBUSTIVEL
FROM
(SELECT UNI.DE_UNI_ADM,
UNI.ID_UNIDADEADM,
UNI.DA_UNI_ADM,
UNI.CD_UNI_ADM,
NVL(RAT.QT_TOTAL_HK, APLC.QT_TOTAL_HK) QT_TOTAL_HK
FROM APATIVMEC_LC APLC
LEFT JOIN APATIVMEC_LC_RAT RAT ON (APLC.ID_APATIVMEC_LC = RAT.ID_APATIVMEC_LC)
JOIN APATIVMEC APA ON ( APLC.ID_APATIVMEC = APA.ID_APATIVMEC )
LEFT JOIN APORDSERVICO OS ON ( APLC.ID_APORDSERVICO = OS.ID_APORDSERVICO )
JOIN UPNIVEL3 UPN3 ON (RAT.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
JOIN UPNIVEL2 UPN2 ON (UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
JOIN PERIODOSAFRA PER ON (UPN3.ID_PERIODOSAFRA = PER.ID_PERIODOSAFRA)
JOIN OPERACAO OPE ON ( APLC.ID_OPERACAO = OPE.ID_OPERACAO )
JOIN EQUIPTO EQP ON ( APA.ID_EQUIPTO = EQP.ID_EQUIPTO )
JOIN MODELO MDL ON ( EQP.ID_MODELO = MDL.ID_MODELO )
JOIN CATOPERACIONAL CAT ON ( EQP.ID_CATOPERACIONAL = CAT.ID_CATOPERACIONAL )
JOIN UNIMEDIDA UN_CAT ON ( CAT.ID_UNIMEDIDA = UN_CAT.ID_UNIMEDIDA )
JOIN UNIDADEADM UNI ON ( APA.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
JOIN FILIAL F ON ( UNI.ID_FILIAL = F.ID_FILIAL )
JOIN EMPRESA E ON ( F.ID_EMPRESA = E.ID_EMPRESA )
WHERE ( APA.DT_OPERACAO BETWEEN ? AND ? )
AND ( OPE.ID_OPERACAO IN
( SELECT DISTINCT AP.ID_OPERACAO
FROM APPLANTIO AP
JOIN UPNIVEL3 UP3 ON ( AP.ID_UPNIVEL3 = UP3.ID_UPNIVEL3 )
JOIN PERIODOSAFRA PS ON ( AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN UNIDADEADM UNID ON ( AP.ID_UNIDADEADM = UNID.ID_UNIDADEADM )
JOIN FILIAL F ON ( UNID.ID_FILIAL = F.ID_FILIAL )
JOIN EMPRESA E ON ( F.ID_EMPRESA = E.ID_EMPRESA )
WHERE AP.DT_OPERACAO BETWEEN ? AND ?
) )
AND ( UPPER(UN_CAT.CD_UNI_MEDIDA) = PARÂMETRO HORA )
) HORAS
GROUP BY DE_UNI_ADM,
ID_UNIDADEADM,
DA_UNI_ADM,
CD_UNI_ADM
)
UNION
(SELECT UNI.ID_UNIDADEADM ID_UNIDADEADM,
0 QT_AREA,
0 QT_HORAS,
COMB.DIESEL COMBUSTIVEL
FROM
(SELECT ID_EQUIPTO,
AP.ID_APATIVMEC,
UNI.ID_UNIDADEADM,
PER.ID_PERIODOSAFRA,
DT_OPERACAO
FROM APATIVMEC AP
LEFT JOIN APATIVMEC_LC LC ON (AP.ID_APATIVMEC = LC.ID_APATIVMEC)
LEFT JOIN APATIVMEC_LC_RAT RAT ON (LC.ID_APATIVMEC_LC = RAT.ID_APATIVMEC_LC)
LEFT JOIN APORDSERVICO OS ON (LC.ID_APORDSERVICO = OS.ID_APORDSERVICO)
LEFT JOIN UPNIVEL3 UPN3 ON (RAT.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
LEFT JOIN UPNIVEL2 UPN2 ON (UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
LEFT JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
LEFT JOIN PERIODOSAFRA PER ON (UPN3.ID_PERIODOSAFRA = PER.ID_PERIODOSAFRA)
JOIN UNIDADEADM UNI ON ( AP.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
) APA
JOIN EQUIPTO EQP ON ( APA.ID_EQUIPTO = EQP.ID_EQUIPTO )
JOIN MODELO MDL ON ( EQP.ID_MODELO = MDL.ID_MODELO )
JOIN CATOPERACIONAL CAT ON ( EQP.ID_CATOPERACIONAL = CAT.ID_CATOPERACIONAL )
JOIN UNIMEDIDA UN_CAT ON ( CAT.ID_UNIMEDIDA = UN_CAT.ID_UNIMEDIDA )
JOIN UNIDADEADM UNI ON ( APA.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
LEFT JOIN PERIODOSAFRA PER ON (APA.ID_PERIODOSAFRA = PER.ID_PERIODOSAFRA)
JOIN FILIAL F ON ( UNI.ID_FILIAL = F.ID_FILIAL )
JOIN EMPRESA E ON ( F.ID_EMPRESA = E.ID_EMPRESA )
LEFT JOIN (
SELECT APABASTEC.ID_UNIDADEADM CHAVE1,
D.ID_EQUIPTO CHAVE2,
TO_CHAR(D.DT_ABASTEC,'DD/MM/YYYY') CHAVE3,
SUM(D.qt_abastec) DIESEL
FROM APABASTEC APABASTEC
JOIN APABASTEC_DE D ON ( APABASTEC.ID_APABASTEC = D.ID_APABASTEC )
JOIN UNIDADEADM U ON ( APABASTEC.ID_UNIDADEADM = U.ID_UNIDADEADM )
WHERE D.DT_ABASTEC BETWEEN ? AND ?
AND D.ID_EQUIPTO IN
( SELECT DISTINCT APATIVMEC.ID_EQUIPTO
FROM APATIVMEC APATIVMEC
LEFT OUTER JOIN APATIVMEC_LC LC ON ( LC.ID_APATIVMEC = APATIVMEC.ID_APATIVMEC )
LEFT JOIN APATIVMEC_LC_RAT RAT ON (LC.ID_APATIVMEC_LC = RAT.ID_APATIVMEC_LC)
LEFT OUTER JOIN APORDSERVICO OS ON ( LC.ID_APORDSERVICO = OS.ID_APORDSERVICO )
WHERE APATIVMEC.DT_OPERACAO BETWEEN ? AND ?
AND ( ( NVL(LC.ID_OPERACAO, OS.ID_OPERACAO ) IS NULL )
OR ( NVL(LC.ID_OPERACAO, OS.ID_OPERACAO ) IN
( SELECT DISTINCT AP.ID_OPERACAO
FROM APPLANTIO AP
JOIN UPNIVEL3 UP3 ON ( AP.ID_UPNIVEL3 = UP3.ID_UPNIVEL3 )
JOIN PERIODOSAFRA PS ON ( AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA )
JOIN UNIDADEADM UNID ON ( AP.ID_UNIDADEADM = UNID.ID_UNIDADEADM )
JOIN FILIAL F ON ( UNID.ID_FILIAL = F.ID_FILIAL )
JOIN EMPRESA E ON ( F.ID_EMPRESA = E.ID_EMPRESA )
WHERE AP.DT_OPERACAO BETWEEN ? AND ?
) ) )
)
AND ( ( D.ID_OPERACAO IS NULL )
OR ( D.ID_OPERACAO IN
( SELECT DISTINCT AP.ID_OPERACAO
FROM APPLANTIO AP
JOIN UPNIVEL3 UP3 ON ( AP.ID_UPNIVEL3 = UP3.ID_UPNIVEL3 )
JOIN PERIODOSAFRA PS ON ( AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA )
JOIN UNIDADEADM UNID ON ( AP.ID_UNIDADEADM = UNID.ID_UNIDADEADM )
JOIN FILIAL F ON ( UNID.ID_FILIAL = F.ID_FILIAL )
JOIN EMPRESA E ON ( F.ID_EMPRESA = E.ID_EMPRESA )
WHERE AP.DT_OPERACAO BETWEEN ? AND ?
) ) )
GROUP BY APABASTEC.ID_UNIDADEADM,
D.ID_EQUIPTO,
D.DT_ABASTEC
) COMB ON ( APA.ID_UNIDADEADM = COMB.CHAVE1
AND APA.ID_EQUIPTO = COMB.CHAVE2
AND TO_CHAR(APA.DT_OPERACAO, 'DD/MM/YYYY') = COMB.CHAVE3 )
WHERE ( APA.DT_OPERACAO BETWEEN ? AND ? )
AND ( UPPER(UN_CAT.CD_UNI_MEDIDA) = 'PARÂMETRO HORA' )
AND DIESEL IS NOT NULL
GROUP BY UNI.DE_UNI_ADM,
UNI.ID_UNIDADEADM,
UNI.DA_UNI_ADM,
UNI.CD_UNI_ADM,
COMB.DIESEL
)
) TABELA
JOIN UNIDADEADM UNIDADEADM ON ( UNIDADEADM.ID_UNIDADEADM = TABELA.ID_UNIDADEADM )
JOIN PRXUSER_UNIDADEADM PRXUSER_UNIDADEADM ON (PRXUSER_UNIDADEADM.ID_UNIDADEADM = UNIDADEADM.ID_UNIDADEADM)
WHERE PRXUSER_UNIDADEADM.USER_ID = ?
GROUP BY UNIDADEADM.ID_UNIDADEADM,
UNIDADEADM.CD_UNI_ADM,
UNIDADEADM.DE_UNI_ADM,
UNIDADEADM.DA_UNI_ADM
UNION ALL
SELECT UNIDADEADM.ID_UNIDADEADM,
UNIDADEADM.CD_UNI_ADM,
UNIDADEADM.DE_UNI_ADM,
UNIDADEADM.DA_UNI_ADM,
SUM(TABELA2.QT_AREA) QT_AREA,
SUM(TABELA2.QT_HORAS) QT_HORAS,
SUM(TABELA2.QT_COMB) QT_COMB
FROM (
(SELECT APP.ID_UNIDADEADM ID_UNIDADEADM,
SUM(LC.QT_AREA) QT_AREA,
0 QT_HORAS,
0 QT_COMB
FROM AU_APTO APP
JOIN AU_TIPO TP ON (APP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON (APP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN UPNIVEL3 U3 ON ( LC.ID_UPNIVEL3 = U3.ID_UPNIVEL3 )
JOIN PERIODOSAFRA PS ON ( U3.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA )
JOIN UNIDADEADM UNI ON ( APP.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
JOIN FILIAL F ON ( UNI.ID_FILIAL = F.ID_FILIAL )
JOIN EMPRESA E ON ( F.ID_EMPRESA = E.ID_EMPRESA )
WHERE LC.FG_REPLANTIO = 'N'
AND APP.DT_OPERACAO BETWEEN ? AND ?
GROUP BY APP.ID_UNIDADEADM
)
UNION
(SELECT ID_UNIDADEADM ID_UNIDADEADM,
0 QT_AREA,
SUM(HORAS.QT_TOTAL_HK) QT_HORAS,
0 COMBUSTIVEL
FROM
(SELECT UNI.DE_UNI_ADM,
UNI.ID_UNIDADEADM,
UNI.DA_UNI_ADM,
UNI.CD_UNI_ADM,
NVL(RAT.QT_TOTAL_HK, MEC.QT_TOTAL_HK) QT_TOTAL_HK
FROM AU_APTO AP
JOIN AU_APTO_MEC MEC ON (AP.ID_AU_APTO = MEC.ID_AU_APTO)
LEFT JOIN AU_APTO_MEC_RAT RAT ON (MEC.ID_AU_APTO_MEC = RAT.ID_AU_APTO_MEC)
LEFT JOIN APORDSERVICO OS ON ( MEC.ID_APORDSERVICO = OS.ID_APORDSERVICO )
JOIN UPNIVEL3 UPN3 ON (RAT.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
JOIN UPNIVEL2 UPN2 ON (UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
JOIN PERIODOSAFRA PER ON (UPN3.ID_PERIODOSAFRA = PER.ID_PERIODOSAFRA)
JOIN OPERACAO OPE ON ( MEC.ID_OPERACAO = OPE.ID_OPERACAO )
JOIN EQUIPTO EQP ON ( AP.ID_EQUIPTO = EQP.ID_EQUIPTO )
JOIN MODELO MDL ON ( EQP.ID_MODELO = MDL.ID_MODELO )
JOIN CATOPERACIONAL CAT ON ( EQP.ID_CATOPERACIONAL = CAT.ID_CATOPERACIONAL )
JOIN UNIMEDIDA UN_CAT ON ( CAT.ID_UNIMEDIDA = UN_CAT.ID_UNIMEDIDA )
JOIN UNIDADEADM UNI ON ( AP.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
JOIN FILIAL F ON ( UNI.ID_FILIAL = F.ID_FILIAL )
JOIN EMPRESA E ON ( F.ID_EMPRESA = E.ID_EMPRESA )
WHERE ( AP.DT_OPERACAO BETWEEN ? AND ? )
AND ( OPE.ID_OPERACAO IN
( SELECT DISTINCT AP.ID_OPERACAO
FROM AU_APTO AP
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN UPNIVEL3 UP3 ON ( LC.ID_UPNIVEL3 = UP3.ID_UPNIVEL3 )
JOIN PERIODOSAFRA PS ON ( AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA)
JOIN UNIDADEADM UNID ON ( AP.ID_UNIDADEADM = UNID.ID_UNIDADEADM )
JOIN FILIAL F ON ( UNID.ID_FILIAL = F.ID_FILIAL )
JOIN EMPRESA E ON ( F.ID_EMPRESA = E.ID_EMPRESA )
WHERE AP.DT_OPERACAO BETWEEN ? AND ?
) )
AND ( UPPER(UN_CAT.CD_UNI_MEDIDA) = PARÂMETRO HORA)
) HORAS
GROUP BY DE_UNI_ADM,
ID_UNIDADEADM,
DA_UNI_ADM,
CD_UNI_ADM
)
UNION
(SELECT UNI.ID_UNIDADEADM ID_UNIDADEADM,
0 QT_AREA,
0 QT_HORAS,
COMB.DIESEL COMBUSTIVEL
FROM
(SELECT ID_EQUIPTO,
AP.ID_AU_APTO,
UNI.ID_UNIDADEADM,
PER.ID_PERIODOSAFRA,
DT_OPERACAO
FROM AU_APTO AP
LEFT JOIN AU_APTO_MEC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
LEFT JOIN AU_APTO_MEC_RAT RAT ON (LC.ID_AU_APTO_MEC = RAT.ID_AU_APTO_MEC)
LEFT JOIN APORDSERVICO OS ON (LC.ID_APORDSERVICO = OS.ID_APORDSERVICO)
LEFT JOIN UPNIVEL3 UPN3 ON (RAT.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3)
LEFT JOIN UPNIVEL2 UPN2 ON (UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
LEFT JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
LEFT JOIN PERIODOSAFRA PER ON (UPN3.ID_PERIODOSAFRA = PER.ID_PERIODOSAFRA)
JOIN UNIDADEADM UNI ON ( AP.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
) APA
JOIN EQUIPTO EQP ON ( APA.ID_EQUIPTO = EQP.ID_EQUIPTO )
JOIN MODELO MDL ON ( EQP.ID_MODELO = MDL.ID_MODELO )
JOIN CATOPERACIONAL CAT ON ( EQP.ID_CATOPERACIONAL = CAT.ID_CATOPERACIONAL )
JOIN UNIMEDIDA UN_CAT ON ( CAT.ID_UNIMEDIDA = UN_CAT.ID_UNIMEDIDA )
JOIN UNIDADEADM UNI ON ( APA.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
LEFT JOIN PERIODOSAFRA PER ON (APA.ID_PERIODOSAFRA = PER.ID_PERIODOSAFRA)
JOIN FILIAL F ON ( UNI.ID_FILIAL = F.ID_FILIAL )
JOIN EMPRESA E ON ( F.ID_EMPRESA = E.ID_EMPRESA )
LEFT JOIN (
SELECT APABASTEC.ID_UNIDADEADM CHAVE1,
D.ID_EQUIPTO CHAVE2,
TO_CHAR(D.DT_ABASTEC,'DD/MM/YYYY') CHAVE3,
SUM(D.qt_abastec) DIESEL
FROM APABASTEC APABASTEC
JOIN APABASTEC_DE D ON ( APABASTEC.ID_APABASTEC = D.ID_APABASTEC )
JOIN UNIDADEADM U ON ( APABASTEC.ID_UNIDADEADM = U.ID_UNIDADEADM )
WHERE D.DT_ABASTEC BETWEEN ? AND ?
AND D.ID_EQUIPTO IN
( SELECT DISTINCT AP.ID_EQUIPTO
FROM AU_APTO AP
LEFT OUTER JOIN AU_APTO_MEC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
LEFT JOIN AU_APTO_MEC_RAT RAT ON (LC.ID_AU_APTO_MEC = RAT.ID_AU_APTO_MEC)
LEFT OUTER JOIN APORDSERVICO OS ON ( LC.ID_APORDSERVICO = OS.ID_APORDSERVICO )
WHERE AP.DT_OPERACAO BETWEEN ? AND ?
AND ( ( NVL(LC.ID_OPERACAO, OS.ID_OPERACAO ) IS NULL )
OR ( NVL(LC.ID_OPERACAO, OS.ID_OPERACAO ) IN
( SELECT DISTINCT AP.ID_OPERACAO
FROM AU_APTO AP
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN UPNIVEL3 UP3 ON ( LC.ID_UPNIVEL3 = UP3.ID_UPNIVEL3 )
JOIN PERIODOSAFRA PS ON ( AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA )
JOIN UNIDADEADM UNID ON ( AP.ID_UNIDADEADM = UNID.ID_UNIDADEADM )
JOIN FILIAL F ON ( UNID.ID_FILIAL = F.ID_FILIAL )
JOIN EMPRESA E ON ( F.ID_EMPRESA = E.ID_EMPRESA )
WHERE AP.DT_OPERACAO BETWEEN ? AND ?
) ) )
)
AND ( ( D.ID_OPERACAO IS NULL )
OR ( D.ID_OPERACAO IN
( SELECT DISTINCT AP.ID_OPERACAO
FROM AU_APTO AP
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN UPNIVEL3 UP3 ON ( LC.ID_UPNIVEL3 = UP3.ID_UPNIVEL3 )
JOIN PERIODOSAFRA PS ON ( AP.ID_PERIODOSAFRA = PS.ID_PERIODOSAFRA )
JOIN UNIDADEADM UNID ON ( AP.ID_UNIDADEADM = UNID.ID_UNIDADEADM )
JOIN FILIAL F ON ( UNID.ID_FILIAL = F.ID_FILIAL )
JOIN EMPRESA E ON ( F.ID_EMPRESA = E.ID_EMPRESA )
WHERE AP.DT_OPERACAO BETWEEN ? AND ?
) ) )
GROUP BY APABASTEC.ID_UNIDADEADM,
D.ID_EQUIPTO,
D.DT_ABASTEC
) COMB ON ( APA.ID_UNIDADEADM = COMB.CHAVE1
AND APA.ID_EQUIPTO = COMB.CHAVE2
AND TO_CHAR(APA.DT_OPERACAO, 'DD/MM/YYYY') = COMB.CHAVE3 )
WHERE ( APA.DT_OPERACAO BETWEEN ? AND ? )
AND ( UPPER(UN_CAT.CD_UNI_MEDIDA) = PARÂMETRO HORA)
AND DIESEL IS NOT NULL
GROUP BY UNI.DE_UNI_ADM,
UNI.ID_UNIDADEADM,
UNI.DA_UNI_ADM,
UNI.CD_UNI_ADM,
COMB.DIESEL
)
) TABELA2
JOIN UNIDADEADM UNIDADEADM ON ( UNIDADEADM.ID_UNIDADEADM = TABELA2.ID_UNIDADEADM )
JOIN PRXUSER_UNIDADEADM PRXUSER_UNIDADEADM ON (PRXUSER_UNIDADEADM.ID_UNIDADEADM = UNIDADEADM.ID_UNIDADEADM)
WHERE PRXUSER_UNIDADEADM.USER_ID = ?
GROUP BY UNIDADEADM.ID_UNIDADEADM,
UNIDADEADM.CD_UNI_ADM,
UNIDADEADM.DE_UNI_ADM,
UNIDADEADM.DA_UNI_ADM
)
GROUP BY ID_UNIDADEADM,
CD_UNI_ADM,
DE_UNI_ADM,
DA_UNI_ADM
ORDER BY CD_UNI_ADM,
DE_UNI_ADM,
DA_UNI_ADM

Alteração no Relatório de Integração com o ERP para incluir o tipo "Apontamento Agrícola"


Objetivo: Alteração no Relatório de Integração com o ERP para incluir o tipo "Apontamento Agrícola".
Menu: Visões > Integração com ERP
Entrada de menu: ADSV0002
Esboço da tela:



Especificação técnica:

  • Incluir no campo Tipo a opção "Apontamento Agrícola" que será utilizado para recuperar os materiais utilizados nos Apontamentos Agrícolas. A opção Apontamento Agrícola deverá ser incluída apenas para o Tipo de Relatório "Relatório Consolidado de Baixa de Material"

 

  • Deverá ser criado um novo método na classe EMSBridgeReportDAO para recuperar os apontamentos Agrícolas. Utilizar como exemplo o método selectAptInsumosForReport da classe. Os mesmos filtros utilizados neste método deverão ser aplicados para o método referente aos Apontamentos Agrícolas.

 

  • Caso seja aplicado na tela o filtro situação:
    • Sucesso: deverão ser recuperados os Apontamentos Agrícolas (Tabela AU_APTO) com o campo FG_STATUS EAI igual a 4, 6, 9 e 15.
    • Falha: deverão ser recuperados os Apontamentos Agrícolas (Tabela AU_APTO) com o campo FG_STATUS EAI igual a 3, 5, e 12.
    • Enviado: deverão ser recuperados os Apontamentos Agrícolas (Tabela AU_APTO) com o campo FG_STATUS EAI igual a 2 e 11.
    • Aguardando: deverão ser recuperados os Apontamentos Agrícolas (Tabela AU_APTO) com o campo FG_STATUS EAI igual a 1 e 10.
    • Aberto: deverão ser recuperados os Apontamentos Agrícolas (Tabela AU_APTO) com o campo FG_STATUS EAI igual a 0.

 

  • Abaixo segue sql que deverá ser utilizado para recuperar os Apontamentos Agrícolas:


SELECT DISTINCT DE.ID_AU_APTO_INS,
DE.ID_AU_APTO,
AP.ID_EQUIPTO,
AP.DT_OPERACAO AS DATA_CONSUMO,
DE.ID_INSUMO,
INS.CD_INSUMO,
INS.DE_INSUMO,
INS.CD_INT_ERP AS CD_INT_ERP_MATERIAL,
INS.FG_SEMENTE,
DE.NO_REF_ERP,
DE.QT_CONS_TOTAL,
MD.DE_MODELO,
AP.NO_BOLETIM,
AP.FG_STATUS_EAI,
AP.ID_UNIDADEADM,
EQ.CD_EQUIPTO,
DP.CD_INT_ERP AS CD_DEPOSITO,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
CC.CD_INT_ERP AS CD_INT_ERP_CCUSTO,
UNI.CD_INT_ERP AS CD_FILIAL,
AP.NO_BOLETIM,
TP.DE_AU_TIPO
FROM AU_APTO AP
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO)
JOIN UNIDADEADM UNI ON ( AP.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
JOIN PRXUSER_UNIDADEADM PU ON (UNI.ID_UNIDADEADM = PU.ID_UNIDADEADM)
JOIN CCUSTO CC ON ( AP.ID_CCUSTO = CC.ID_CCUSTO )
JOIN AU_APTO_INS DE ON ( DE.ID_AU_APTO = AP.ID_AU_APTO )
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
LEFT JOIN INSUMO INS ON ( DE.ID_INSUMO = INS.ID_INSUMO )
LEFT JOIN EQUIPTO EQ ON ( AP.ID_EQUIPTO = EQ.ID_EQUIPTO )
LEFT JOIN DEPOSITO DP ON ( DE.ID_DEPOSITO = DP.ID_DEPOSITO )
LEFT JOIN MODELO MD ON ( EQ.ID_MODELO = MD.ID_MODELO )
LEFT JOIN UPNIVEL3 UPN3 ON ( UPN3.ID_UPNIVEL3 = LC.ID_UPNIVEL3 )
LEFT JOIN UPNIVEL2 UPN2 ON ( UPN2.ID_UPNIVEL2 = UPN3.ID_UPNIVEL2)
LEFT JOIN UPNIVEL1 UPN1 ON ( UPN1.ID_UPNIVEL1 = UPN2.ID_UPNIVEL1)
--FILTRO
ORDER BY AP.FG_STATUS_EAI,
AP.NO_BOLETIM,
AP.DT_OPERACAO,
DE.NO_REF_ERP

Relatório:

  • Para o relatório deverão ser exibidos:
    • Em Tipo o termo referente à Apontamento Agrícola.
    • Em Origem deverá ser exibido o termo referente à Apontamento Agrícola juntamente com a descrição da Tipo de Apontamento Agrícola (Campo DE_AU_TIPO da tabela AU_TIPO).
    • Deverá ser exibido o termo referente à Unidade Administrativa juntamente com o código e a descrição da Unidade Administrativa do Apontamento Agrícola (Campo ID_UNIDADEADM da tabela AU_APTO).

 

Alteração na consulta do Indicador OS de Campo Aberta para contemplar o Apontamento Agrícola. (Indicadores Gerenciais > OS de Campo Aberta)


Objetivo: Alteração no Relatório de Integração com o ERP para incluir o tipo "Apontamento Agrícola".
Menu: Indicadores Gerenciais > OS de Campo Aberta
Entrada de menu: AERV0017
Esboço da tela:



Especificação técnica:

  • Para a Consulta de Indicadores Gerencias de OS de Campo Aberta deverá ser alterada a sql do método selectOSAbertaView da classe OrdemServicoAbertaDAO. Na sql deverão ser incluídos os trechos abaixo:


Trecho 1:
(SELECT SUM(NVL(LC.QT_AREA,0))
FROM AU_APTO_LC LC
JOIN AU_APTO AP ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
WHERE AP.ID_APORDSERVICO = OS.ID_APORDSERVICO
) AS QT_AREA_EXEC_APT_AGRICOLA
Trecho 2:
LEFT JOIN AU_APTO AU ON (AU.ID_APORDSERVICO = OS.ID_APORDSERVICO)

  • Quando percorrido o resultSet, deverá ser sumarizado na variável qtAreaTotal o resultado do trecho que será incluído:


BigDecimal qtAreaInsumo = rs.getBigDecimal("QT_AREA_EXEC_INSUMO") != null ? rs.getBigDecimal("QT_AREA_EXEC_INSUMO") : new BigDecimal(0);
BigDecimal qtAreaAtivProd = rs.getBigDecimal("QT_AREA_EXEC_ATIVPROD")!= null? rs.getBigDecimal("QT_AREA_EXEC_ATIVPROD"): new BigDecimal(0);
BigDecimal qtAreaPlantio = rs.getBigDecimal("QT_AREA_EXEC_PLANTIO") != null? rs.getBigDecimal("QT_AREA_EXEC_PLANTIO") : new BigDecimal(0);
BigDecimal qtAreaApontamentoAgricola = rs.getBigDecimal("QT_AREA_EXEC_APT_AGRICOLA") != null? rs.getBigDecimal("QT_AREA_EXEC_APT_AGRICOLA") : new BigDecimal(0);
BigDecimal qtAreaTotal = qtAreaInsumo.add(qtAreaAtivProd).add(qtAreaPlantio).add(qtAreaApontamentoAgricola);

  • Deverá ser alterada a consulta efetuada no método selectOSAbertaDetalhesViewLocais. Para isso incluir na sql existente o trecho abaixo:


(SELECT SUM(NVL(LC.QT_AREA,0))
FROM AU_APTO_LC LC
JOIN AU_APTO AP ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
WHERE AP.ID_APORDSERVICO = OS.ID_APORDSERVICO AND LC.ID_UPNIVEL3 = U3.ID_UPNIVEL3
) AS QT_AREA_EXEC_APT_AGRICOLA

  • Quando percorrido o resultSet, deverá ser sumarizado na variável qtAreaTotal o resultado do trecho que será incluído:


BigDecimal qtAreaInsumo = rs.getBigDecimal("QT_AREA_EXEC_INSUMO") != null? rs.getBigDecimal("QT_AREA_EXEC_INSUMO") : new BigDecimal(0);
BigDecimal qtAreaAtivProd = rs.getBigDecimal("QT_AREA_EXEC_ATIVPROD")!= null? rs.getBigDecimal("QT_AREA_EXEC_ATIVPROD"): new BigDecimal(0);
BigDecimal qtAreaPlantio = rs.getBigDecimal("QT_AREA_EXEC_PLANTIO") != null? rs.getBigDecimal("QT_AREA_EXEC_PLANTIO") : new BigDecimal(0);
BigDecimal qtAreaApontamentoAgricola = rs.getBigDecimal("QT_AREA_EXEC_APT_AGRICOLA") != null? rs.getBigDecimal("QT_AREA_EXEC_APT_AGRICOLA") : new BigDecimal(0);
BigDecimal qtAreaTotal = qtAreaInsumo.add(qtAreaAtivProd).add(qtAreaPlantio).add(qtAreaApontamentoAgricola);

Alteração na consulta do Indicador Controle de Dosagens para contemplar o Apontamento Agrícola.


Objetivo: Alteração na consulta do Indicador Controle de Dosagens para contemplar o Apontamento Agrícola.
Menu: Indicadores Gerenciais > Controle de Dosagens
Entrada de menu: AERV0018
Esboço da tela:







Demais Validações:

  • Na coluna Boletim, os Boletins seguirão a mesma tratativa, Azul (Sem Inconformidade), Vermelho Escuro (Justificados) e Vermelho (Inconformidade).
  • Ao "Clicar" sobre o número do boletim, será direcionado para a pop-up mostrando os resultados do indicador gerencial.
  • Ao "Clicar" Acessar Apontamento, verificar a origem do apontamento, se a origem for Aplicação de Insumo, será direcionado para a tela de Aplicação de Insumo, passando o número do boletim no filtro e trazendo na tela para edição, se a origem for Apontamento Agrícola, será direcionado para a tela do Apontamento Agrícola, passado no número do boletim no filtro e trazendo na tela para edição.



Especificação técnica:

  • Ao "Clicar" sobre o número do boletim, será direcionado para a pop-up mostrando os resultados do indicador gerencial.
  • Ao "Clicar" Acessar Apontamento, verificar a origem do apontamento, se a origem for Aplicação de Insumo, será direcionado para a tela de Aplicação de Insumo, passando o número do boletim no filtro e trazendo na tela para edição, se a origem for Apontamento Agrícola, será direcionado para a tela do Apontamento Agrícola, passado no número do boletim no filtro e trazendo na tela para edição.

 

  • Na consulta do Indicador de Controle de Dosagem, ao clicar em Aplicar é chamado o método selecionarDetalhesConsultaControleDosagem da classe ControleDosagemDAO. Alterar a consulta efetuada no método para contemplar os Apontamentos Agrícolas acrescentando na consulta o trecho abaixo:


UNION ALL
SELECT AP.DT_OPERACAO,
PI.TP_BOLETIM,
AP.NO_BOLETIM,
AP.ID_AU_APTO ID_BOLETIM,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
PI.FG_CONFORME,
PI.DE_JUSTIFICATIVA,
OP.CD_OPERACAO,
OP.DE_OPERACAO,
U.CD_UNI_MEDIDA,
E.ID_EQUIPE,
E.CD_EQUIPE,
E.DE_EQUIPE,
OS.NO_BOLETIM NO_OS,
SUM(LC.QT_AREA) QT_AREA ,
U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1
FROM PRC_INDGER PI
JOIN AU_APTO AP ON (AP.ID_AU_APTO = PI.ID_BOLETIM)
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN CCUSTO CC ON (AP.ID_CCUSTO = CC.ID_CCUSTO)
JOIN OPERACAO OP ON (AP.ID_OPERACAO = OP.ID_OPERACAO)
JOIN UNIMEDIDA U ON (OP.ID_UNIMEDIDA = U.ID_UNIMEDIDA)
JOIN UPNIVEL3 U3 ON (LC.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
JOIN UPNIVEL1 U1 ON (U2.ID_UPNIVEL1 = U1.ID_UPNIVEL1)
LEFT JOIN EQUIPE E ON (AP.ID_EQUIPE = E.ID_EQUIPE)
LEFT JOIN APORDSERVICO OS ON (AP.ID_APORDSERVICO = OS.ID_APORDSERVICO)
WHERE PI.ID_INDGER = 1
AND PI.TP_BOLETIM = 'A'
AND AP.ID_UNIDADEADM = ?
if(idEquipe !=0){
sql.append(" AND AP.ID_EQUIPE = ? ");
}
if(ob != null && ob.toString().equalsIgnoreCase("MOBILE")){
sql.append(" AND PI.FG_CONFORME = 'N' ");
}
GROUP BY AP.DT_OPERACAO,
PI.TP_BOLETIM,
AP.NO_BOLETIM,
AP.ID_AU_APTO,
CC.CD_CCUSTO,
CC.DE_CCUSTO,
PI.FG_CONFORME,
PI.DE_JUSTIFICATIVA,
OP.CD_OPERACAO,
OP.DE_OPERACAO,
U.CD_UNI_MEDIDA,
E.ID_EQUIPE,
E.CD_EQUIPE,
E.DE_EQUIPE,
OS.NO_BOLETIM ,
U1.CD_UPNIVEL1,
U1.DE_UPNIVEL1

  • Note que ao recuperar os registros, existe uma tratativa para recuperação dos detalhes dos Apontamentos caso seja do tipo Plantio (P) ou do tipo Insumo (I). Deverá ser efetuado um novo método, utilizando os mesmos objetos utilizados atualmente para recuperar os detalhes quando for do tipo Apontamento Agrícola (A). Para isso criar um novo método utilizando a sql abaixo:


SELECT U2.CD_UPNIVEL2,
U3.CD_UPNIVEL3,
LC.QT_AREA,
CO.CD_COMPONENTE,
CO.DE_COMPONENTE,
UN.CD_UNI_MEDIDA,
AP_INS.QT_DOSE_PROG QT_DOSE_PROG,
(CASE WHEN LC.QT_AREA > 0
THEN (AP_INS.QT_CONS_TOTAL/LC.QT_AREA)
ELSE 0
END ) QT_DOSE_REAL,
(CASE WHEN OCO.QT_PRODUCAO > 0
THEN (OCO.QT_COMPONENTE / OCO.QT_PRODUCAO)
ELSE 0
END) QT_DOSE_OS,
AP_INS.QT_VALOR,
SUM(AP_INS.QT_CONS_TOTAL) QT_CONS_TOTAL
FROM AU_APTO AP
JOIN AU_APTO_INS AP_INS ON (AP.ID_AU_APTO = AP_INS.ID_AU_APTO)
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
JOIN INSUMO I ON (AP_INS.ID_INSUMO = I.ID_INSUMO)
JOIN UPNIVEL3 U3 ON (LC.ID_UPNIVEL3 = U3.ID_UPNIVEL3)
JOIN UPNIVEL2 U2 ON (U3.ID_UPNIVEL2 = U2.ID_UPNIVEL2)
LEFT JOIN COMPONENTE_MAT CM ON ((LPAD( I.CD_INT_ERP, 30, '0') BETWEEN LPAD( CM.CD_MATERIAL_INI, 30, '0')
AND LPAD( CM.CD_MATERIAL_FIN, 30,'0')) AND (CM.ID_UNIDADEADM = AP.ID_UNIDADEADM ))
if("S".equals(informarInsumoOS)){
// Quando configurado para "Informar Insumo na OS para Componente do Tipo Insumo"
sql.append(" LEFT OUTER JOIN APORDSERVICO_CO OCO ON (AP.ID_APORDSERVICO = OCO.ID_APORDSERVICO AND OCO.ID_INSUMO = I.ID_INSUMO) ");
}
else if("N".equals(informarInsumoOS)){
// Quando NÃO configurado para "Informar Insumo na OS para Componente do Tipo Insumo"
sql.append(" LEFT JOIN APORDSERVICO_CO OCO ON (AP.ID_APORDSERVICO = OCO.ID_APORDSERVICO AND OCO.ID_COMPONENTE = CM.ID_COMPONENTE) ");
}
LEFT JOIN COMPONENTE CO ON(CM.ID_COMPONENTE= CO.ID_COMPONENTE AND CO.FG_TP_COMPONENTE = 'I')
LEFT JOIN UNIMEDIDA UN ON (CO.ID_UNIMEDIDA = UN.ID_UNIMEDIDA)
WHERE AP.ID_AU_APTO= ?
GROUP BY U2.CD_UPNIVEL2,
U3.CD_UPNIVEL3,
LC.QT_AREA,
CO.CD_COMPONENTE,
CO.DE_COMPONENTE,
UN.CD_UNI_MEDIDA,
AP_INS.QT_DOSE_PROG,
(CASE WHEN LC.QT_AREA > 0
THEN (AP_INS.QT_CONS_TOTAL/LC.QT_AREA)
ELSE 0
END ),
(CASE WHEN OCO.QT_PRODUCAO > 0
THEN (OCO.QT_COMPONENTE / OCO.QT_PRODUCAO)
ELSE 0
END),
AP_INS.QT_VALOR
ORDER BY U2.CD_UPNIVEL2, U3.CD_UPNIVEL3, CO.CD_COMPONENTE

  • Na consulta do Indicador de Controle de Dosagem, ao clicar em Imprimir é chamado o método selecionarDetalhesRelatorioControleDosagem da classe ControleDosagemDAO. Alterar a consulta efetuada no método para contemplar os Apontamentos Agrícolas acrescentando na consulta o trecho abaixo:


UNION
SELECT AP.DT_OPERACAO,
PI.TP_BOLETIM,
AP.NO_BOLETIM,
PI.FG_CONFORME,
PI.DE_JUSTIFICATIVA
FROM PRC_INDGER PI
JOIN AU_APTO AP ON (AP.ID_AU_APTO = PI.ID_BOLETIM)
WHERE PI.ID_INDGER = 1
AND PI.TP_BOLETIM = 'A'
AND AP.ID_UNIDADEADM = 1

  • Ao recuperar os registros no método acima, verifica-se qual o tipo de Apontamento para setar a descrição conforme abaixo. Acrescentar neste trecho o teste para caso o Tipo de Boletim for "A", setar na descrição o termo referente à "Apontamento Agrícola"


if("I".equals(detalhe.getTipoBoletim())){
detalhe.setDescTipoBoletim(termos.getProperty("ID_INSUMO"));
}
else if("P".equals(detalhe.getTipoBoletim())){
detalhe.setDescTipoBoletim(termos.getProperty("PLANTIO"));
}

Alteração no relatório de Integração de Movimentação de Estoque para incluir o tipo "Apontamento Agrícola"


Objetivo: Alteração no relatório de Integração de Movimentação de Estoque para incluir o tipo "Apontamento Agrícola"
Menu: Administração > Relatórios de Integração
Entrada de menu: ADSV0007
Esboço da tela:

  • Para tirar o relatório o usuário deve informar o tipo de relatório (Relatório Consolidado da Baixa de Material), a situação (todos, falhas, sucesso, aguardando e aberto) e o Tipo (Insumos, Plantio, Tratamento de Sementes/Mudas, Lubrificação, Abastecimento, Beneficiamento, Blocagem e Apontamento Agrícola).



Especificação técnica:

  • Alterar no manual o descritivo em vermelho.
  • Incluir no Campo Tipo a opção "Apontamento Agrícola". Visível somente se o tipo do relatório for "Relatório de Integração de Movimentação de Estoque".
  • Para a emissão de relatório de Integração é utilizado o serviço selectBaixaMaterialBRG da classe EMSBridgeReportDAO. Esse serviço deverá ser alterado para incluir os Apontamentos Agrícolas.
  • Inicialmente, o serviço efetua a chamada para o método selectBRGMaterialForReportVL. Note a estrutura elaborada para montagem da consulta e recuperação dos dados. A estrutura deverá ser mantida. Abaixo seque o sql que deverá ser elaborado quando a consulta for do tipo Apontamento Agrícola ou do tipo Todos.


SELECT DISTINCT HE.ID_BOLETIM,
HE.NO_BOLETIM,
HE.FG_ORIGEM ,
HE.FG_TPMOVTO ,
HE.DE_MENSAGEM,
HE.DT_CONSUMO AS DT_LANCAMENTO ,
HE.DTHR_PROCESSAMENTO AS DTHR_PROCESSAMENTO,
HE.FG_STATUS ,
HE.CD_MATERIAL_ERP ,
HE.CD_DEPOSITO ,
HE.QT_CONSUMO ,
HE.NO_DOC_ERP AS NO_DOCMATERIAL ,
HE.CD_CCUSTO,
HE.QT_VALOR ,
HE.QT_VALOR1 ,
HE.QT_VALOR2 ,
HE.QT_VALOR3 ,
HE.QT_VALOR4 ,
HE.DTHR_PROCESSAMENTO AS PROCESS_VL,
AP.FG_STATUS_EAI,
F.CD_FILIAL,
F.DE_FILIAL
FROM BRG_BXMATERIAL_EMS HE
LEFT JOIN AU_APTO AP ON (AP.ID_AU_APTO = HE.ID_BOLETIM)
LEFT JOIN UNIDADEADM UNI ON (UNI.ID_UNIDADEADM = AP.ID_UNIDADEADM)
LEFT JOIN FILIAL F ON (F.ID_FILIAL = UNI.ID_FILIAL)
LEFT JOIN PRXUSER_UNIDADEADM PU ON (UNI.ID_UNIDADEADM = PU.ID_UNIDADEADM)
WHERE ( HE.DT_ATUALIZACAO <= ?
AND HE.DT_ATUALIZACAO >= ? )
AND PU.USER_ID = ( ? )
AND HE.FG_ORIGEM = 'A'
ORDER BY HE.NO_BOLETIM, HE.FG_STATUS, F.CD_FILIAL, HE.FG_ORIGEM, HE.CD_MATERIAL_ERP,
HE.DTHR_PROCESSAMENTO DESC

  • Em seguida, caso o parâmetro "Controle por Empresa x Filial" (Tabela PRXPARAMETER; campo CONTEXT_APL = "PIMSGRAOS.EAI" e campo NAME_PARAMETER= "EMPRESA_FILIAL_EAI" ) estiver com o valor 'false' deverão ser recuperada a fazenda e Unidade Administrativa dos apontamentos agrícolas. Essa recuperação deverá ser feita através do método fillDataUPNForReport. Observe a estrutura do método e mantenha a mesma para a inclusão do apontamento Agrícola.O sql para recuperação dos apontamentos agrícolas deverá ficar conforme sql abaixo:


SELECT DISTINCT UPN1.CD_UPNIVEL1,
UPN1.DA_UPNIVEL1,
UPN1.DE_UPNIVEL1,
UNI.ID_UNIDADEADM,
UNI.CD_UNI_ADM,
UNI.DA_UNI_ADM
FROM AU_APTO A
JOIN AU_TIPO TP ON (A.ID_AU_TIPO = TP.ID_AU_TIPO AND (TP.FG_INSUMO = 'S' OR TP.FG_PLANTIO = 'S' ))
LEFT JOIN AU_APTO_LC LC ON ( LC.ID_AU_APTO = A.ID_AU_APTO )
LEFT JOIN UPNIVEL3 UPN3 ON (LC.ID_UPNIVEL3 = UPN3.ID_UPNIVEL3 )
LEFT JOIN UPNIVEL2 UPN2 ON (UPN3.ID_UPNIVEL2 = UPN2.ID_UPNIVEL2)
LEFT JOIN UPNIVEL1 UPN1 ON (UPN2.ID_UPNIVEL1 = UPN1.ID_UPNIVEL1)
LEFT JOIN UNIDADEADM UNI ON (A.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
JOIN PRXUSER_UNIDADEADM PU ON (UNI.ID_UNIDADEADM = PU.ID_UNIDADEADM)
WHERE A.NO_BOLETIM = ?

  • Em seguida, alterar o método fillDataINSUMOSForReport para recuperar os insumos utilizados no Apontamento Agrícola. Deverá ser alterada a verificação do tipo de Apontamento para quando for Apontamento Agrícola.

 

Na Divisão do [Talhão] considerar o Apontamento Agrícola para obter a área já plantada.


Objetivo: Na Divisão do [Talhão] considerar o Apontamento Agrícola para obter a área já plantada.
Menu: Tabelas > Locais de Produção > Divisão de [Talhão]
Entrada de menu: LDPM0008
Esboço da tela:



Especificação Técnica:

  • Considerar os Apontamentos Agrícolas para recuperar o campo Área Plantada. Para isso, substituir o sql utilizado no método selectTotalAreaPorPeriodoProducaoTalhao da classe ApontamentoPlantioDAO pelo sql abaixo:


SELECT SUM (TOTAL) AS TOTAL
FROM
(
SELECT SUM(QT_AREA) AS TOTAL
FROM APPLANTIO
LEFT JOIN UNIDADEADM UNI ON ( APPLANTIO.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
WHERE ID_UPNIVEL3 = ?
AND ID_PERIODOSAFRA = ?
AND FG_REPLANTIO = 'N'
UNION ALL
SELECT SUM(LC.QT_AREA) AS TOTAL
FROM AU_APTO AP
JOIN AU_TIPO TP ON (AP.ID_AU_TIPO = TP.ID_AU_TIPO AND TP.FG_PLANTIO = 'S')
JOIN AU_APTO_LC LC ON (AP.ID_AU_APTO = LC.ID_AU_APTO)
LEFT JOIN UNIDADEADM UNI ON ( AP.ID_UNIDADEADM = UNI.ID_UNIDADEADM )
WHERE LC.ID_UPNIVEL3 = ?
AND LC.FG_REPLANTIO = 'N'
)

Alteração na Ocorrência de Processamentos para contemplar o Apontamento Agrícola referente à Valoração de Insumos e Materiais Consumidos


Objetivo: Alteração na Ocorrência de Processamentos para contemplar o Apontamento Agrícola referente à Valoração de Insumos e Materiais Consumidos.
Menu: Visões > Custos > Ocorrências de Processamento
Entrada de menu: CSTV0019
Esboço da tela:


Validações:

  • Quando informado processo "Valoração de Insumos e Materiais" as opções de Fases são "AB-Abastecimento, IN-Insumos, LU-Lubrificação, OM-Ordem de Serviço de Manutenção, PL-Plantio, TS-Tratamento de Sementes/Mudas e AU – Apontamento Agrícola".


Especificação técnica:

  • Alterar o manual de acordo com o descritivo em vermelho.
  • Quando no Campo Processo for delimitada a opção "Valoração de Insumos e Materiais", incluir no Campo Fase a opção "AU – Apontamento Agrícola". Para isso deverá ser incluída a opção na tabela PLC_FASEPROC de acordo com a instrução abaixo. Substituir o coringa ( ? ) pelo próximo ID disponível (SELECT MAX(ID_PLC_FASEPROC)+1 FROM PLC_FASEPROC)

INSERT INTO PLC_FASEPROC (ID_PLC_FASEPROC, CD_PLC_FASEPROC, DE_PLC_FASEPROC, FG_PROCESSO)
VALUES( ? , 'AU', 'Apontamento Agrícola', 'V');
COMMIT;

 

  • Alterar o método selectByCodigoCaptacao da classe FaseCustoCaptacaoDAO incluindo o case para o apontamento Agrícola:


  case AU:
  descricao = "termo que representa o descritivo "Apontamento Agrícola"";
 break;

 

  • Alterar o método selectForReport da classe OcorrenciaProcessamentoDAO incluindo o case para o Apontamento Agrícola:


case AU:
vo.setFase(termos.getProperty("termo que representa o descritivo "Apontamento Agrícola"");
break;



(Obrigatório)
<Na tabela abaixo informe quais são as rotinas envolvidas, o tipo de operação, a opção de menu e se necessário uma breve descrição das regras de negócio relacionadas a rotina>.

Rotinas Envolvidas

 

 

 

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

Tipo de Apontamento Agrícola

Inclusão

Tabelas > Básicos > Tipo de Apontamento Agrícola

-

Cadastro de Insumos

Alteração

Tabelas > Insumos > Insumos

-

Apontamento Agrícola

Inclusão

Apontamentos > Atividades e Recursos > Apontamento Agrícola

-

Ordem de Serviço de Campo

Alteração

Apontamentos > Atividades e Recursos > Ordem de Serviço de Campo

-

Encerrar/Reabrir Ordem de Serviço

Alteração

Apontamentos > Atividades e Recursos > Encerrar/Reabrir Ordem de Serviço

-

Encerramento de Plantio

Alteração

Apontamentos > Plantio > Encerramento de Plantio

-

Origem de Pagamento

Alteração

Tabelas > Pagamento de Serviço > Origem de Pagamento

-

Processamento do Pagamento dos Serviços

Alteração

Processamento > Pagamento de Serviço > Processamento do Pagamento dos Serviços

-

Captação de Entrada de Custos

Alteração

Processamentos > Processamento Custos > Captação de Entrada de Custos

-

Processamento de Custo

Alteração

Processamentos > Processamento Custos > Processamento de Custo

-

Indicadores Gerenciais

Alteração

Processamentos > Processamento de Indicadores Gerenciais > Indicadores Gerenciais

-

Valoração de Insumos e Materiais Consumidos

Alteração

Processamentos > Processamento de Apontamentos > Valoração de Insumos e Materiais Consumidos

-

Rateio Atividade Mecanizada por Local de Produção

Alteração

Processamentos > Processamento de Apontamentos > Rateio Atividade Mecanizada por Local de Produção

-

Aplicação de Insumos

Alteração

Visões > Atividades e Recursos > Aplicação de Insumos

-

Atividades Manuais

Alteração

Visões > Atividades e Recursos > Atividades Manuais

-

Atividades Mecanizadas

Alteração

Visões > Atividades e Recursos > Atividades Mecanizadas

-

Atividades de Produção

Alteração

Visões > Atividades e Recursos > Atividades de Produção

-

Consistência em Atividades Mecanizadas

Alteração

Visões > Atividades e Recursos > Consistência em Atividades Mecanizadas

-

Consistência em Controle de Rendimentos

Alteração

Visões > Atividades e Recursos > Consistência em Controle de Rendimentos

-

Consulta Analítica de Atividades Manuais

Alteração

Visões > Atividades e Recursos > Consulta Analítica de Atividades Manuais

-

Plantio

Alteração

Visões > Plantio > Plantio

-

Período de Produção

Alteração

Visões > Plantio > Período de Plantio

-

Encerramento de Plantio

Alteração

Visões > Plantio > Encerramento de Plantio

-

Rendimento Energético no Plantio

Alteração

Visões > Gerenciais > Rendimento Energético no Plantio

-

Integração com ERP

Alteração

Visões > Integração com ERP

-

Ordem de Serviço de Campo Aberta

Alteração

Indicadores Gerenciais > OS de Campo Aberta

-

Controle de Dosagens

Alteração

Indicadores Gerenciais > Controle de Dosagens

-

Relatórios de Integração

Alteração

Administração > Relatórios de Integração

-

Ocorrências de Processamento

Alteração

Visões > Custos > Ocorrências de Processamento

-



(Opcional)
Diagrama de Entidade e Relacionamento


(Opcional)
Dicionário de Dados






























 

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.