Search in sources :

Example 16 with Sessao

use of br.com.caelum.agiletickets.models.Sessao in project agiletickets by caelum.

the class EspetaculosController method sessao.

@Get
@Path("/sessao/{id}")
public void sessao(Long id) {
    Sessao sessao = agenda.sessao(id);
    if (sessao == null) {
        result.notFound();
    }
    result.include("sessao", sessao);
}
Also used : Sessao(br.com.caelum.agiletickets.models.Sessao) Path(br.com.caelum.vraptor.Path) Get(br.com.caelum.vraptor.Get)

Example 17 with Sessao

use of br.com.caelum.agiletickets.models.Sessao in project agiletickets by caelum.

the class EspetaculosController method reserva.

@Post
@Path("/sessao/{sessaoId}/reserva")
public void reserva(Long sessaoId, final Integer quantidade) {
    Sessao sessao = agenda.sessao(sessaoId);
    if (sessao == null) {
        result.notFound();
        return;
    }
    if (quantidade < 1) {
        validator.add(new ValidationMessage("Você deve escolher um lugar ou mais", ""));
    }
    if (!sessao.podeReservar(quantidade)) {
        validator.add(new ValidationMessage("Não existem ingressos disponíveis", ""));
    }
    // em caso de erro, redireciona para a lista de sessao
    validator.onErrorRedirectTo(this).sessao(sessao.getId());
    BigDecimal precoTotal = CalculadoraDePrecos.calcula(sessao, quantidade);
    sessao.reserva(quantidade);
    result.include("message", "Sessão reservada com sucesso por " + CURRENCY.format(precoTotal));
    result.redirectTo(IndexController.class).index();
}
Also used : ValidationMessage(br.com.caelum.vraptor.validator.ValidationMessage) Sessao(br.com.caelum.agiletickets.models.Sessao) BigDecimal(java.math.BigDecimal) Path(br.com.caelum.vraptor.Path) Post(br.com.caelum.vraptor.Post)

Example 18 with Sessao

use of br.com.caelum.agiletickets.models.Sessao in project agiletickets by caelum.

the class CalculadoraDePrecosTest method deveAplicar10AMaisSeDurarMaisDeUmaHoraQuandoForBallet.

@Test
public void deveAplicar10AMaisSeDurarMaisDeUmaHoraQuandoForBallet() {
    Sessao sessao = SessaoTestDataBuilder.umaSessao().deUmEspetaculoDoTipo(TipoDeEspetaculo.BALLET).comTotalIngressos(50).comIngressoReservados(5).comOPreco(500.0).comDuracaoEmMinutos(100).build();
    BigDecimal precoTotal = CalculadoraDePrecos.calcula(sessao, 1);
    assertEquals(0, BigDecimal.valueOf(550.0).compareTo(precoTotal));
}
Also used : Sessao(br.com.caelum.agiletickets.models.Sessao) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Example 19 with Sessao

use of br.com.caelum.agiletickets.models.Sessao in project agiletickets by caelum.

the class CalculadoraDePrecosTest method deveAplicar10AMaisSeDurarMaisDeUmaHoraQuandoForOrquestra.

@Test
public void deveAplicar10AMaisSeDurarMaisDeUmaHoraQuandoForOrquestra() {
    Sessao sessao = SessaoTestDataBuilder.umaSessao().deUmEspetaculoDoTipo(TipoDeEspetaculo.ORQUESTRA).comTotalIngressos(70).comIngressoReservados(65).comOPreco(1000.0).comDuracaoEmMinutos(120).build();
    BigDecimal precoTotal = CalculadoraDePrecos.calcula(sessao, 1);
    assertEquals(0, BigDecimal.valueOf(1300.0).compareTo(precoTotal));
}
Also used : Sessao(br.com.caelum.agiletickets.models.Sessao) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Example 20 with Sessao

use of br.com.caelum.agiletickets.models.Sessao in project agiletickets by caelum.

the class CalculadoraDePrecosTest method deveAplicar20PorCentoAMaisNosUltimosIngressosQuandoForBallet.

@Test
public void deveAplicar20PorCentoAMaisNosUltimosIngressosQuandoForBallet() {
    Sessao sessao = SessaoTestDataBuilder.umaSessao().deUmEspetaculoDoTipo(TipoDeEspetaculo.BALLET).comTotalIngressos(50).comIngressoReservados(25).comOPreco(500.0).comDuracaoEmMinutos(50).build();
    BigDecimal precoTotal = CalculadoraDePrecos.calcula(sessao, 1);
    assertEquals(0, BigDecimal.valueOf(600.0).compareTo(precoTotal));
}
Also used : Sessao(br.com.caelum.agiletickets.models.Sessao) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Aggregations

Sessao (br.com.caelum.agiletickets.models.Sessao)20 BigDecimal (java.math.BigDecimal)15 Test (org.junit.Test)15 Espetaculo (br.com.caelum.agiletickets.models.Espetaculo)3 Path (br.com.caelum.vraptor.Path)3 TipoDeEspetaculo (br.com.caelum.agiletickets.models.TipoDeEspetaculo)2 Post (br.com.caelum.vraptor.Post)2 Estabelecimento (br.com.caelum.agiletickets.models.Estabelecimento)1 Get (br.com.caelum.vraptor.Get)1 EntityManagerCreator (br.com.caelum.vraptor.util.jpa.EntityManagerCreator)1 EntityManagerFactoryCreator (br.com.caelum.vraptor.util.jpa.EntityManagerFactoryCreator)1 ValidationMessage (br.com.caelum.vraptor.validator.ValidationMessage)1 EntityManager (javax.persistence.EntityManager)1 DateTime (org.joda.time.DateTime)1