예제 #1
0
 private void AttachItem(Sinistro sinistro, EFContext context)
 {
     if (!context.Sinistros.Local.Contains(sinistro))
     {
         context.Sinistros.Attach(sinistro);
     }
 }
예제 #2
0
        public IHttpActionResult Post([FromBody] Sinistro sinistro)
        {
            if (sinistro == null)
            {
                return(BadRequest());
            }

            try
            {
                int id = PopularID(sinistro.ItemSegurado.ToString());
                sinistro.Id = id++;
                bool result = _sinistroService.Cadastrar(sinistro, sinistro.Id, sinistro.DataHora, sinistro.Item, sinistro.Seguro.NumeroApolice, sinistro.ItemSegurado.ToString());
                if (result)
                {
                    return(Ok());
                }
                else
                {
                    return(BadRequest("Houve um erro na operação!"));
                }
            }
            catch (RegistroExisteException e)
            {
                return(BadRequest(e.Message));
            }
            catch (ConcorrenciaBancoException e)
            {
                return(BadRequest(e.Message));
            }
        }
예제 #3
0
        public bool Alterar(Sinistro sinistro, int id, DateTime data, long numapolice, string tipo)
        {
            string query = "";

            string datahora   = sinistro.DataHora.ToString("yyyy/MM/dd hh:mm");
            string dataantiga = data.ToString("yyyy/MM/dd hh:mm");

            if (tipo == "Veiculo")
            {
                query = "UPDATE [dbo].[TB_SINISTRO_VEICULO] SET[SIN_ITEMSEG] = '" + sinistro.Item + "', [SIN_SEGURO] = " + numapolice + ", [SIN_DESCRICAO] = '" + sinistro.Descricao + "', [SIN_DATAHORA] = '" + datahora + "' " +
                        "WHERE [SIN_ID] = " + id + " AND SIN_DATAHORA = '" + dataantiga + "'";
            }
            else if (tipo == "Motorista")
            {
                query = "UPDATE [dbo].[TB_SINISTRO_MOTORISTA] SET[SIN_ITEMSEG] = '" + sinistro.Item + "', [SIN_SEGURO] = " + numapolice + ", [SIN_DESCRICAO] = '" + sinistro.Descricao + "', [SIN_DATAHORA] = '" + datahora + "'" +
                        "WHERE [SIN_ID] = " + id + " AND SIN_DATAHORA = '" + dataantiga + "'";
            }
            try
            {
                return(_banco.ExecutarInstrucao(query));
            }
            catch (ConcorrenciaBancoException e)
            {
                throw new ConcorrenciaBancoException(e.Message);
            }
        }
        private Sinistro GerarSinistro()
        {
            try
            {
                string descricao = new TextRange(DescricaoSinistroRichTextBox.Document.ContentStart, DescricaoSinistroRichTextBox.Document.ContentEnd).Text;

                Sinistro sinistro = new Sinistro();
                sinistro.CodSinistro     = CodigoSinistroTextBox.Text;
                sinistro.DataSinistro    = DataSinistroUC.Date.GetValueOrDefault();
                sinistro.QntEnvolvidos   = QntEnvolvidosUC.Value;
                sinistro.Gravidade       = (GravidadesDeSinistro)Enum.Parse(typeof(GravidadesDeSinistro), GravidadeSinistroComboBox.SelectedItem.ToString().Replace(' ', '_'));
                sinistro.EstadoPagamento = (EstadosDePagamento)Enum.Parse(typeof(EstadosDePagamento), EstadoPagamentoSinistroComboBox.SelectedItem.ToString().Replace(' ', '_'));
                sinistro.VeiculoId       = SeletorVeiculoSinistro.Veiculo.VeiculoId;
                sinistro.MotoristaId     = SeletorMotoristaSinistro.Motorista.MotoristaId;
                sinistro.Descricao       = descricao;

                return(sinistro);
            }
            catch (FieldException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #5
0
        public bool Cadastrar(Sinistro sinistro, long numapolice)
        {
            string query = "";

            string   data    = sinistro.DataHora.ToString("yyyy/MM/dd HH:mm");
            DateTime datareg = DateTime.Now;

            if (sinistro.ItemSegurado.ToString() == "Veiculo")
            {
                query = "INSERT INTO [dbo].[TB_SINISTRO_VEICULO] ([SIN_ITEMSEG],[SIN_SEGURO],[SIN_DESCRICAO],[SIN_DATAHORA],[SIN_DATAREGISTRO])" +
                        "VALUES ('" + sinistro.Item + "', " + numapolice + ", '" + sinistro.Descricao + "', '" + data + "','" + datareg.ToShortDateString() + "')";
            }
            else if (sinistro.ItemSegurado.ToString() == "Motorista")
            {
                query = "INSERT INTO [dbo].[TB_SINISTRO_MOTORISTA] ([SIN_ITEMSEG],[SIN_SEGURO],[SIN_DESCRICAO],[SIN_DATAHORA],[SIN_DATAREGISTRO])" +
                        "VALUES ('" + sinistro.Item + "', " + numapolice + ", '" + sinistro.Descricao + "', '" + data + "','" + datareg.ToShortDateString() + "')";
            }
            try
            {
                return(_banco.ExecutarInstrucao(query));
            }
            catch (ConcorrenciaBancoException e)
            {
                throw new ConcorrenciaBancoException(e.Message);
            }
        }
예제 #6
0
        private void DetalhesSinistroBtn_Click(object sender, RoutedEventArgs e)
        {
            Sinistro sinistro = ServicoDados.ServicoDadosSinistro.ObterSinistroPorId((SinistrosDataGrid.SelectedItem as Sinistro).SinistroId);
            FormDetalhesAlterarSinistro formDetalhesAlterarSinistro = new FormDetalhesAlterarSinistro(sinistro);

            formDetalhesAlterarSinistro.Show();
        }
 public IActionResult Post([FromBody] Sinistro sinistro)
 {
     if (sinistro != null && ModelState.IsValid)
     {
         return(new ObjectResult(sinistroBusiness.Create(sinistro)));
     }
     return(BadRequest());
 }
예제 #8
0
        public void RemoverSinistroPorId(long?id)
        {
            using EFContext Context = new EFContext();
            Sinistro sinistro = ObterSinistroPorId(id);

            AttachItem(sinistro, Context);
            Context.Sinistros.Remove(sinistro);
            Context.SaveChanges();
        }
        private void btnExcluirSinistros_Click(object sender, EventArgs e)
        {
            TipoSeguro tipoSeguro;

            try
            {
                if (cbTipo.Text == "Veiculo")
                {
                    tipoSeguro = TipoSeguro.Automóvel;
                }
                else
                {
                    tipoSeguro = TipoSeguro.Vida;
                }

                //ItemSegurado itemsegurado = (ItemSegurado)Enum.Parse(typeof(ItemSegurado), cbTipo.SelectedItem.ToString());
                string itemsegurado = cbItemSegurado.SelectedValue.ToString();
                int    id           = int.Parse(txtid.Text);
                long   seg          = long.Parse(cbSeguro.SelectedValue.ToString());

                Seguro seguro     = _sinistroController.BuscarSeguro(tipoSeguro, seg);
                long   numapolice = Convert.ToInt64(seguro.NumeroApolice);

                Sinistro sinistro = new Sinistro(id, itemsegurado, txtDesc.Text, dtDataSinistro.Value, seguro);


                if (MessageBox.Show("Deseja realmente excluir?", "Sair", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    if (_sinistroController.Deletar(sinistro, id, datahoraantigo, tipoantigo))
                    {
                        MessageBox.Show("Exclusão realizada com Sucesso!");
                        txtid.Text   = _sinistroController.PopularID(cbTipo.SelectedItem.ToString()).ToString();
                        txtDesc.Text = "";
                        tipoantigo   = "";

                        cbSeguro.SelectedItem       = cbSeguro.Items[0];
                        cbTipo.SelectedItem         = cbTipo.Items[0];
                        cbItemSegurado.SelectedItem = cbItemSegurado.Items[0];
                        dtDataSinistro.Value        = DateTime.Now;

                        btnCadastrarSinistros.Visible = true;
                        lblCancelar.Visible           = false;
                        btnAlterarSinistros.Enabled   = false;
                        btnExcluirSinistros.Enabled   = false;
                    }
                }
            }
            catch (NaoEncontradoException ex)
            {
                MessageBox.Show(ex.Message);
            }
            catch (ConcorrenciaBancoException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #10
0
 public bool Alterar(Sinistro sinistro, int id, string item, DateTime data, long numapolice, string tipo)
 {
     try
     {
         return(_sinistroService.Alterar(sinistro, id, item, data, numapolice, tipo));
     }
     catch
     {
         throw new ConcorrenciaBancoException("Favor tentar novamente mais tarde.");
     }
 }
 public Sinistros()
 {
     InitializeComponent();
     _sinistroController = InstanciarCamadas1();
     _seguroController   = InstanciarCamadas2();
     Sinistro            = null;
     Seguro             = null;
     numapoliceantigo   = 0;
     itemseguradoantigo = "";
     tipoantigo         = "";
 }
예제 #12
0
 public bool Deletar(Sinistro sinistro, int id, DateTime data, string tipo)
 {
     try
     {
         return(_sinistroDAL.Deletar(sinistro, id, data, tipo));
     }
     catch (ConcorrenciaBancoException)
     {
         throw new IntegridadeException("Sinistro não pode ser deletado, pois está ligado a outros serviços.");
     }
 }
예제 #13
0
 public bool Deletar(Sinistro sinistro, int id, DateTime data, string tipo)
 {
     try
     {
         return(_sinistroService.Deletar(sinistro, id, data, tipo));
     }
     catch
     {
         throw new ConcorrenciaBancoException("Favor tentar novamente mais tarde.");
     }
 }
 public Sinistro Create(Sinistro sinistro)
 {
     try
     {
         _context.Add(sinistro);
         _context.SaveChanges();
     }
     catch (Exception ex)
     {
         throw ex;
     }
     return(sinistro);
 }
        public IActionResult Put([FromBody] Sinistro sinistro)
        {
            if (sinistro == null)
            {
                return(BadRequest());
            }
            var updateSinistro = sinistroBusiness.Update(sinistro);

            if (updateSinistro == null)
            {
                return(BadRequest());
            }
            return(new ObjectResult(updateSinistro));
        }
예제 #16
0
 public void GravarSinistro(Sinistro sinistro)
 {
     try
     {
         if (sinistro.DataSinistro > DateTime.Now)
         {
             throw new Exception("Data do sinistro inválida");
         }
         Context.GravarSinistro(sinistro);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
예제 #17
0
        public ComunicadoXML P()
        {
            ComunicadoXML s = new ComunicadoXML
            {
                Empresa     = Empresa.P(),
                Finalizacao = Finalizacao.P(),
                Id          = Id,
                Reclamante  = Reclamante.P(),
                //Produtos = Produtos.P(),
                Segurado = Segurado.P(),
                Sinistro = Sinistro.P(),
            };

            return(s);
        }
예제 #18
0
 public bool Cadastrar(Sinistro sinistro, int id, DateTime data, string item, long numapolice, string tipo)
 {
     try
     {
         return(_sinistroService.Cadastrar(sinistro, id, data, item, numapolice, tipo));
     }
     catch (RegistroExisteException e)
     {
         throw new RegistroExisteException(e.Message);
     }
     catch (ConcorrenciaBancoException e)
     {
         throw new ConcorrenciaBancoException(e.Message);
     }
 }
예제 #19
0
 public bool Cadastrar(Sinistro sinistro, int id, DateTime data, string item, long numapolice, string tipo)
 {
     try
     {
         Sinistro obj = _sinistroDAL.BuscarSinistro(id, data, item, tipo); //Falta criar os métodos de busca
         if (obj != null)
         {
             throw new RegistroExisteException("Já existe um sinistro com esse dados no sistema!");
         }
         return(_sinistroDAL.Cadastrar(sinistro, numapolice));
     }
     catch (ConcorrenciaBancoException)
     {
         throw new ConcorrenciaBancoException("Favor tentar novamente mais tarde.");
     }
 }
예제 #20
0
 public bool Alterar(Sinistro sinistro, int id, string item, DateTime data, long numapolice, string tipo)
 {
     try
     {
         Sinistro obj = _sinistroDAL.BuscarSinistro(id, data, item, tipo); //Falta criar os métodos de busca
         if (obj == null)
         {
             throw new NaoEncontradoException("Sinistro não encontrado.");
         }
         return(_sinistroDAL.Alterar(sinistro, id, data, numapolice, tipo));
     }
     catch (ConcorrenciaBancoException)
     {
         throw new ConcorrenciaBancoException("Favor tentar novamente mais tarde.");
     }
 }
예제 #21
0
        public List <Sinistro> BuscarTodos(string tipo, DateTime dtinicio, DateTime dtfim)
        {
            List <Sinistro> sinistros = new List <Sinistro>();
            string          query     = "";
            TipoSeguro      tiposeg;

            if (tipo == "Veiculo")
            {
                query = "SELECT * FROM [dbo].[TB_SINISTRO_VEICULO]" +
                        "WHERE ((YEAR([SIN_DATAREGISTRO]) >= '" + dtinicio.Year + "' AND YEAR([SIN_DATAREGISTRO]) <= '" + dtfim.Year + "')" +
                        "AND MONTH([SIN_DATAREGISTRO]) >= '" + dtinicio.Month + "' AND MONTH([SIN_DATAREGISTRO]) <= '" + dtfim.Month + "')";
                tiposeg = TipoSeguro.Automóvel;
            }
            else
            {
                query = "SELECT * FROM [dbo].[TB_SINISTRO_MOTORISTA]" +
                        "WHERE ((YEAR([SIN_DATAREGISTRO]) >= '" + dtinicio.Year + "' AND YEAR([SIN_DATAREGISTRO]) <= '" + dtfim.Year + "')" +
                        "AND MONTH([SIN_DATAREGISTRO]) >= '" + dtinicio.Month + "' AND MONTH([SIN_DATAREGISTRO]) <= '" + dtfim.Month + "')";
                tiposeg = TipoSeguro.Vida;
            }
            try
            {
                DataTable dt       = _banco.BuscarRegistro(query);
                Sinistro  sinistro = null;
                DataRow[] dataRows = dt.Select();

                foreach (DataRow dr in dataRows)
                {
                    int      idsin   = int.Parse(dr["SIN_ID"].ToString());
                    DateTime datasin = DateTime.Parse(dr["SIN_DATAHORA"].ToString());
                    string   item    = dr["SIN_ITEMSEG"].ToString();
                    //ItemSegurado item = (ItemSegurado)Enum.Parse(typeof(ItemSegurado), dr["SIN_ITEMSEG"].ToString());
                    long   napolice = long.Parse(dr["SIN_SEGURO"].ToString());
                    Seguro seguro   = BuscarSeguro(tiposeg, napolice);
                    sinistro = new Sinistro(idsin, item, dr["SIN_DESCRICAO"].ToString(), datasin, seguro);

                    sinistros.Add(sinistro);
                }

                return(sinistros);
            }
            catch (ConcorrenciaBancoException e)
            {
                throw new ConcorrenciaBancoException(e.Message);
            }
        }
        private void lblCancelar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Deseja realmente cancelar manipulação de dados?", "Cancelar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                txtDesc.Text                = "";
                cbSeguro.SelectedItem       = cbSeguro.Items[0];
                cbTipo.SelectedItem         = cbTipo.Items[0];
                cbItemSegurado.SelectedItem = cbItemSegurado.Items[0];
                dtDataSinistro.Text         = "";

                btnCadastrarSinistros.Visible = true;
                lblCancelar.Visible           = false;
                btnAlterarSinistros.Enabled   = false;
                btnExcluirSinistros.Enabled   = false;

                Sinistro = null;
            }
        }
예제 #23
0
        public void Verify(Sinistro item)
        {
            var msg = string.Format(Descricoes.MSG024, "Data da Ocorrência");

            if (item.DatOcorrencia > DateTime.Now.Date)
            {
                throw new CoreException(msg, CoreExceptionType.Alert);
            }

            // Verifica se o seguro esta com validade na data de ocorrencia do sinistro
            var seguro       = seguroService.GetById(item.IdeSeguro);
            var seguroValido = (seguro.DatVigenciaInicio <= item.DatOcorrencia && seguro.DatVigenciaFim >= item.DatOcorrencia);

            if (!seguroValido)
            {
                throw new CoreException(Descricoes.MSG023, CoreExceptionType.Alert);
            }
        }
 public JsonResult Incluir(Sinistro item)
 {
     try
     {
         var msg = new Mensagem(Descricoes.MSG001, Tipo.Sucesso);
         if (ModelState.IsValid)
         {
             sinistroService.Save(item);
             return(Json(CreateMessageJson(msg)));
         }
         msg = new Mensagem(Descricoes.MSG025, Tipo.Alerta);
         return(Json(CreateMessageJson(msg)));
     }
     catch (Exception ex)
     {
         return(Json(CreateMessageJson(ex)));
     }
 }
예제 #25
0
        public IEnumerable <Sinistro> GetAllByPage(Sinistro item, DatatableParm parm)
        {
            var items = GetAll(item);

            parm.totalRecords = items.Count();
            var list = items.OrderPaging(parm.GetOrderByText(), parm.sSortDir_0, parm.iDisplayStart, parm.iDisplayLength);

            var ret = list.ToList()
                      .Select(x => new Sinistro()
            {
                Seguro = new Seguro()
                {
                    Veiculo    = new Veiculo().UpdateValues(x.Seguro.Veiculo),
                    Seguradora = new PessoaJuridica().UpdateValues(x.Seguro.Seguradora)
                }.UpdateValues(x.Seguro)
            }.UpdateValues(x));

            return(ret);
        }
        public FormDetalhesAlterarSinistro(Sinistro sinistro) : this()
        {
            _sinistro   = sinistro;
            DataContext = _sinistro;
            PopularComboBox();
            EstadoPagamentoSinistro.SelectedItem = _sinistro.EstadoPagamento.ToString("G");
            PreencherRichTextBox();
            CPFUC.Text          = _sinistro.Motorista.CPF;
            PlacaVeiculoUC.Text = _sinistro.Veiculo.Placa;
            DataSinistroUC.Date = _sinistro.DataSinistro;


            if (!DesktopLoginControlService._Usuario.Permissoes.MultasSinistros.Alterar)
            {
                SalvarAlteracaoPagamentoBtn.IsEnabled = false;
            }
            if (!DesktopLoginControlService._Usuario.Permissoes.MultasSinistros.Remover)
            {
                RemoverSinistroBtn.IsEnabled = false;
            }
        }
예제 #27
0
        private IEnumerable <Entities.Sinistro> GetAll(Sinistro item)
        {
            //Filtros
            var temIdeVeiculo          = item.IdeVeiculo > 0;
            var temIdeSeguradora       = item.IdeSeguradora > 0;
            var temIdcTipoSinistro     = !string.IsNullOrEmpty(item.IdcTipoSinistro);
            var temDatOcorrenciaInicio = item.DatOcorrenciaInicio.HasValue;
            var temDatOcorrenciaFim    = item.DatOcorrenciaFim.HasValue;

            var items = DbConnection.Sinistro
                        .Where(x => (temIdeVeiculo? x.Seguro.IdeVeiculo == item.IdeVeiculo: true) &&
                               (temIdeSeguradora? x.Seguro.IdeSeguradora == item.IdeSeguradora: true) &&
                               (temIdcTipoSinistro? x.IdcTipoSinistro == item.IdcTipoSinistro: true) &&
                               (temDatOcorrenciaInicio? x.DatOcorrencia >= item.DatOcorrenciaInicio: true) &&
                               (temDatOcorrenciaFim? x.DatOcorrencia <= item.DatOcorrenciaFim: true)
                               )
                        .Include(x => x.Seguro).ThenInclude(x => x.Veiculo)
                        .Include(x => x.Seguro).ThenInclude(x => x.Seguradora);

            return(items);
        }
예제 #28
0
 public void GravarSinistro(Sinistro sinistro)
 {
     try
     {
         using EFContext Context = new EFContext();
         if (sinistro.SinistroId == null)
         {
             Context.Sinistros.Add(sinistro);
         }
         else
         {
             AttachItem(sinistro, Context);
             Context.Entry(sinistro).State = EntityState.Modified;
         }
         Context.SaveChanges();
     }
     catch (DbUpdateException ex) when((ex.InnerException.InnerException is SqlException && (ex.InnerException.InnerException as SqlException).Number == 2601))
     {
         throw new Exception("Já existe um sinistro com Código idêntico registrado", ex);
     }
 }
예제 #29
0
        public Sinistro BuscarSinistro(int id, DateTime data, string item, string tipo)
        {
            string     Query = "";
            TipoSeguro tiposeg;
            string     datahora = data.ToString("yyyy/MM/dd HH:mm");

            if (tipo.ToString() == "Veiculo")
            {
                Query   = "SELECT * FROM [dbo].[TB_SINISTRO_VEICULO] WHERE [SIN_ID] = " + id + " AND [SIN_DATAHORA] = '" + datahora + "'";
                tiposeg = TipoSeguro.Automóvel;
            }
            else
            {
                Query   = "SELECT * FROM [dbo].[TB_SINISTRO_MOTORISTA] WHERE [SIN_ID] = " + id + " AND [SIN_DATAHORA] = '" + datahora + "'";
                tiposeg = TipoSeguro.Vida;
            }
            try {
                DataTable dt       = _banco.BuscarRegistro(Query);
                Sinistro  sinistro = null;
                DataRow[] dataRows = dt.Select("[SIN_ID] = " + id);

                foreach (DataRow dr in dataRows)
                {
                    int      idsin   = int.Parse(dr["SIN_ID"].ToString());
                    DateTime datasin = DateTime.Parse(dr["SIN_DATAHORA"].ToString());
                    string   itemseg = dr["SIN_ITEMSEG"].ToString();
                    //ItemSegurado item = (ItemSegurado)Enum.Parse(typeof(ItemSegurado), dr["SIN_ITEMSEG"].ToString());

                    long   napolice = long.Parse(dr["SIN_SEGURO"].ToString());
                    Seguro seguro   = BuscarSeguro(tiposeg, napolice);

                    sinistro = new Sinistro(idsin, itemseg, dr["SIN_DESCRICAO"].ToString(), datasin, seguro);
                }
                return(sinistro);
            }
            catch (Exception)
            {
                throw new ConcorrenciaBancoException("Erro de concorrência de banco!");
            }
        }
예제 #30
0
        public void Save(Sinistro item)
        {
            Verify(item);

            if (item.IdeSinistro > 0)
            {
                var itemUpd = DbConnection.Sinistro
                              .Include(x => x.Seguro).ThenInclude(x => x.Veiculo)
                              .Where(x => x.IdeSinistro == item.IdeSinistro)

                              .FirstOrDefault();

                itemUpd.UpdateValues(item);

                // Se o veículo esta com um seguro vigente, o mesmo será inativado
                if (itemUpd.Seguro.DatVigenciaFim >= DateTime.Now.Date)
                {
                    itemUpd.Seguro.Veiculo.IdcSituacao = Convert.ToString((Char)Enums.Situacao.Inativo);
                }

                DbConnection.Sinistro.Attach(itemUpd);
                DbConnection.Entry(itemUpd).State = EntityState.Modified;
            }
            else
            {
                var itemNew = new Entities.Sinistro();
                itemNew.UpdateValues(item);

                itemNew.Seguro = DbConnection.Seguro
                                 .Where(x => x.IdeSeguro == item.IdeSeguro)
                                 .Include(x => x.Veiculo)
                                 .FirstOrDefault();

                // Inativa o veículo que esta vinculado ao seguro
                itemNew.Seguro.Veiculo.IdcSituacao = Convert.ToString((Char)Enums.Situacao.Inativo);

                DbConnection.Sinistro.Add(itemNew);
            }
            DbConnection.SaveChanges();
        }