Dúvida: Relacionamento - Modelagem - GORM
03/09/2012 19:32
0
Estou em dúvida como modelar um relacionamento em grails.. quem puder me dar uma ajuda agradeço antecipadamente.

Tenho as classes recibo, cartao e cheque..

Está modelada da seguinte forma de 1..N

class Recibo{
static hasMany = [cheques:Cheque, cartoes:Cartao]
..
}

Tudo funcionando perfeitamente.. mas preciso fazer uma consulta de faturamento futuro para os próximos meses.
O valor no cartão pode ser parcelado vários meses para frente e da mesma forma pode ter varios cheques com vencimento futuro..

Então esse faturamento para o mês de dezembro por exemplo deveria encontrar todos os cheques e cartões para o mês de dezembro.

Pensei em criar uma classe Fatura na forma many-to-many entre Cartão e Fatura ( nunca fiz esse tipo de relacionamento, então não sei se eh o mais adequado ). No caso do cheque fica mais fácil porque já um cheque tem um vencimento apenas.. enquanto cartão pode ser parcelado em muitas.

Não sei se groovy tem uma forma de consulta sem que eu precise criar essa nova modelagem..

Qualquer direcionamento eu agradeço, obg.
Tags: Relacionamento, Modelagem, many-to-many


1
oi Alysson, da uma olhada na criação dinâmica de cruterias. E exatamente o que você precisa.
No seu caso, acho que esta classe auxiliar fatura relacionando muitos cartões ou cheques com a compra resolve seu problema.


0
E ai Alysson, blz?

Deixa ver se eu entendi: Na classe Recibo você adiciona diversos cheques pré-datados ou faturas de cartões para os próximos, até ai tudo bem. Do jeito que você fez, aa consulta do Recibo (show.gsp) deveria aparecer no final a lista de cheques e cartões vinculados a ele. Isso não aparece?

Se não, primeiramente no controller coloque o seguinte:
class ReciboController {
static scaffold = true
}


Dessa forma as views serão geradas automaticamente e provavelmente irá aparecer a lista de cheques e cartões. (Mas lembrando que irá aparecer somente na página Show do Recibo)

Para formatar como os dados irão aparecer nessa tela, você pode fazer o seguinte no Domain Class Cheque e no Cartão:
//FORMATA O CAMPO estado NO DOMAIN Endereco
String toString() {
return "${NºCHEQUE} - ${DT_CHEQUE}"
}


0
Isso mesmo Danilo, Recibo funciona perfeitamente.

Mas eu gostaria de fazer uma consulta avançada e mostrar em uma nova gsp.
Esse consulta seria assim: "me mostre qual meu faturamento futuro previsto mês a mês?

Por exemplo quero saber meu faturamento previsto para o mês de dezembro de 2012 até o momento?

Então eu teria que pesquisar em todos os recibos.. e pior.. teria que ver as parcelas dos cartões .. porque só vai contar a parcela.
04/09/2012 12:13


1
Eu ainda não cheguei nessa parte no meu teste, mas acredito que seja pelo HQL (Hibernate Query Language). Com ele você pode criar a sua query no banco de dados e mostrar esse relatório. (http://grails.org/doc/2.1.0/guide/single.html#hql)

Agora, para criar uma "página solta" para exibir o relatório, você precisa usar o URLMappings.
(http://grails.org/doc/2.1.0/guide/single.html#urlmappings)

Acho que o caminho é esse.


0
Eu estava pensando em ao criar um cartão parcelado em 6 vezes por exemplo, criar outros 6 objetos do tipo Fatura, cada um com sua data e valor, mas isso não me agradou porque ia gerar muitos objetos no banco de dados, e a pesquisa se tornaria mais custosa..

Eu estava procurando um padrão de projeto menos custoso.. vou procurar aqui..

Meu problema maior é na pesquisa Danilo, nem tanto em fazer a página.

[]s
04/09/2012 12:33


0
A parte de procurar os cheques com datas futuras acabei de fazer..

Mas com relação ao cartão..

Alguém pode me ajudar??

Quero fazer um relacionamento [1..N] entre Cartão e Fatura.

Ao criar um Cartão parcelado em 6 vezes eu gostaria de criar 6 Faturas no controlador ou domain class.. automaticamente..

Como ficaria o código no controlador ?? Depois do Cartao.save() == true já é gerado o id correto?

[]s
04/09/2012 16:28


1
Por que você não usa a Fatura tanto pra cartão como pra cheque? Ex:


class Recibo {
static hasMany = [faturas:Fatura]
...
}

class Fatura {
Recibo recibo
Date data
Cheque cheque
Cartao cartao
...
}


Sendo que na validação da Fatura, você obriga ter ou cartão ou cheque.

Na sua busca avançada você busca diretamente na Fatura.
04/09/2012 16:36


0
Consegui aqui obg a todos.
11/09/2012 00:42



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto