public RespostaPacote(Pacote pacote, string NomeEmpresa, bool manterRotas, EstacaoService estacaoService, EnderecoService enderecoService)
        {
            this.PacoteId     = pacote.PacoteId;
            this.Entregue     = pacote.Entregue;
            this.Destinatario = pacote.Destinatario;
            this.DataPostagem = pacote.DataPostagem;
            this.Destino      = enderecoService.ObterPorId(pacote.Destino);
            this.Remetente    = NomeEmpresa;

            if (manterRotas)
            {
                this.Rotas    = RespostaRota.ConverterRotas(pacote.Rotas, estacaoService);
                this.Conteudo = pacote.Conteudo;
            }
            else
            {
                this.Rotas    = new List <RespostaRota>();
                this.Conteudo = new List <Item>();
            }
        }
Пример #2
0
 public IActionResult Cadastrar(Pacote pacote)
 {
     // Verifica se o usuario tem permissão para entrar na página
     if (HttpContext.Session.GetInt32("tipoUsuario") == 1 || HttpContext.Session.GetInt32("tipoUsuario") == 0)
     {
         // Cria uma instancia do db
         PacoteDatabase db = new PacoteDatabase();
         // Pega o id do usuario
         pacote.IdCriador = (int)HttpContext.Session.GetInt32("idUsuario");
         // Insere no db
         db.Inserir(pacote);
         // Da o feedback para o usuario
         ViewBag.feedbackcad = "Pacote cadastrado com sucesso";
         return(View());
     }
     else
     {
         return(View("Erro"));
     }
 }
        //------------------- ADICONAR UM ITEM AO CARRINHO ------------------------

        public ActionResult AdicionarCarrinho(int id, double pre)
        {
            Reserva carrinho = Session["Carrinho"] != null ? (Reserva)Session["Carrinho"] : new Reserva();
            var     pacote   = acP.GetConsPac(id);

            codigo = id.ToString();

            Pacote pac = new Pacote();

            if (pacote != null)
            {
                Itens itemPedido = new Itens();
                itemPedido.cd_itens    = Guid.NewGuid();
                itemPedido.cd_pacote   = id.ToString();
                itemPedido.nome_pacote = pacote[0].nome_pacote;
                itemPedido.qt          = 1;
                itemPedido.vl_unit     = pre;

                List <Itens> x = carrinho.ItensPedido.FindAll(l => l.cd_pacote == itemPedido.cd_pacote);

                if (x.Count != 0)
                {
                    carrinho.ItensPedido.FirstOrDefault(p => p.nome_pacote == pacote[0].nome_pacote).qt += 1;
                    itemPedido.vl_parcial = itemPedido.qt * itemPedido.vl_unit;
                    carrinho.vl_total    += itemPedido.vl_parcial;
                    carrinho.ItensPedido.FirstOrDefault(p => p.nome_pacote == pacote[0].nome_pacote).vl_parcial = carrinho.ItensPedido.FirstOrDefault(p => p.nome_pacote == pacote[0].nome_pacote).qt *itemPedido.vl_unit;
                }

                else
                {
                    itemPedido.vl_parcial = itemPedido.qt * itemPedido.vl_unit;
                    carrinho.vl_total    += itemPedido.vl_parcial;
                    carrinho.ItensPedido.Add(itemPedido);
                }


                Session["Carrinho"] = carrinho;
            }

            return(RedirectToAction("Carrinho"));
        }
        public ActionResult Create(PacoteViewModel pacote)
        {
            if (ModelState.IsValid)
            {
                Pacote p = new Pacote
                {
                    TagRFID        = pacote.TagRfid,
                    DataPostagem   = DateTime.UtcNow,
                    Destinatario   = pacote.Destinatario,
                    DestinatarioId = Guid.Empty,
                    Codigo         = "",
                    Entregue       = false,
                    Rotas          = new List <Rota>(),
                    Conteudo       = new List <Item>(),
                    Remetente      = new Guid("ef849f5864534e3cadeba07a3cd9de94"),
                };

                if (pacote.Destino.Complemento == null)
                {
                    pacote.Destino.Complemento = "";
                }

                var addr = pacote.Destino.ToEndereco();

                var latlng = GeocodingService.obterCoordenadas(addr);
                addr.Latitude  = latlng.Latitude;
                addr.Longitude = latlng.Longitude;

                var addrId = _enderecoService.SalvarEndereco(addr);

                p.Destino = addrId;

                _pacoteService.SalvarPacote(p);

                return(RedirectToAction("Index"));
            }
            else
            {
                return(View(pacote));
            }
        }
        public Pacote ObterPeloId(int id)
        {
            Pacote     pacote  = null;
            SqlCommand command = new Conexao().ObterConexao();

            command.CommandText = "SELECT nome, valor,percentual_max_desconto FROM pacotes WHERE id = @ID";
            command.Parameters.AddWithValue("@ID", id);
            DataTable table = new DataTable();

            table.Load(command.ExecuteReader());

            if (table.Rows.Count == 1)
            {
                pacote       = new Pacote();
                pacote.Id    = id;
                pacote.Nome  = table.Rows[0][0].ToString();
                pacote.Valor = Convert.ToDouble(table.Rows[0][1].ToString());
                pacote.PercentualMaximoDesconto = Convert.ToByte(table.Rows[0][2].ToString());
            }
            return(pacote);
        }
Пример #6
0
        public async Task <IActionResult> Create(int?PlanoId, [Bind("Id,Descricao,Minutos,Tipo")] Pacote pacote)
        {
            if (ModelState.IsValid)
            {
                var plano = await _context.Plano.FirstOrDefaultAsync(p => p.Id == PlanoId);

                if (plano == null)
                {
                    TempData["codeError"] = 404;
                    TempData["Mensagem"]  = "Um pacote só pode ser cadastrado em um plano";
                    return(RedirectToAction("Index", "Planos"));
                }

                pacote.Plano = plano;
                _context.Add(pacote);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(pacote));
        }
        public void Salvar(Pacote pacote)
        {
            try
            {
                sqlcommand.CommandText = "insert into Pacote(pacote_nome) values (@nome)";
                sqlcommand.Parameters.AddWithValue("@nome", pacote.pacote_nome);

                sqlcommand.Connection = con.conectar();
                sqlcommand.ExecuteNonQuery();
                Statusmessagem = "Pacote Cadastro com Sucesso!";
            }
            catch (SqlException ex)
            {
                Statusmessagem = ex.Message;
            }
            finally
            {
                sqlcommand.Parameters.Clear();
                con.desconectar();
            }
        }
Пример #8
0
        public IActionResult Aprovar(ulong id)
        {
            Pacote pacote = pacoteRepository.ObterPor(id);

            pacote.Status = (uint)StatusPacote.APROVADO;

            if (pacoteRepository.Atualizar(pacote))
            {
                return(RedirectToAction("Dashboard", "Administrador"));
            }
            else
            {
                return(View("Erro", new RespostaViewModel()
                {
                    Mensagem = "Houve um erro ao aprovar seu pedido",
                    NomeView = "Dashboard",
                    UsuarioEmail = ObterUsuarioSession(),
                    UsuarioNome = ObterUsuarioNomeSession()
                }));
            }
        }
Пример #9
0
 public IActionResult Alterar(int IdPacote)
 {
     // Verifica se o usuario tem permissão para entrar na página
     if (HttpContext.Session.GetInt32("tipoUsuario") == 1 || HttpContext.Session.GetInt32("tipoUsuario") == 0)
     {
         // Verifica se o Id existe
         if (IdPacote != 0)
         {
             // Cria uma instancia do db
             PacoteDatabase db = new PacoteDatabase();
             // Pega o pacote no db
             Pacote pacote = db.Query(IdPacote);
             // passa a ViewData com o pacote
             ViewData["PacoteAlterado"] = pacote;
         }
         return(View());
     }
     else
     {
         return(View("Erro"));
     }
 }
        public List <Pacote> ObterTodosParaCard()
        {
            List <Pacote> pacotes = new List <Pacote>();
            SqlCommand    command = new Conexao().ObterConexao();

            command.CommandText = "SELECT id, nome, valor, percentual_max_desconto FROM pacotes";
            DataTable table = new DataTable();

            table.Load(command.ExecuteReader());
            foreach (DataRow line in table.Rows)
            {
                Pacote pacote = new Pacote()
                {
                    Id    = Convert.ToInt32(line[0].ToString()),
                    Nome  = line[1].ToString(),
                    Valor = Convert.ToDouble(line[2].ToString()),
                    PercentualMaximoDesconto = Convert.ToByte(line[3].ToString())
                };
                pacotes.Add(pacote);
            }
            return(pacotes);
        }
Пример #11
0
        public IActionResult AtualizarPorId(int id, Pacote pacoteAtualizado)
        {
            Pacote pacote = _pacoteRepository.BuscarPorId(id);

            if (pacote != null)
            {
                try
                {
                    _pacoteRepository.AtualizarPorId(id, pacoteAtualizado);

                    return(StatusCode(200));
                }
                catch (Exception erro)
                {
                    return(BadRequest(erro));
                }
            }
            else
            {
                return(NotFound("Id Especificado não encontrada, ou não existe no Banco de Dados"));
            }
        }
        public IHttpActionResult Orcamento(ReservaModel model)
        {
            Produto produto = produtoRepo.BuscarProduto(model.Produto.Id);
            Pacote  pacote  = pacoteRepo.BuscarPacote(model.Pacote.Id);
            Cliente cliente = clienteRepo.BuscarId(model.Cliente.Id);

            var opcional = new List <Opcional>();

            model.Opcional.ForEach(x => opcional.Add(opcionalRepo.BuscarOpcional(x.Id)));

            var reserva = new Reserva(cliente, produto, pacote, opcional);

            bool possivelCriar = repositorio.VerSeEhPossivelCriar(reserva);

            if (possivelCriar)
            {
                repositorio.CriarOrcamento(reserva);
                return(Ok(new { dados = reserva }));
            }

            return(BadRequest("Ops.. temos um problema"));
        }
Пример #13
0
        public List <Pacote> BuscaListaPacote(Pacote pac)
        {
            List <Pacote> PacList = new List <Pacote>();

            MySqlCommand cmd = new MySqlCommand(" select * from Pacote where cd_cidDestino = @destino and cd_cidOrigem = @Origem;", con.MyConectarBD());

            cmd.Parameters.Add("@Origem", MySqlDbType.VarChar).Value = pac.cd_cidOrigem;

            cmd.Parameters.Add("@Destino", MySqlDbType.VarChar).Value = pac.cd_cidDestino;

            MySqlDataAdapter sd = new MySqlDataAdapter(cmd);
            DataTable        dt = new DataTable();

            sd.Fill(dt);
            con.MyDesconectarBD();

            foreach (DataRow dr in dt.Rows)
            {
                PacList.Add(

                    new Pacote
                {
                    cd_pacote        = Convert.ToString(dr["cd_pacote"]),
                    nome_pacote      = Convert.ToString(dr["nome_pacote"]),
                    cd_cidDestino    = Convert.ToString(dr["cd_cidDestino"]),
                    cd_cidOrigem     = Convert.ToString(dr["cd_cidOrigem"]),
                    cd_hotel         = Convert.ToString(dr["cd_hotel"]),
                    cd_viagem        = Convert.ToString(dr["cd_viagem"]),
                    dt_chekinHotel   = Convert.ToString(dr["dtChekin_hotel"]),
                    dt_chekoutHotel  = Convert.ToString(dr["dtChekout_hotel"]),
                    descricao_pacote = Convert.ToString(dr["descricao_pacote"]),
                    tipo_transporte  = Convert.ToString(dr["cd_tipotransporte"]),
                    vl_pacote        = dr["vl_pacote"].ToString().Insert(4, ","),
                    img_pacote       = Convert.ToString(dr["img_pacote"])
                });
            }
            return(PacList);
        }
Пример #14
0
        public List <Pacote> ObterTodos()
        {
            var           linhas  = File.ReadAllLines(PATH);
            List <Pacote> pacotes = new List <Pacote>();

            foreach (var linha in linhas)
            {
                Pacote pacote = new Pacote();
                pacote.Id             = ulong.Parse(ExtrairValorDoCampo("id", linha));
                pacote.Status         = uint.Parse(ExtrairValorDoCampo("status_pacote", linha));
                pacote.Cliente.Email  = ExtrairValorDoCampo("cliente_email", linha);
                pacote.Cliente.Senha  = ExtrairValorDoCampo("cliente_senha", linha);
                pacote.Cliente.Cpf    = ExtrairValorDoCampo("cliente_cpf", linha);
                pacote.Contrato.Nome  = ExtrairValorDoCampo("contrato_nome", linha);
                pacote.Contrato.Preco = double.Parse(ExtrairValorDoCampo("contrato_preco", linha));
                pacote.DataContrato   = DateTime.Parse(ExtrairValorDoCampo("data_contrato", linha));


                pacotes.Add(pacote);
            }

            return(pacotes);
        }
        public void Alterar(Pacote pacote)
        {
            try
            {
                sqlcommand.CommandText = "UPDATE Pacote SET pacote_nome = '" + pacote.pacote_nome +
                                         "' WHERE pacote_id = '" + pacote.pacote_id + "'";
                sqlcommand.Parameters.AddWithValue("@nome", pacote.pacote_nome);
                sqlcommand.CommandType = CommandType.Text;
                sqlcommand.Connection  = con.conectar();
                sqlcommand.ExecuteNonQuery();

                Statusmessagem = "Pacote alterado com sucesso!";
            }
            catch (SqlException ex)
            {
                Statusmessagem = ex.Message;
            }
            finally
            {
                sqlcommand.Parameters.Clear();
                con.desconectar();
            }
        }
        public ActionResult Store(PacotePontoTuristicoString pacotePontoTuristicoString, PacoteString pacoteString)
        {
            Pacote pacoteModel = new Pacote();

            pacoteModel.Nome  = pacotePontoTuristicoString.Nome.ToString();
            pacoteModel.Valor = Convert.ToDouble(pacoteString.Valor.ToString());

            int codigoPacote = new PacoteRepository().Cadastrar(pacoteModel);

            TuristaPacote turistaPacoteModel = new TuristaPacote();

            turistaPacoteModel.IdPacote     = codigoPacote;
            turistaPacoteModel.IdTurista    = 1;
            turistaPacoteModel.StatusPedido = "Aguardando Aprovação";

            int idTuristaPacote = new TuristaPacoteRepository().Cadastro(turistaPacoteModel);

            PacotePontosTuristicosRepository pacotePontosTuristicosRepository = new PacotePontosTuristicosRepository();

            foreach (string idPontoTuristico in pacotePontoTuristicoString.IdsPontosTuristicos)
            {
                PacotePontoTuristico pacotePontoTuristico = new PacotePontoTuristico();
                pacotePontoTuristico.IdPacote         = codigoPacote;
                pacotePontoTuristico.IdPontoTuristico = Convert.ToInt32(idPontoTuristico);
                pacotePontoTuristico.Id = pacotePontosTuristicosRepository.Cadastro(pacotePontoTuristico);
            }

            Viagem viagemModel = new Viagem();

            viagemModel.DataHorarioSaida = Convert.ToDateTime(pacotePontoTuristicoString.DataHorarioSaida);
            viagemModel.DataHorarioVolta = Convert.ToDateTime(pacotePontoTuristicoString.DataHorarioVolta);
            viagemModel.IdGuia           = Convert.ToInt32(pacotePontoTuristicoString.IdGuia.ToString());
            viagemModel.IdPacote         = codigoPacote;
            viagemModel.Id = new ViagensRepository().Cadastrar(viagemModel);

            return(Content(JsonConvert.SerializeObject(new { id = viagemModel.Id })));
        }
Пример #17
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Descricao,Minutos,Tipo")] Pacote pacote)
        {
            if (id != pacote.Id)
            {
                return(NotFound());
            }


            var planoPacote = await _context.Pacote.AsNoTracking()
                              .Include(pac => pac.Plano)
                              .FirstOrDefaultAsync(pac => pac.Id == id);

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(pacote);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PacoteExists(pacote.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }


                return(RedirectToAction("Details", "Planos", new { @id = planoPacote.Plano.Id }));
                // return RedirectToAction(nameof(Index));
            }
            return(View(pacote));
        }
Пример #18
0
        public void AtualizarPorid(int id, Pacote PacoteAtualizado)
        {
            Pacote PacoteBuscado = ctx.Pacote.Find(id);

            if (PacoteAtualizado.NomePacote != null)
            {
                PacoteBuscado.NomePacote = PacoteAtualizado.NomePacote;
            }
            if (PacoteAtualizado.Descricao != null)
            {
                PacoteBuscado.Descricao = PacoteAtualizado.Descricao;
            }
            if (PacoteAtualizado.Dataida != null)
            {
                PacoteBuscado.Dataida = PacoteAtualizado.Dataida;
            }
            if (PacoteAtualizado.Datavolta != null)
            {
                PacoteBuscado.Datavolta = PacoteAtualizado.Datavolta;
            }
            if (PacoteAtualizado.Valor != 0)
            {
                PacoteBuscado.Valor = PacoteAtualizado.Valor;
            }
            if (PacoteAtualizado.Cidade != null)
            {
                PacoteBuscado.Cidade = PacoteAtualizado.Cidade;
            }
            if (PacoteAtualizado.Ativo == true || PacoteAtualizado.Ativo == false)
            {
                PacoteBuscado.Ativo = PacoteAtualizado.Ativo;
            }

            ctx.Pacote.Update(PacoteBuscado);

            ctx.SaveChanges();
        }
Пример #19
0
        public Pacote Executar(string barcodeCaixa)
        {
            var pacote = this.pacoteRepositorio.ObterPorIdentificacaoCaixa(barcodeCaixa);

            if (pacote == null)
            {
                var etiqueta = EtiquetaViewModel.Carregar(barcodeCaixa);
                var coleta   = this.coletaRepositorio.ObterPorId(etiqueta.ColetaId);

                if (coleta == null)
                {
                    throw new RegraDeNegocioException("Código de Coleta não encontrado!");
                }

                pacote = new Pacote
                {
                    Agencia       = 1231,
                    Batido        = "N",
                    Bdu           = "0000000",
                    DataMovimento = DateTime.Now,
                    FromHost      = "N",
                    HoraInicio    = DateTime.Now,
                    Estacao       = "1231",
                    Status        = Pacote.Aberto,
                    Identificacao = barcodeCaixa,
                    Coleta        = coleta
                };
            }

            if (pacote.DataFimPreparo.HasValue == false)
            {
                pacote.UsuarioPreparo = (Usuario)this.sessaoDoUsuario.UsuarioAtual;
                pacote.DataFimPreparo = DateTime.Now;
            }

            return(pacote);
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!Page.IsPostBack)
     {
         if (Session["LOGADO"] == null)
         {
             Response.Redirect("Default.aspx");
         }
         ;
         Pacote pc = new Pacote();
         pc.Carregar(int.Parse(Request.QueryString["CD_PACOTE"].ToString()));
         lblTitulo.Text = pc.Titulo.ToString();
         if (pc.CaminhoImagem.ToString().Trim() != "")
         {
             btnExcluiImagem.Visible = true;
         }
         else
         {
             btnExcluiImagem.Visible = false;
         };
         lblcaminhodaimagem.Text = pc.CaminhoImagem.ToString();
         ImgPacote.ImageUrl      = "~\\PACOTE\\" + pc.Codigo + "\\" + pc.CaminhoImagem.ToString();
     }
 }
Пример #21
0
        public void inserirPacote(Pacote pacote)
        {
            MySqlCommand cmd = new MySqlCommand("insert into Pacote(cd_pacote,cd_categoria, cd_viagem, cd_hotel, cd_cidOrigem, cd_cidDestino, nome_pacote, cd_tipotransporte , descricao_pacote, dtChekin_hotel, dtChekout_hotel, img_pacote, vl_pacote)" +
                                                "values(@pac, @cate, @Viag, @hot, @cidO, @cidD, @nm_pacote , @tpTrans, @desc, @dtChekin, @dtChekout, @img, @valP )", con.MyConectarBD());

            cmd.Parameters.Add("@pac", MySqlDbType.VarChar).Value       = pacote.cd_pacote;
            cmd.Parameters.Add("@cate", MySqlDbType.VarChar).Value      = pacote.cd_categoria;
            cmd.Parameters.Add("@Viag", MySqlDbType.VarChar).Value      = pacote.cd_viagem;
            cmd.Parameters.Add("@hot", MySqlDbType.VarChar).Value       = pacote.cd_hotel;
            cmd.Parameters.Add("@cidO", MySqlDbType.VarChar).Value      = pacote.cd_cidOrigem;
            cmd.Parameters.Add("@cidD", MySqlDbType.VarChar).Value      = pacote.cd_cidDestino;
            cmd.Parameters.Add("@nm_pacote", MySqlDbType.VarChar).Value = pacote.nome_pacote;
            cmd.Parameters.Add("@tpTrans", MySqlDbType.VarChar).Value   = pacote.tipo_transporte;
            cmd.Parameters.Add("@desc", MySqlDbType.VarChar).Value      = pacote.descricao_pacote;
            cmd.Parameters.Add("@dtChekin", MySqlDbType.VarChar).Value  = pacote.dt_chekinHotel;
            cmd.Parameters.Add("@dtChekout", MySqlDbType.VarChar).Value = pacote.dt_chekoutHotel;
            cmd.Parameters.Add("@img", MySqlDbType.VarChar).Value       = pacote.img_pacote;
            cmd.Parameters.Add("@valP", MySqlDbType.VarChar).Value      = pacote.vl_pacote;


            cmd.ExecuteNonQuery();

            con.MyDesconectarBD();
        }
Пример #22
0
    protected void btnGravar_Click(object sender, EventArgs e)
    {
        bool validacao = true;

        if (ValidParam.ValidarTamanho(txtResmo.Text.Trim(), 500) == false)
        {
            lblResultado.Text = "Tamanho máximo permitido para o campo resumo é de 500 caracteres.";
            validacao         = false;
        }
        if (ValidParam.ValidarTamanho(txtTitulo.Text.Trim(), 150) == false)
        {
            lblResultado.Text = "Tamanho máximo permitido para o campo titulo é de 50 caracteres.";
            validacao         = false;
        }

        if (validacao == true)
        {
            Pacote pc = new Pacote();
            pc.Resumo = ValidParam.ValidarParametro(txtResmo.Text.Trim());
            pc.Titulo = ValidParam.ValidarParametro(txtTitulo.Text.Trim());

            if (lblCodigo.Text == "-")
            {
                pc.Inserir();
            }
            else
            {
                pc.Codigo = int.Parse(lblCodigo.Text);
                pc.Atualizar();
            }
            gridPacote.DataSource = Pacote.Listar();
            gridPacote.DataBind();
            btnNovo_Click(sender, e);
            lblResultado.Text = "";
        }
    }
        public void ReservaCriadaDiminuiEstoque()
        {
            Reserva Reserva = new Reserva();
            Produto Produto = new Produto("Teste", "Teste testando", "Teste.png", 129, 5);
            Pacote  Pacote  = new Pacote("TestePacote", "Teste testando pacote", 148);

            Opcional op  = new Opcional("TesteOpcional", "TesteOpcional testando1", 59, 8);
            Opcional op1 = new Opcional("TesteOpcional1", "TesteOpcional testando2", 59, 8);
            Opcional op2 = new Opcional("TesteOpcional2", "TesteOpcional testando3", 59, 8);

            List <Opcional> Lista = new List <Opcional>();

            Lista.Add(op);
            Lista.Add(op1);
            Lista.Add(op2);

            Reserva.AtribuirProduto(Produto);
            Reserva.AtribuirOpcionais(Lista);

            Assert.AreEqual(4, Produto.QuantidadeDisponivel);
            Assert.AreEqual(7, op.QuantidadeDisponivel);
            Assert.AreEqual(7, op1.QuantidadeDisponivel);
            Assert.AreEqual(7, op2.QuantidadeDisponivel);
        }
Пример #24
0
        private RespostaHttp LogicaPost(List <string> Tags, double latitude, double longitude, Rota rota)
        {
            var resp = new RespostaHttp();

            if (rota.DataFim.CompareTo(rota.DataInicio) > 0)
            {
                resp.Ok       = false;
                resp.Mensagem = "Essa rota já foi finalizada e não aceita novas amostras.";
                return(resp);
            }
            else
            {
                try
                {
                    var leituraPacotes = new List <Pacote>();

                    foreach (var s in Tags)
                    {
                        Pacote p = _pacoteService.ObterPorTag(s);

                        if (p != null)
                        {
                            leituraPacotes.Add(p);
                        }
                    }

                    if (rota.AmostrasLocalizacao.Count == 0)
                    {
                        rota.Pacotes = leituraPacotes;
                        _rotaService.SalvarRota(rota);
                    }

                    else
                    {
                        foreach (var item in rota.Pacotes)
                        {
                            if (!leituraPacotes.Exists(x => x.PacoteId == item.PacoteId))
                            {
                                Ocorrencia o = new Ocorrencia
                                {
                                    Data           = DateTime.UtcNow,
                                    Descricao      = "Pacote não encontrado no veículo",
                                    Pacote         = item.PacoteId,
                                    TipoOCorrencia = TipoOCorrencia.NaoEncontrado,
                                    Finalizado     = false,
                                    Resolvido      = false
                                };

                                _ocorrenciaService.SalvarOcorrencia(o);
                            }
                        }
                    }

                    var localizacao = new Localizacao
                    {
                        HorarioAmostra = DateTime.UtcNow,
                        Latitude       = latitude,
                        Longitude      = longitude,
                        Rota           = rota
                    };

                    _localizacaoService.SalvarLocalizacao(localizacao);

                    var estacaoDestino = _estacaoService.ObterPorId(rota.Destino);
                    var addr           = estacaoDestino.Endereco;

                    double distancia = GeocodingService.Haversine(latitude, longitude, addr.Latitude, addr.Longitude);

                    if (distancia <= 20)
                    {
                        rota.DataFim = DateTime.UtcNow;
                        _rotaService.SalvarRota(rota);

                        resp.Ok       = true;
                        resp.Mensagem = "Localização salva com sucesso, rota finalizada.";

                        return(resp);
                    }
                    else
                    {
                        resp.Ok       = true;
                        resp.Mensagem = "Localização salva com sucesso.";

                        return(resp);
                    }
                }

                catch (Exception)
                {
                    return(null);
                }
            }
        }
        private async Task <ValorPrazoFrete> CalcularValorPrazoFrete(String cepDestino, String tipoFrete, Pacote pacote)
        {
            var cepOrigem        = _configuration.GetValue <String>("Frete:CepOrigem");
            var maoPropria       = _configuration.GetValue <String>("Frete:MaoPropria");
            var avisoRecebimento = _configuration.GetValue <String>("Frete:AvisoRecebimento");
            var diametro         = Math.Max(Math.Max(pacote.Comprimento, pacote.Largura), pacote.Altura);


            cResultado resultado = await _servico.CalcPrecoPrazoAsync("", "", tipoFrete, cepOrigem, cepDestino, pacote.Peso.ToString(), 1, pacote.Comprimento, pacote.Altura, pacote.Largura, diametro, maoPropria, 0, avisoRecebimento);

            if (resultado.Servicos[0].Erro == "0")
            {
                var valorLimpo = resultado.Servicos[0].Valor.Replace(".", "");
                var valorFinal = double.Parse(valorLimpo);

                return(new ValorPrazoFrete()
                {
                    TipoFrete = TipoFreteConstant.GetNames(tipoFrete),
                    CodTipoFrete = tipoFrete,
                    Prazo = int.Parse(resultado.Servicos[0].PrazoEntrega),
                    Valor = valorFinal
                });
            }
            else if (resultado.Servicos[0].Erro == "008" || resultado.Servicos[0].Erro == "-888")
            {
                //Ex.: SEDEX10 - Não entrega naquela região
                return(null);
            }
            else if (resultado.Servicos[0].Erro == "0" || resultado.Servicos[0].Erro == "009" || resultado.Servicos[0].Erro == "010" || resultado.Servicos[0].Erro == "011")
            {
                throw new Exception("Erro: " + resultado.Servicos[0].MsgErro);
            }
            else
            {
                throw new Exception("Erro: " + resultado.Servicos[0].MsgErro);
            }
        }
        public ActionResult SalvarProjetoFinal(List<Int32> ListaUsuarios, List<Int32> ListaPapeis)
        {
            Int32 tmpIdProjeto;
            Projeto referenciaProjeto;
            ProjetoUsuario projetoUsuario;
            Int32 tmpIdUsuarioProjeto;
            FluxoAprovacaoProjeto fluxoAprovacaoProjeto;

            //Salvar Projeto Base
            referenciaProjeto = (Projeto)Session["TempProjeto"];
            Session.Remove("TempProjeto");

            db.Projeto.Add(referenciaProjeto);
            db.SaveChanges();

            tmpIdProjeto = referenciaProjeto.id;

            //Associar Projeto e Usuários
            for (int i = 0; i < ListaUsuarios.Count; i++)
            {
                projetoUsuario = new ProjetoUsuario();

                projetoUsuario.usuarioId = ListaUsuarios[i];
                projetoUsuario.papelUsuarioId = ListaPapeis[i];
                projetoUsuario.projetoId = tmpIdProjeto;

                db.ProjetoUsuario.Add(projetoUsuario);
                db.SaveChanges();

                tmpIdUsuarioProjeto = projetoUsuario.id;

                //Associar ProjetoUsuario ao Fluxo Projeto

                fluxoAprovacaoProjeto = new FluxoAprovacaoProjeto();

                fluxoAprovacaoProjeto.projetoUsuarioId = tmpIdUsuarioProjeto;
                fluxoAprovacaoProjeto.ordem = i + 1;

                db.FluxoAprovacaoProjeto.Add(fluxoAprovacaoProjeto);
                db.SaveChanges();
            }

            //Criar pacotes para o projeto recém criado automaticamente

            for (int i = 0; i < 3; i++)
            {
                Pacote pacote = new Pacote();

                pacote.projetoId = tmpIdProjeto;
                pacote.NOME = "Pacote - 0" + i;
                pacote.status = "Aberto";

                db.Pacote.Add(pacote);
                db.SaveChanges();
            }

            return RedirectToAction("Index");
        }
Пример #27
0
 public void Alterar(Pacote pacote)
 {
     _context.Entry(pacote).State = EntityState.Modified;
     _context.SaveChanges();
 }
Пример #28
0
 public void Adicionar(Pacote pacote)
 {
     _context.Pacotes.Add(pacote);
     _context.SaveChanges();
 }
Пример #29
0
 public Pacote CriarPacote(Pacote pacote)
 {
     contexto.Pacotes.Add(pacote);
     contexto.SaveChanges();
     return(pacote);
 }
Пример #30
0
        public void DeveRetornarSucessoSePacoteInvalido()
        {
            var pacote = new Pacote("Viagem a Cuba", "Melhor Arquipélago do Mundo", "Imagem Cuba", true);

            Assert.True(pacote.Valid, "Pacote é válido");
        }
Пример #31
0
        public void DeveRetornarErroSePacoteInvalido()
        {
            var pacote = new Pacote("Viagem a Cuba", "Melhor Arquipélago do Mundo", "", false);

            Assert.True(pacote.Invalid, "Pacote é válido");
        }