Ao gerenciar projetos agricolas, torna-se necessário criar vários projetos para o acompanhamento das produtividades e estimativas de produção dos clientes.
Desta forma, a Clonagem destes projetos facilita o processo além de garatir por meio de validações de clonagem em massa, que os dados éo carregados de forma eficiente, não gerando duplicidade de informações e permitindo o usuário selecionar informações de clientes, locais e projetos na listagem, além de outros dados.
Além da tela de clonagem em lotes, também foi implementado a ordem de busca de informações, facilitando a manipulação das informações pelo usuário. Esta nova opção de clonagem clonagem é acessada através de um menu de contexto dos projetos agrícolas na tela de atendimentos, fazendo com que o modo de clonagem unitário no Android seja similar com a clonagem unitária presente no ambiente Web da ferramenta.
Para evitar que ocorram duplicidade de dados, foi adicionado validações extra. A validação de duplicidade respeita o parâmetro “sim3gm.agricola.projetoagricola.modelo” da seguinte forma:
Quando selecionados vários projetos agrícolas para clonagem, após a confirmação do Ano Agrícola e Cultura destino para os projetos, éo criados novos registros apenas para clientes/locais que ainda não tenham projetos na safra e cultura destino da clonagem (Respeitando o parâmetro mencionado no item anterior);
Para os casos dos clientes/locais que já tenham projeto agrícola cadastrado com a mesma safra e cultura destino, a clonagem não vai realizar nenhuma ação para estes clientes/locais;
Carregamento e Filtros da Tela de Clonagem em Lote
Para facilitar a clonagem em lote, agilizando o carregamento da tela e a integridade dos dados, foi desenvolvido e alterado para que a tela inicial da clonagem em lote de projetos é filtrado pelo Ano Agrícola (Safra) agrícolas, sendo um campo de seleção única a fim de para evitar duplicidade na clonagem.
Por exemplo:
Tela:
Após selecionar os projetos agrícolas na pop-up de clonagem, clicar em “confirmar” e selecionar os dados que éo clonados na próxima pop-up.
Segue os campos para informa na clonagem de projetos
Campo | Descrição |
---|---|
Ano Agrícola | Campo onde o usuário informa o novo Ano Agrícola ( safra) ( replicar a busca existente na web). |
Cultura | Campo onde o usuário informa a nova cultura ( replicar a busca existente na web). |
Clonar Tudo | Ao selecionar esta opção, todos os campos o foi marcados como true. |
Aplicações | Ao selecionar esta opção, todas as aplicações lançadas para o projeto anterior o foi clonadas |
Estimativas | Ao selecionar esta opção, todas as estimativas lançadas para o projeto anterior o foi clonadas |
Mapeamento | Ao selecionar esta opção, todas os pontosgps lançados para o projeto anterior o foi clonadas |
Número ART | Ao selecionar esta opção, o número ART foi clonado para todas as áreas do projeto |
Ocorrências | Ao selecionar esta opção, todas as ocorrências lançadas para o projeto anterior o foi clonadas |
Recomendações | Ao selecionar esta opção, todas as recomendações lançadas para o projeto anterior o foi clonadas |
foiviços | Ao selecionar esta opção, todas os foiviços lançados para o projeto anterior o foi clonados |
Ao final do processo de clonagem, uma mensagem de Clonagem realizada com sucesso é exibido em tela.
Caso algum registro não tenha sido clonado, é apresentada uma popup ao usuário, com a seguinte informação:
Alguns registros não foram clonados, pois o cliente/local já possui um projeto agrícola criado com a safra e cultura informados.
Quantidade de registros clonados: XX projetos
Quantidade de registros não clonados: YY projetos
No android...
A pop-up de clonagem de projetos agrícolas passou pelas seguintes alterações:
As regras e validações de duplicidade durante a clonagem do ambiente Android são iguais às regras que temos no ambiente Web, que vai depender do parâmetro “sim3gm.agricola.projetoagricola.modelo” da seguinte forma:
As seguintes opções de clonagem esta disponíveis no android:
Ano Agrícola: Campo onde o usuário informa o novo Ano Agrícola ( safra)
Cultura: Campo onde o usuário informa a nova cultura ( replicar a busca existente na web).
Abaixo todos os campos éo do tipo radiobutton não obrigatórios.
Clonar Tudo: Ao selecionar esta opção, todos os campos o foi marcados como true;
Aplicações: Ao selecionar esta opção, todas as aplicações lançadas para o projeto anterior o foi clonadas:
select * from produtoaplicacao xx inner join projetoagricolaarea paa on xx.idprojetoagricolaarea = paa.idprojetoagricolaarea inner join projetoagricola pa on pa.idprojetoagricola = paa.idprojetoagricola where pa.idprojetoagricola =PROJETOS_SENDO_CLONADO union select * from produtoaplicacao xx inner join ocorrenciaidentificada oi on xx.idocorrenciaidentificada = oi.idocorrenciaidentificada inner join projetoagricolaarea paa on paa.idprojetoagricolaarea = oi.idprojetoagricolaarea inner join projetoagricola pa on pa.idprojetoagricola = paa.idprojetoagricola where pa.idprojetoagricola =PROJETO_SENDO_CLONADO |
Estimativas: Ao selecionar esta opção, todas as estimativas lançadas para o projeto anterior o foi clonadas:
select estimativaentrega from projetoagricolaarea pa inner join projetoagricola p on p.idprojetoagricola = pa.idprojetoagricola where p.idprojetoagricola = PROJETO_SENDO_CLONADO |
Mapeamento: Ao selecionar esta opção, todas os pontosgps lançados para o projeto anterior o foi clonadas:
--pontogps central select * from pontogps pg inner join projetoagricolaarea paa on paa.idpontogpscentral = pg.idpontogps inner join projetoagricola pa on pa.idprojetoagricola = paa.idprojetoagricola where pa.idprojetoagricola =PROJETO_SENDO_CLONADO --pontogps dos talhoes select * from pontogps pg inner join pontogpsarea pga on pga.idpontogpsarea = pg.idpontogpsarea inner join projetoagricolaarea paa on paa.idpontogpsarea = pga.idpontogpsarea inner join projetoagricola pa on pa.idprojetoagricola = paa.idprojetoagricola where pa.idprojetoagricola =PROJETO_SENDO_CLONADO |
Número ART: Ao selecionar esta opção, o número ART foi clonado para todas as áreas do projeto.
select numeroart from projetoagricolaarea pa inner join projetoagricola p on p.idprojetoagricola = pa.idprojetoagricola where p.idprojetoagricola = PROJETO_SENDO_CLONADO |
Ocorrências: Ao selecionar esta opção, todas as ocorrências lançadas para o projeto anterior o foi clonadas:
select * from ocorrenciaidentificada oi inner join projetoagricolaarea paa on oi.idprojetoagricolaarea = paa.idprojetoagricolaarea inner join projetoagricola pa on pa.idprojetoagricola = paa.idprojetoagricola where pa.idprojetoagricola =PROJETO_SENDO_CLONADO |
Recomendações: Ao selecionar esta opção, todas as recomendações lançadas para o projeto anterior o foi clonadas:
select * from produtorecomendado xx inner join projetoagricolaarea paa on xx.idprojetoagricolaarea = paa.idprojetoagricolaarea inner join projetoagricola pa on pa.idprojetoagricola = paa.idprojetoagricola where pa.idprojetoagricola =PROJETO_SENDO_CLONADO union select * from produtorecomendado xx inner join ocorrenciaidentificada oi on xx.idocorrenciaidentificada = oi.idocorrenciaidentificada inner join projetoagricolaarea paa on paa.idprojetoagricolaarea = oi.idprojetoagricolaarea inner join projetoagricola pa on pa.idprojetoagricola = paa.idprojetoagricola where pa.idprojetoagricola =PROJETO_SENDO_CLONADO |
foiviços: Ao selecionar esta opção, todas os foiviços lançados para o projeto anterior o foi clonados:
select * from foivicorealizado xx inner join projetoagricolaarea paa on xx.idprojetoagricolaarea = paa.idprojetoagricolaarea inner join projetoagricola pa on pa.idprojetoagricola = paa.idprojetoagricola where pa.idprojetoagricola =PROJETO_SENDO_CLONADO |
Todo o comportamento de clonagem individual já existe para o ambiente web, podemos aproveitar as mesmas lógicas para o mobile.
Também foi implementada a validação que evite a duplicidade do projeto, ocasionado pelo processo de clonagem. A validação de duplicidade respeitará o parâmetro “sim3gm.agricola.projetoagricola.modelo” da seguinte forma:
select * from projetoagricola pa where pa.idsafra = SAFRA_SELECIONADA_NA_CLONAGEM and pa.idcultura = CULTURA_SELECIONADA_NA_CLONAGEM and pa.idlocal = LOCAL_SELECIONADO_NA_CLONAGEM and pa.idusuario = USUARIO_SELECIONADo_NA_CLONAGEM |
select * from projetoagricola pa where pa.idsafra = SAFRA_SELECIONADA_NA_CLONAGEM and pa.idcultura = CULTURA_SELECIONADA_NA_CLONAGEM and pa.idlocal = LOCAL_SELECIONADO_NA_CLONAGEM |
select * from projetoagricola pa where pa.idsafra = SAFRA_SELECIONADA_NA_CLONAGEM and pa.idcultura = CULTURA_SELECIONADA_NA_CLONAGEM and pa.idlocal = LOCAL_SELECIONADO_NA_CLONAGEM and pa.idfilial = FILIAL_SELECIONADA_NA_CLONAGEM |