/// <summary> /// Obtem a lista de todos os estacionamentos /// </summary> /// <returns></returns> public List <EstacionamentoModel> ObtemEstacionamentos() { string sql = "SELECT * FROM dbe_estacionamento"; DataTable dados = MetodosAcessoDAL.RetornaDataTable(ConexaoBD.GetConection(), sql); if (dados.Rows.Count == 0) { throw new Exception("Consulta não retornou dados"); } List <EstacionamentoModel> listaEstacionamento = new List <EstacionamentoModel>(); foreach (DataRow item in dados.Rows) { EstacionamentoModel estaciona = new EstacionamentoModel(); estaciona.Id = Convert.ToInt32(item["dbs_id"].ToString()); estaciona.IdVaga = Convert.ToInt32(item["dbs_id_vaga"].ToString()); estaciona.IdVeiculo = Convert.ToInt32(item["dbs_id_veiculo"].ToString()); estaciona.DataHora_Entrada = DateTime.Parse(item["dbs_datahora_entrada"].ToString()); if (!string.IsNullOrEmpty(item["dbs_datahora_saida"].ToString())) { estaciona.DataHora_Saida = DateTime.Parse(item["dbs_datahora_saida"].ToString()); } estaciona.Estado = Convert.ToString(item["dbs_estado"].ToString()); listaEstacionamento.Add(estaciona); } return(listaEstacionamento); }
/// <summary> /// Registra o pagament baseado no id do Estacionamento /// </summary> /// <param name="id"></param> public void RegistrarPagamento(int id) { #region Captura o valor devido string sql = $"SELECT * FROM dbe_estacionamento e WHERE e.dbs_id = {id}"; DataTable dados = MetodosAcessoDAL.RetornaDataTable(ConexaoBD.GetConection(), sql); EstacionamentoModel estacionamento = new EstacionamentoModel() { Id = Convert.ToInt32(dados.Rows[0]["dbs_id"].ToString()), DataHora_Entrada = DateTime.Parse(dados.Rows[0]["dbs_datahora_entrada"].ToString()) }; TimeSpan span = DateTime.Now.Subtract(estacionamento.DataHora_Entrada); double qntHorasAlocadas = Math.Truncate(span.TotalHours); decimal valorCobrado; if (qntHorasAlocadas <= 3) { valorCobrado = 7; } else { valorCobrado = Math.Round(Convert.ToDecimal(7 + ((qntHorasAlocadas - 3) * 3)), 2); } #endregion #region Atualiza Estacionamento string sqlUpdateEstac = $"UPDATE dbe_estacionamento e set e.dbs_estado = 'P', e.dbs_datahora_saida = '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}' where e.dbs_id = {id}"; MetodosAcessoDAL.ExecutarComandoSQL(ConexaoBD.GetConection(), sqlUpdateEstac); #endregion #region Insere o Tiket de Pagamento string sqlTiketPagamento = $"INSERT INTO dbe_tiket_pagamento(dbp_dataPagamento, dbp_pago, dbp_valor, dbp_id_estacionamento) " + $"values('{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}','{"S"}',{valorCobrado.ToString()},{id})"; MetodosAcessoDAL.ExecutarComandoSQL(ConexaoBD.GetConection(), sqlTiketPagamento); #endregion }