protected void btngrabar_Click(object sender, EventArgs e) { try { if (Session["username"] == null) { Session["error"] = "Primero debe iniciar sesión"; Response.Redirect("login.aspx"); return; } if (idP == 1 || idP == 2) { DateTime hoy = DateTime.Now; DateTime inicio; cn.Conectar(); SqlCommand q2 = new SqlCommand("select t.fecAtendido from ticket t inner join usuario u on t.id=u.id" + " inner join usuario u2 on t.idTecnico = u2.id where RIGHT('000000' + cast(t.idTicket AS varchar(6)), 6)=@tck", cn.getConexion()); q2.Parameters.AddWithValue("@tck", idTicket); SqlDataReader dr2 = q2.ExecuteReader(); dr2.Read(); inicio = DateTime.Parse(dr2["fecAtendido"].ToString()); cn.Cerrar(); double minutos = (hoy - inicio).TotalMinutes; String minutosF = ""; if (minutos > 59) { if (minutos < 120) { double horas = (hoy - inicio).TotalHours; int residuo = Convert.ToInt32(minutos % 60); if (residuo == 1) { minutosF = horas.ToString("##") + " hora " + residuo + " minuto"; } else if (residuo < 1) { minutosF = horas.ToString("##") + " hora"; } else { minutosF = horas.ToString("##") + " hora " + residuo + " minutos"; } } else { double horas = (hoy - inicio).TotalHours; int residuo = Convert.ToInt32(minutos % 60); if (residuo == 1) { minutosF = horas.ToString("##") + " horas " + residuo + " minuto"; } else if (residuo < 1) { minutosF = horas.ToString("##") + " horas"; } else { minutosF = horas.ToString("##") + " horas " + residuo + " minutos"; } } } else { minutosF = minutos.ToString("##") + " minutos"; } cn.Conectar(); SqlCommand sc = new SqlCommand("update ticket set observaciones ='" + txtobs.Text + "', idEstado=4, tiempo = '" + minutosF + "' where RIGHT('000000' + cast(idTicket AS varchar(6)), 6) = '" + idTicket + "'", cn.getConexion()); sc.ExecuteNonQuery(); cn.Cerrar(); cn.Conectar(); SqlCommand q = new SqlCommand("select u.username, u.email, u2.username as tecnico, t.requerimiento from ticket t inner join usuario u on t.id=u.id" + " inner join usuario u2 on t.idTecnico = u2.id where RIGHT('000000' + cast(t.idTicket AS varchar(6)), 6)=@tck", cn.getConexion()); q.Parameters.AddWithValue("@tck", idTicket); SqlDataReader dr = q.ExecuteReader(); dr.Read(); rqc = dr["requerimiento"].ToString(); email = dr["email"].ToString(); tecnico = dr["tecnico"].ToString(); //ConfigSMTP smtp = new ConfigSMTP(); //smtp.emailTecADM(tecnico, rqc); //smtp.enviarTecUsu(email, rqc); //cn.Cerrar(); Session["mensaje"] = "Se finalizó el ticket exitosamente."; string cerrar = "window.close();"; Session.Remove("idTicket"); ScriptManager.RegisterStartupScript(Page, Page.GetType(), "closewindows", cerrar, true); } else if (idP == 4 || idP == 5) { cn.Conectar(); SqlCommand sc = new SqlCommand("update ticket set fecAtencion = GETDATE(), observaciones ='" + txtobs.Text + "', idEstado=4, tiempo = case " + "when convert(varchar(8), fecAtendido, 108) <= getdate() " + "then getdate() - convert(varchar(8), fecAtendido, 108)" + " else convert(varchar(8), fecAtendido, 108) - getdate() end " + "where RIGHT('000000' + cast(idTicket AS varchar(6)), 6) = '" + idTicket + "'", cn.getConexion()); sc.ExecuteNonQuery(); cn.Cerrar(); cn.Conectar(); SqlCommand q = new SqlCommand("select u.username, u.email, u2.username as tecnico, t.requerimiento from ticket t inner join usuario u on t.id=u.id" + " inner join usuario u2 on t.idTecnico = u2.id where RIGHT('000000' + cast(t.idTicket AS varchar(6)), 6)=@tck", cn.getConexion()); q.Parameters.AddWithValue("@tck", idTicket); SqlDataReader dr = q.ExecuteReader(); dr.Read(); rqc = dr["requerimiento"].ToString(); email = dr["email"].ToString(); tecnico = dr["tecnico"].ToString(); ConfigSMTP smtp = new ConfigSMTP(); smtp.emailTecADM(tecnico, rqc); smtp.enviarTecUsu(email, rqc); cn.Cerrar(); Session["mensaje"] = "Se finalizó el ticket exitosamente."; string cerrar = "window.close();"; Session.Remove("idTicket"); ScriptManager.RegisterStartupScript(Page, Page.GetType(), "closewindows", cerrar, true); } } catch (Exception x) { lblError.Text = "Ha ocurrido un error inesperado."; lblError.Visible = true; if (Session["username"] != null) { ConfigSMTP smtp = new ConfigSMTP(); smtp.enviarError(x.Message.ToString(), Request.UserHostAddress.ToString(), Session["username"].ToString(), "BTNGRABAR"); } return; } }