Hoje é 06 Set 2010, 15:09

Todos os Horários estão como UTC - 3 horas




Criar novo tópico Responder Tópico  [ 2 Mensagens ] 
Autor Mensagem
 Assunto do Tópico: one-to-many:Como atualizar classe do lado one?
MensagemEnviado: 07 Fev 2010, 23:13 
Offline
Iniciante

Data de registro: 21 Jan 2010, 08:14
Mensagens: 8
Olá, pessoal!
Estou com a seguinte necessidade:
Tenho duas classes de domínio: RequisicaoDespesa e RequisicaoDespesaItem, que representam, respectivamente uma requisição de despesas e os dotação orçamentária e seus itens.
A classe RequisicaoDespesa possui o seguinte código:
Código:
class RequisicaoDespesa {
   int numeroRequisicao;
   Date dataRequisicao;
   double custoEstimado;
   double custoFinal;
   String descricaoDetalhada;
   String justificativa;
   String observacoes;
   
   String toString(){
      return this.numeroRequisicao + " de " + this.dataRequisicao.format("dd/MM/yyyy");
   }
   static hasMany = [itens:RequisicaoDespesaItem];
}

A classe RequisicaoDespesaItem possui o seguinte código:
Código:
class RequisicaoDespesaItem {
   RequisicaoDespesa requisicaoDespesa;
   String descricao;
   double quantidade=0.00;
   String unidade="";
   Date prazoRealizacao;
   double custoEstimado=0.00;
   double custoFinal=0.00;
   
   String toString() {
      return this.descricao;
   }
}


Pode ser observado que as duas classes possuem o atributo custoEstimado.
A diferença é que o atributo da classe "pai" RequisicaoDespesa deverá conter o valor da somatória do 'custo estimado' de todos o "filhos" RequisicaoDespesaItem.
Preciso principalmente que esta somatória fique armazenada no banco de dados, para facilitar a emissão de alguns relatórios.

Eu tenho uma página separada para adicionar e remover cada RequisicaoDespesaItem.

Então, como faço para quando eu adicionar, alterar ou remover um item de uma requisição de despesa o valor de RequisicaoDespesa.custoEstimado corresponda à soma dos respectivos valores dos itens desta requisicao?

Valeu pessoal!


Voltar ao topo
 Perfil E-mail  
 
 Assunto do Tópico: Re: one-to-many:Como atualizar classe do lado one?
MensagemEnviado: 02 Jun 2010, 17:22 
Offline
Iniciante

Data de registro: 21 Jan 2010, 08:14
Mensagens: 8
Pessoal, logo depois que postei a dúvida consegui resolver o meu problema.

A minha RequisicaoDespesaItem ficou da seguinte forma:
Código:
   class RequisicaoDespesaItem {
      
      RequisicaoDespesa requisicaoDespesa;
      String descricao;
      double quantidade=0.00;
      String unidade="";
      Date prazoRealizacao;
      double custoEstimado=0.00;
      double custoFinal=0.00;
      
      [b]....[/b]

      /*
       * ATUALIZAÇÃO DOS TOTALIZADORES NA Requisicao
       */
      private double dOriginalCustoEstimado = 0.00;
      private double dOriginalCustoFinal = 0.00;
      def afterLoad = {
         dOriginalCustoEstimado = this.custoEstimado;
         dOriginalCustoFinal = this.custoFinal;
      }
      
      def afterUpdate = {
         requisicaoDespesa.custoEstimado = (requisicaoDespesa.custoEstimado - dOriginalCustoEstimado) + this.custoEstimado;
         requisicaoDespesa.custoFinal = (requisicaoDespesa.custoFinal - dOriginalCustoFinal) + this.custoFinal;
         requisicaoDespesa.save();
      }
      def afterInsert = {
         requisicaoDespesa.custoEstimado += this.custoEstimado;
         requisicaoDespesa.custoFinal += this.custoFinal;
         requisicaoDespesa.save();
      }
      def afterDelete = {
         requisicaoDespesa.custoEstimado -= this.custoEstimado;
         requisicaoDespesa.custoFinal -= this.custoFinal;
         requisicaoDespesa.save();
      }
   }


A CLASSE RequisicaoDespesa ficou assim:
Código:
class RequisicaoDespesa {
   
   int numeroRequisicao;
   Usuario requisitante;
   DotacaoOrcamentaria dotacaoOrcamentaria;
   Date dataRequisicao;
   double custoEstimado;
   double custoFinal;
   String descricaoResumida;
   String descricaoDetalhada;
   String justificativa;
   String observacoes;
   
   String toString(){
      return this.numeroRequisicao + " de " + this.dataRequisicao?.format("dd/MM/yyyy") + " : " + this.descricaoResumida?.toString();
   }
   static belongsTo = DotacaoOrcamentaria;
   static hasMany = [itens:RequisicaoDespesaItem];
   static mapping = {
          [b]...[/b]
   }

    static constraints = {
          [b]...[/b]
    }
   
}


é isso aí.


Voltar ao topo
 Perfil E-mail  
 
Mostrar mensagens anteriores:  Organizar por  
Criar novo tópico Responder Tópico  [ 2 Mensagens ] 

Todos os Horários estão como UTC - 3 horas


Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum

Procurar por:
Ir para:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzido por phpBB Brasil