Exemplo n.º 1
0
        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");
                }
            }
        }
Exemplo n.º 3
0
        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)");
                    }
                }
            }
        }
Exemplo n.º 4
0
        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);
            }
        }