protected void BtnGenerar_Click(object sender, EventArgs e) { DDLEmpleado.Enabled = true; CryptoToken.CryptoToken vCrypto = new CryptoToken.CryptoToken(); String vPass = ConfigurationManager.AppSettings["TokenPass"].ToString(); String vTok = vCrypto.Encrypt(ConfigurationManager.AppSettings["TokenWord"].ToString(), vPass); Session["TOKEN"] = vTok; TxToken.Text = vTok; }
protected void Page_Load(object sender, EventArgs e) { String vToken = Request.QueryString["id"]; if (vToken != null) { try{ String vQuery = "[RSP_Documentacion] 12,'" + vToken + "'"; DataTable vDatos = vConexion.obtenerDataTable(vQuery); if (vDatos.Rows.Count > 0) { tokenClass vTokenClass = new tokenClass(); CryptoToken.CryptoToken vTokenCrypto = new CryptoToken.CryptoToken(); vTokenClass = JsonConvert.DeserializeObject <tokenClass>(vTokenCrypto.Decrypt(vToken, ConfigurationManager.AppSettings["TOKEN_DOC"].ToString())); Session["DOCUMENTOS_ARCHIVO_ID"] = Request.QueryString["d"]; //vTokenClass.usuario Session["AUTHCLASS"] = vDatos; Session["USUARIO"] = vDatos.Rows[0]["idEmpleado"].ToString(); Session["AUTH"] = true; Session["CODIGOSAP"] = vDatos.Rows[0]["codigoSAP"].ToString(); vQuery = "[RSP_Documentacion] 13,'" + vToken + "'"; vConexion.ejecutarSql(vQuery); Response.Redirect("archivo.aspx", false); } else { throw new Exception(); } }catch (Exception ex) { Session["AUTH"] = false; Response.Redirect("/login.aspx"); } } if (!Page.IsPostBack) { if (Convert.ToBoolean(Session["AUTH"])) { string vId = Session["DOCUMENTOS_ARCHIVO_ID"].ToString(); String vQuery = "[RSP_Documentacion] 5" + "," + Session["DOCUMENTOS_ARCHIVO_ID"].ToString(); DataTable vData = vConexion.obtenerDataTable(vQuery); LbTitulo.Text = vData.Rows[0]["nombre"].ToString(); DataTable vDatos = (DataTable)Session["AUTHCLASS"]; cargarDatos(vId); vQuery = "[RSP_Documentacion] 10" + ",'" + Session["USUARIO"].ToString() + "'" + ",null," + Session["DOCUMENTOS_ARCHIVO_ID"].ToString(); vData = vConexion.obtenerDataTable(vQuery); if (vData.Rows.Count > 0) { LbMensajeFirma.Text = "Documento firmado!"; BtnLeido.Enabled = false; BtnLeido.CssClass = "btn btn-dark"; } //Response.Redirect("tipoDocumentos.aspx"); } } }
private void ValidacionesPermisos(String vEmpleado, DateTime vFechaInicio, DateTime vFechaRegreso, String vTipo, TimeSpan tsHorario) { Decimal vDiasDisponibles = Convert.ToDecimal((LbNumeroVaciones.Text == String.Empty ? "0" : LbNumeroVaciones.Text)); //GENERALES if (vEmpleado.Equals("0")) { throw new Exception("Seleccione un empleado valido para el permiso."); } if (DDLJefe.SelectedValue.Equals("0")) { throw new Exception("Seleccione un jefe valido para el permiso."); } if (vTipo.Equals("0")) { throw new Exception("Seleccione un tipo de permiso valido"); } if (TxFechaInicio.Text.Equals("")) { throw new Exception("Ingrese una fecha de inicio valida"); } if (TxFechaRegreso.Text.Equals("")) { throw new Exception("Ingrese una fecha de regreso valida"); } if (vFechaRegreso < vFechaInicio) { throw new Exception("Las fechas ingresadas son incorrectas, el regreso es menor que el inicio"); } Decimal vDiasHoras = Calculo(null, -1); //ESPECIFICAS if (vTipo != "1002" || vTipo != "1004" || vTipo != "1012" || vTipo != "1013" || vTipo != "1018" || vTipo != "1022") { if ((tsHorario.Days >= 1 && tsHorario.Hours > 0) || (tsHorario.Days >= 1 && tsHorario.Minutes > 0)) { throw new Exception("Debe solicitar permisos por día y hora individualmente"); } if (vFechaInicio.Day != vFechaRegreso.Day) { if (vFechaInicio.Hour != 0 || vFechaInicio.Minute != 0 || vFechaRegreso.Hour != 0 || vFechaRegreso.Minute != 0) { throw new Exception("Debe solicitar permisos por día y hora individualmente"); } } } if (vTipo == "1004" || vTipo == "1007") { if (vDiasHoras > vDiasDisponibles) { throw new Exception("Usted no cuenta con suficientes vacaciones disponibles."); } if (vDiasDisponibles <= 0) { throw new Exception("Usted no cuenta con vacaciones disponibles."); } String vQuerySIM = "RSP_ObtenerGenerales 15, " + vEmpleado; DataTable vDatosSIM = vConexion.obtenerDataTable(vQuerySIM); Decimal vDiasHoras2 = 0; if (vDatosSIM.Rows.Count > 0) { for (int i = 0; i < vDatosSIM.Rows.Count; i++) { vDiasHoras2 += Calculo(vDatosSIM, i); } } Decimal vDias = Convert.ToDecimal(LbNumeroVaciones.Text) - vDiasHoras2 - vDiasHoras; if (vDias < 0) { throw new Exception("La cantidad de días solicitados sobrepasa los disponibles. " + "Para consultar los permisos pendientes comuníquese con Recursos Humanos."); } } if ((vTipo == "1001" || vTipo == "1010" || vTipo == "1018" || vTipo == "1026") && !Convert.ToBoolean(Session["PERMISOSCGS"])) { throw new Exception("Debe solicitar acceso a RRHH para ingresar este permiso."); } if (vTipo == "1006") { String vAnual = DateTime.Now.Year.ToString(); String vMes = DateTime.Now.Month.ToString().Length > 1 ? DateTime.Now.Month.ToString() : "0" + DateTime.Now.Month.ToString(); String vQuery = "RSP_ValidacionesPermisos 2," + vEmpleado + ",'" + vAnual + "',0"; DataTable vDatos = vConexion.obtenerDataTable(vQuery); if (Convert.ToInt32(vDatos.Rows[0][0].ToString()) > 15) { throw new Exception("Ya ha realizado los 15 permisos de calamidad domestica este año."); } vQuery = "RSP_ValidacionesPermisos 3," + vEmpleado + ",'" + vMes + "',0"; vDatos = vConexion.obtenerDataTable(vQuery); if (Convert.ToInt32(vDatos.Rows[0][0].ToString()) > 2) { throw new Exception("Ya ha realizado los 2 permisos de calamidad domestica este mes."); } } if (tsHorario.Hours < 4 && tsHorario.Days < 1 && vFechaInicio != vFechaRegreso && (vTipo == "1001" || vTipo == "1002" || vTipo == "1006" || vTipo == "1007" || vTipo == "1008" || vTipo == "1010" || vTipo == "1018" || vTipo == "1019" || vTipo == "1020" || vTipo == "1021")) { throw new Exception("No se pueden agregar permisos menores a 4 horas."); } // VALIDACION COMPENSATORIO if (vTipo == "1011") { int days = Convert.ToInt32(vDiasHoras); days = days != 0 ? days * 8 : days; Decimal vTotal = days + tsHorario.Hours + (Convert.ToDecimal(tsHorario.Minutes) / 60); if (Convert.ToDecimal(vTotal) > Convert.ToDecimal(LbCompensatorio.Text)) { throw new Exception("No tiene suficientes horas de tiempo compensatorio."); } Session["HORAS_COMPENSATORIO"] = vTotal; } //EMERGENCIAS if (CbEmergencias.Checked) { if (vTipo == "1004" || vTipo == "1007" || vTipo == "1011") { if (TxToken.Text != "" || TxToken.Text != string.Empty) { CryptoToken.CryptoToken vDec = new CryptoToken.CryptoToken(); String vWord = ConfigurationManager.AppSettings["TokenWord"].ToString(); String vPass = ConfigurationManager.AppSettings["TokenPass"].ToString(); String vTok = vDec.Decrypt(TxToken.Text, vPass); String vQuery2 = "RSP_ObtenerGenerales 17," + vEmpleado; DataTable vDatosVerificacion = vConexion.obtenerDataTable(vQuery2); if (vDatosVerificacion.Rows.Count > 0) { Session["IDTOKEN"] = vDatosVerificacion.Rows[0]["id"].ToString(); DateTime vFecVence = Convert.ToDateTime(vDatosVerificacion.Rows[0]["fechaVencimiento"].ToString()); if (vFecVence > DateTime.Now) { if (vTok == vWord && TxToken.Text == vDatosVerificacion.Rows[0]["idToken"].ToString()) { TimeSpan ts = Convert.ToDateTime(TxFechaInicio.Text) - DateTime.Now; if (ts.Days < -15) { throw new Exception("No se pueden agregar permisos por incumplimiento de politica (15 dias maximo para ingresar permisos pasados)"); } } else { throw new Exception("El Token ingresado no es válido."); } } else { throw new Exception("Token vencido."); } } else { throw new Exception("No tiene token asignado, comuníquese con Recursos Humanos para generar uno nuevo."); } } else { throw new Exception("Debe ingresar un token. Solicítelo a Recursos Humanos"); } } } else { String vFormato = "MM/dd/yyyy HH:mm:ss"; //"dd/MM/yyyy HH:mm:ss" String vIni = Convert.ToDateTime(vFechaInicio).ToString(vFormato); String vFin = Convert.ToDateTime(vFechaRegreso).ToString(vFormato); String vQuery = "RSP_ValidacionesPermisos 1," + vEmpleado + ",'" + vIni + "','" + vFin + "'"; DataTable vDatosVerificacion = vConexion.obtenerDataTable(vQuery); if (vDatosVerificacion.Rows.Count > 0) { if (vDatosVerificacion.Rows[0][0].ToString().Equals("1")) { throw new Exception("Ya existe un permiso en el tiempo seleccionado"); } } if (Convert.ToInt32(vTipo) < 2000 && vTipo != "1003" && vTipo != "1005" && vTipo != "1011" && vTipo != "1023" && vTipo != "1024" && vTipo != "1025") { TimeSpan ts = Convert.ToDateTime(TxFechaInicio.Text) - DateTime.Now; if (ts.Days < -15) { throw new Exception("No se pueden agregar permisos por incumplimiento de politica (15 dias maximo para ingresar permisos pasados)"); } if (ts.Days < 2) { throw new Exception("No se pueden agregar permisos por incumplimiento de politica (48 Horas antes)"); } if (ts.Days > 15) { throw new Exception("No se pueden agregar permisos por incumplimiento de politica (15 dias maximo de anticipación)"); } } } }
protected void BtnCargar_Click(object sender, EventArgs e) { try{ validarDatos(); String vExtension = "", vBody = ""; vExtension = Path.GetExtension(FUArchivo.FileName); String archivoLog = string.Format("{0}_{1}", Convert.ToString(Session["usuario"]), DateTime.Now.ToString("yyyyMMddHHmmss")); String vDireccionCarga = ConfigurationManager.AppSettings["RUTA_SERVER_DOCS"].ToString() + LitTitulo.Text.ToLower(); //String vDireccionCarga = ConfigurationManager.AppSettings["RUTA_SERVER_DOCS_LOCAL"].ToString() + LitTitulo.Text.ToLower(); String vNombreArchivo = FUArchivo.FileName; vDireccionCarga += "/" + archivoLog + "_" + vNombreArchivo; FUArchivo.SaveAs(vDireccionCarga); Boolean vCargado = File.Exists(vDireccionCarga) ? true : false; if (vCargado) { xml vDatos = new xml(); String vIdArchivo = Session["DOCUMENTOS_TIPO_ID"].ToString(); Object[] vDatosMaestro = new object[20]; vDatosMaestro[0] = vIdArchivo; vDatosMaestro[1] = DDLCategoria.SelectedValue; vDatosMaestro[2] = TxNombre.Text; vDatosMaestro[3] = FUArchivo.FileName; vDatosMaestro[4] = vExtension; vDatosMaestro[5] = TxCodigo.Text; vDatosMaestro[6] = vDireccionCarga; vDatosMaestro[7] = DDLConfirmacion.SelectedValue; vDatosMaestro[8] = DDLCorreo.SelectedValue; vDatosMaestro[9] = TxFecha.Text != "" ? Convert.ToDateTime(TxFecha.Text).ToString("yyyy-MM-dd HH:mm:ss") : "1900-01-01 00:00:00"; vDatosMaestro[10] = DDLRecordatorios.SelectedValue; vDatosMaestro[11] = DDLEstado.SelectedValue; vDatosMaestro[12] = Session["USUARIO"].ToString(); vDatosMaestro[13] = CBxConfidencial.Checked; vDatosMaestro[14] = DDLNivelConfidencialidad.SelectedValue; vDatosMaestro[15] = DDLPropietario.SelectedValue != "0" ? DDLPropietario.SelectedValue : "0"; vDatosMaestro[16] = DDLCategoria.SelectedValue == "6" ? Convert.ToDateTime(TxFechaEx.Text).ToString("yyyy-MM-dd") : ""; vDatosMaestro[17] = DDLCategoria.SelectedValue == "6" ? TxProveedorEx.Text : ""; vDatosMaestro[18] = DDLCategoria.SelectedValue == "6" ? TxContactoEx.Text : ""; vDatosMaestro[19] = DDLCategoria.SelectedValue == "6" ? TxCorreoEx.Text : ""; String vXML = vDatos.ObtenerXMLDocumentos(vDatosMaestro); vXML = vXML.Replace("<?xml version=\"1.0\" encoding=\"utf-16\"?>", ""); String vQuery = "[RSP_Documentacion] 4,0" + ",'" + vXML + "'"; int vInfo = vConexion.obtenerId(vQuery); if (vInfo > 0) { DataTable vDataRef = new DataTable(); vDataRef.Columns.Add("idDocumento"); vDataRef.Columns.Add("nombre"); for (int i = 0; i < LBReferencia.Items.Count; i++) { if (LBReferencia.Items[i].Selected) { vDataRef.Rows.Add(LBReferencia.Items[i].Value, LBReferencia.Items[i].Text); } } if (vDataRef.Rows.Count > 0) { for (int i = 0; i < vDataRef.Rows.Count; i++) { vQuery = "[RSP_Documentacion] 25," + vDataRef.Rows[i]["idDocumento"].ToString() + ",NULL," + vInfo; vConexion.ejecutarSql(vQuery); } } DataTable vDTConfidenciales = (DataTable)Session["DOCUMENTOS_CORREOS"]; if (vIdArchivo == "1") { vBody = "Se ha creado un nuevo Boletín, por favor revisar el documento."; } else if (vIdArchivo == "2") { vBody = "Se ha creado un nuevo Formato, por favor revisar el documento."; } else if (vIdArchivo == "3") { vBody = "Se ha creado un nuevo Manual, por favor revisar el documento."; } else if (vIdArchivo == "4") { vBody = "Se ha creado una nueva Política, por favor revisar el documento."; } else if (vIdArchivo == "5") { vBody = "Se ha creado un nuevo Proceso, por favor revisar el documento."; } else if (vIdArchivo == "6") { vBody = "Se ha creado un nuevo documento Externo, por favor revisar el documento."; } if (DDLCategoria.SelectedValue == "1") { if (DDLCorreo.SelectedValue == "1") { String vConsulta = "[RSP_Documentacion] 6"; DataTable vData = vConexion.obtenerDataTable(vConsulta); for (int i = 0; i < vData.Rows.Count; i++) { String vTokenString = ""; CryptoToken.CryptoToken vToken = new CryptoToken.CryptoToken(); tokenClass vClassToken = new tokenClass() { usuario = Convert.ToInt32(vData.Rows[i]["idEmpleado"].ToString()) }; vTokenString = vToken.Encrypt(JsonConvert.SerializeObject(vClassToken), ConfigurationManager.AppSettings["TOKEN_DOC"].ToString()); vQuery = "[RSP_Documentacion] 8" + "," + vData.Rows[i]["idEmpleado"].ToString() + ",null," + vInfo + ",'" + vBody + "'" + ",0,'" + vTokenString + "'"; vConexion.ejecutarSql(vQuery); } } } else if (DDLCategoria.SelectedValue == "2" || DDLCategoria.SelectedValue == "4") { for (int i = 0; i < vDTConfidenciales.Rows.Count; i++) { String vTokenString = ""; if (DDLCorreo.SelectedValue == "1") { CryptoToken.CryptoToken vToken = new CryptoToken.CryptoToken(); tokenClass vClassToken = new tokenClass() { usuario = Convert.ToInt32(vDTConfidenciales.Rows[i]["idEmpleado"].ToString()), parametro1 = vInfo.ToString() }; vTokenString = vToken.Encrypt(JsonConvert.SerializeObject(vClassToken), ConfigurationManager.AppSettings["TOKEN_DOC"].ToString()); } vQuery = "[RSP_Documentacion] 8" + "," + vDTConfidenciales.Rows[i]["idEmpleado"].ToString() + ",null," + vInfo + ",'" + vBody + "'" + ",0,'" + vTokenString + "'"; vConexion.ejecutarSql(vQuery); } } else if (DDLCategoria.SelectedValue == "3") { vQuery = "[RSP_Documentacion] 23," + DDLGrupos.SelectedValue; DataTable vDataGrupo = vConexion.obtenerDataTable(vQuery); if (vDataGrupo.Rows.Count > 0) { for (int i = 0; i < vDataGrupo.Rows.Count; i++) { String vTokenString = ""; if (DDLCorreo.SelectedValue == "1") { CryptoToken.CryptoToken vToken = new CryptoToken.CryptoToken(); tokenClass vClassToken = new tokenClass() { usuario = Convert.ToInt32(vDataGrupo.Rows[i]["idEmpleado"].ToString()), parametro1 = vInfo.ToString() }; vTokenString = vToken.Encrypt(JsonConvert.SerializeObject(vClassToken), ConfigurationManager.AppSettings["TOKEN_DOC"].ToString()); } vQuery = "[RSP_Documentacion] 8" + "," + vDataGrupo.Rows[i]["idEmpleado"].ToString() + ",null," + vInfo + ",'" + vBody + "'" + ",0,'" + vTokenString + "'"; vConexion.ejecutarSql(vQuery); } } } MensajeLoad("Documento cargado con éxito.", WarningType.Success); } else { MensajeLoad("Solicitud no completada, favor comuníquese con sistemas.", WarningType.Danger); } } else { MensajeLoad("Solicitud no completada, favor comuníquese con sistemas.", WarningType.Danger); } limpiarModal(); cargarDatos(); UpdatePanel1.Update(); }catch (Exception ex) { MensajeLoad(ex.Message, WarningType.Danger); } }