To quebrando a cabeca desde ontem... quem souber/puder ajudar... :D
Um ItemPedidoCompra possui um atributo qtdePedida, que seria um numero de pecas a serem criadas. Essas pecas sao criadas em ordens de servico, que sao representadas no sistema pela classe Os. Essa classe possui um atributo qtdePecas, que seriam as pecas a serem criadas nessa OS. Para fechar um ItemPedidoCompra, temos que abrir uma ou mais OS's de forma que a soma de qtdePecas de todas as OS's seja igual a qtdePedida do ItemPedidoCompra. Caso contrario, esse ItemPedidoCompra esta pendente.
Esse é o ponto... eu preciso fazer uma query q busque todos os itens pendentes... vou mostrar o mapeamento:
<hibernate-mapping>
<class name="br.com.nomus.modelo.entidade.ItemPedidoCompra" table="itempedidocompra">
<id name="id" column="id">
<generator class="increment"/>
</id>
<property name="nome"/>
<property name="qtdePedida"/>
<property name="precoUnitario"/>
<property name="dataEntrega"/>
<property name="ordemCliente"/>
<property name="projetoCliente"/>
<property name="codMateriaPrima"/>
<property name="numSerieMP"/>
<many-to-one name="pedidoCompra" column="idPedidoCompra" lazy="false"
class="br.com.nomus.modelo.entidade.PedidoCompra"/>
<many-to-one name="produto" column="idProduto" lazy="false"
class="br.com.nomus.modelo.entidade.Produto"/>
<bag name="materiasPrima" lazy="false">
<key column="idItemPedidoCompra"/>
<one-to-many class="br.com.nomus.modelo.entidade.MateriaPrima"/>
</bag>
<bag name="os" lazy="false">
<key column="idItemPedidoCompra"/>
<one-to-many class="br.com.nomus.modelo.entidade.Os"/>
</bag>
<bag name="observacoes" table="observacao_itempedidocompra" lazy="false">
<key column="idItemPedidoCompra"/>
<many-to-many column="idObservacao" class="br.com.nomus.modelo.entidade.Observacao"/>
</bag>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="br.com.nomus.modelo.entidade.Os" table="os">
<id name="id" column="id">
<generator class="increment" />
</id>
<property name="nome"/>
<property name="qtdePecas"/>
<property name="qtdeFaturada"/>
<property name="qtdeSucateada"/>
<many-to-one name="itemPedidoCompra" column="idItemPedidoCompra"
lazy="false"
class="br.com.nomus.modelo.entidade.ItemPedidoCompra"/>
<bag name="faturamentos" lazy="false">
<key column="idOs"/>
<one-to-many class="br.com.nomus.modelo.entidade.Faturamento"/>
</bag>
<bag name="observacoes" table="observacao_itempedidocompra" lazy="false">
<key column="idItemPedidoCompra"/>
<many-to-many column="idObservacao" class="br.com.nomus.modelo.entidade.Observacao"/>
</bag>
</class>
</hibernate-mapping>
Abaixo a query que eu fiz, esta errada.... :oops:
String hql = "select itens from ItemPedidoCompra itens"
+ " join itens.os os"
+ " where itens.qtdePedida > (select sum(os.qtdePecas) from Os)";
alguem pode dar uma ajuda? :P
valeu pessoal! :wink: