コード例 #1
0
        public string Alterar(Reserva reserva)
        {
            if (reserva.DATAENTRADA > reserva.PREVISAOSAIDA)
            {
                erros.Add("A data de entrada não pode ser maior que a data de saída");
            }
            if (reserva.IDCLIENTE < 1)
            {
                erros.Add("O cliente não existe");
            }
            else
            {
                Cliente cliente = cbll.LerPorID(reserva.IDCLIENTE);

                if (cliente == null)
                {
                    erros.Add("Cliente não existe");
                }
            }
            if (reserva.IDQUARTO < 1)
            {
                erros.Add("O quarto não existe");
            }
            else
            {
                Quarto quarto = qbll.LerPorID(reserva.IDQUARTO);
                if (quarto == null)
                {
                    erros.Add("Quarto não existe");
                }
                else if (quarto.Ocupado)
                {
                    erros.Add("Quarto ocupado.");
                }
            }
            if (erros.Count != 0)
            {
                StringBuilder builder = new StringBuilder();

                for (int i = 0; i < erros.Count; i++)
                {
                    builder.AppendLine(erros[i]);
                }
                erros.Clear();
                return(builder.ToString());
            }
            return(rdal.Alterar(reserva));
        }
コード例 #2
0
 private void TratarIntegridadeReferencial(Checkin checkin)
 {
     if (checkin.quartoId <= 0)
     {
         erros.Add("QUarto deve ser informado.");
     }
     else
     {
         Quarto quartoASerOcupado = quartoBll.LerPorID(checkin.quartoId);
         if (quartoASerOcupado == null)
         {
             erros.Add("QUarto deve ser informado.");
         }
         else if (quartoASerOcupado.estaOcupado && !(checkin.idReserva > 0))
         {
             erros.Add("O quarto já esta em uso.");
         }
     }
     if (checkin.clienteId <= 0)
     {
         erros.Add("Cliente deve ser informado.");
     }
     else
     {
         Cliente clienteAOcuparOQuarto = clienteBll.LerPorID(checkin.clienteId);
         if (clienteAOcuparOQuarto == null)
         {
             erros.Add("Cliente deve ser informado.");
         }
     }
 }
コード例 #3
0
        public string inserir(Check_in check_In)
        {
            if (check_In.DATAENTRADA > check_In.PREVISAOSAIDA)
            {
                erros.Add("A data de entrada não pode ser maior que a de saída.");
            }

            if (check_In.IDCLIENTE < 1)
            {
                erros.Add("Cliente não existe");
            }
            else
            {
                Cliente cliente = cliBLL.LerPorID(check_In.IDCLIENTE);
                if (cliente == null)
                {
                    erros.Add("Cliente não existe");
                }
            }
            if (check_In.IDQUARTO <= 0)
            {
                erros.Add("Quarto não existe");
            }
            else
            {
                Quarto quarto = qBLL.LerPorID(check_In.IDQUARTO);
                if (quarto == null)
                {
                    erros.Add("Quarto não existe");
                }
                else if (quarto.Ocupado)
                {
                    erros.Add("Quarto já ocupado");
                }
            }
            if (check_In.IDFUNCIONARIO < 0)
            {
                erros.Add("Funcionãrio não existe");
            }
            else
            {
                Funcionario funcionario = fBLL.LerPorID(check_In.IDFUNCIONARIO);
                if (funcionario == null)
                {
                    erros.Add("Funcionário não existe");
                }
            }
            if (erros.Count != 0)
            {
                StringBuilder builder = new StringBuilder();

                for (int i = 0; i < erros.Count; i++)
                {
                    builder.AppendLine(erros[i]);
                }
                erros.Clear();
                return(builder.ToString());
            }
            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    checkindal.inserir(check_In);
                    qBLL.OcuparQuarto(check_In.IDQUARTO);
                    scope.Complete();
                    return("Check-in efetuado com sucesso.");
                }
                catch (Exception ex)
                {
                    return(ex.Message);
                }
            }
        }
コード例 #4
0
        public string Inserir(Saidas_Produtos saida)
        {
            if (saida.DATAVENDA > DateTime.Now.Date)
            {
                erros.Add("Data de venda inválida");
            }
            if (saida.IDCHECKIN < 1)
            {
                erros.Add("Checkin inválido.");
            }
            else
            {
                Cliente c = cbll.LerPorID(saida.IDCHECKIN);
                if (c == null)
                {
                    erros.Add("checkin inválido.");
                }
            }
            if (saida.IDFUNCIONARIO < 1)
            {
                erros.Add("Produto inválido.");
            }
            else
            {
                Produto p = pbll.LerPorID(saida.IDFUNCIONARIO);
                if (p == null)
                {
                    erros.Add("Produto inválido");
                }
            }

            if (erros.Count != 0)
            {
                StringBuilder builder = new StringBuilder();
                for (int i = 0; i < erros.Count; i++)
                {
                    builder.AppendLine(erros[i]);
                }
                erros.Clear();
                return(builder.ToString());
            }

            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    sdal.Inserir(saida);
                    saida.ID = sdal.LerIdGerado();
                    sdal.InserirItens(saida);
                    for (int i = 0; i < saida.Itens.Count; i++)
                    {
                        ItemSaida item = saida.Itens[i];
                        Produto   p    = pbll.LerPorID(item.IDPRODUTO);
                        p.Quantidade += item.QTD;
                        double NovoPreco = (p.Quantidade * p.Preco) + (item.PRECO * item.QTD);
                        p.Preco = NovoPreco / (p.Quantidade + item.QTD);
                        pbll.Alterar(p);
                    }
                    scope.Complete();
                    return("Saída realizada com sucesso.");
                }
                catch (Exception)
                {
                    return("Erro na saída de produto.");
                }
            }
        }