Esempio n. 1
0
        //---------------------------------------------------------------
        // Metodos públicos de la clase (no visibles para la UIL)
        //---------------------------------------------------------------

        #region Metodos internos de validacion

        /// <summary>
        /// Valida la integridad de una entidad: Servicio
        /// </summary>
        /// <param name="p_dbcAccess">Conexion a la base de datos</param>
        /// <param name="p_entServicio">Entidad con los datos a validar</param>
        /// <param name="p_smResult">Estado final de la operacion</param>
        internal static void TInt(DBConn p_dbcAccess,
                                  EServicio p_entServicio,
                                  StatMsg p_smResult)
        {
            // ********
            // Validaciones de los campos sin conexion
            // ********

            if (p_entServicio.Cod.Trim() == "")
            {
                // El campo [Código] no puede ser vacío
                p_smResult.BllWarning("El dato [Código] no puede ser vacío", "");
                return;
            }

            if (p_entServicio.Des.Trim() == "")
            {
                // El campo [Descripción] no puede ser vacío
                p_smResult.BllWarning("El dato [Descripción] no puede ser vacío", "");
                return;
            }

            // ********
            // Validaciones de los campos con conexion
            // ********

            // Llamamos a la funcion fija del usuario
            TInt_f(p_dbcAccess, p_entServicio, p_smResult);
            if (p_smResult.NOk)
            {
                return;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Recupera los datos de un usuario de la base Idn
        /// </summary>
        /// <param name="p_cnInfo">Codigo para identificar la string de conexion</param>
        /// <param name="p_strUser">Codigo del usuario</param>
        /// <param name="p_bChekSup">Verificar supervisor en Sist/Prog</param>
        /// <param name="p_strSist">Sigla del sistema</param>
        /// <param name="p_strPrg">Sigla del programa</param>
        /// <param name="p_smResult">Estado final de la operacion</param>
        /// <returns>Entidad con los datos del usuario</returns>
        public static EIdnUsuario UserFullGet(string p_strUser,
                                              StatMsg p_smResult)
        {
            // No hay errores aun
            DBConn l_dbcAccess = null;

            try
            {
                // Obtenemos una conexion a la base de datos
                l_dbcAccess = DBRuts.GetConection(Connections.Idn);

                // Verificamos si existe el usuario y si esta habilitado
                DataSet l_dsTemp = new DataSet();

                int l_iRet = Vendedores.UserFullSearch(l_dbcAccess, p_strUser, ref l_dsTemp, "Temporal1", p_smResult);
                if (p_smResult.NOk)
                {
                    return(null);
                }

                if (l_iRet == 0)
                {
                    p_smResult.BllWarning("Acceso denegado (Internal Error 1)");
                    l_dsTemp.Dispose();
                    return(null);
                }

                // Construimos la entidad del usuario
                EIdnUsuario l_entUser = new EIdnUsuario(l_dsTemp.Tables["Temporal1"].Rows[0]);

                if (l_entUser.EstaBorrada)
                {
                    // No puede volver
                    p_smResult.BllWarning("Acceso denegado (Internal Error 2)");
                    l_entUser.Dispose();
                    l_dsTemp.Dispose();
                    return(null);
                }


                return(l_entUser);
            }
            catch (Exception l_expData)
            {
                // Error al obtener el usuario
                p_smResult.BllError(l_expData);
                return(null);
            }
            finally
            {
                // Si logramos abrir la conexion-> la cerramos
                if (l_dbcAccess != null)
                {
                    l_dbcAccess.Close();
                }
            }
        }
Esempio n. 3
0
        //---------------------------------------------------------------
        // Metodos públicos de la clase (no visibles para la UIL)
        //---------------------------------------------------------------

        #region Metodos internos de validacion

        /// <summary>
        /// Valida la integridad de una entidad: Supervisor
        /// </summary>
        /// <param name="p_dbcAccess">Conexion a la base de datos</param>
        /// <param name="p_entSupervisor">Entidad con los datos a validar</param>
        /// <param name="p_smResult">Estado final de la operacion</param>
        internal static void TInt(DBConn p_dbcAccess,
                                  ESupervisor p_entSupervisor,
                                  StatMsg p_smResult)
        {
            // ********
            // Validaciones de los campos sin conexion
            // ********

            if (p_entSupervisor.Cod.Trim() == "")
            {
                // El campo [Código] no puede ser vacío
                p_smResult.BllWarning("El dato [Código] no puede ser vacío", "");
                return;
            }

            if (p_entSupervisor.Apellido.Trim() == "")
            {
                // El campo [Apellido] no puede ser vacío
                p_smResult.BllWarning("El dato [Apellido] no puede ser vacío", "");
                return;
            }

            if (p_entSupervisor.Nombre.Trim() == "")
            {
                // El campo [Nombre] no puede ser vacío
                p_smResult.BllWarning("El dato [Nombre] no puede ser vacío", "");
                return;
            }

            if (p_entSupervisor.Usuario.Trim() == "")
            {
                // El campo [Usuario del Sistema] no puede ser vacío
                p_smResult.BllWarning("El dato [Usuario del Sistema] no puede ser vacío", "");
                return;
            }

            // ********
            // Validaciones de los campos con conexion
            // ********

            // Llamamos a la funcion fija del usuario
            TInt_f(p_dbcAccess, p_entSupervisor, p_smResult);
            if (p_smResult.NOk)
            {
                return;
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Borra físicamente un registro de a tabla: Alertas
        /// </summary>
        /// <param name="p_dbcAccess">Conexion a la base de datos</param>
        /// <param name="p_iNroconfig">Nro Config Alerta</param>
        /// <param name="p_iNroalerta">Nro Alerta</param>
        /// <param name="p_iFxdVersion">Versión del registro a borrar</param>
        /// <param name="p_smResult">Estado final de la operacion</param>
        internal static void AleDrop(DBConn p_dbcAccess,
                                     int p_iNroconfig,
                                     int p_iNroalerta,
                                     int p_iFxdVersion,
                                     StatMsg p_smResult)
        {
            try {
                // Verificamos la clave a borrar
                AleVKey(p_dbcAccess,
                        p_iNroconfig,
                        p_iNroalerta,
                        p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                // El registro tiene que existir
                if (p_smResult.ICodeEs(BllCodes.KeyDsntFound))
                {
                    // Error. La clave no existe
                    p_smResult.BllWarning("El ítem (Alerta) que intenta borrar no existe en el sistema.", "");
                    return;
                }

                // Debe coincidir el número de version
                AleVVer(p_dbcAccess,
                        p_iNroconfig,
                        p_iNroalerta,
                        p_iFxdVersion,
                        p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                // Borramos físicamente el registro
                Dal.Alertas.Drop(p_dbcAccess,
                                 p_iNroconfig,
                                 p_iNroalerta,
                                 p_smResult);
            }
            catch (Exception l_expData) {
                // Error en la operacion Remove
                p_smResult.BllError(l_expData);
            }
        }
Esempio n. 5
0
        public static void enviarMail(List <string> destinatarios, string titulo, string textoMail, StatMsg p_smResult)
        {
            try
            {
                cargarParametros(p_smResult);

                // Creamos el objeto mensaje de mail.
                MailMessage msg = new MailMessage();

                // Agregamos todos los destinatarios del mail.
                foreach (string destinatario in destinatarios)
                {
                    msg.To.Add(new MailAddress(destinatario));
                }

                // Cargamos el emisor
                msg.From = new MailAddress(MailSender.mailRemitente);

                // Cargamos el subject del mail y el cuerpo, sacados de la pantalla.
                msg.Subject    = titulo;
                msg.Body       = textoMail;
                msg.IsBodyHtml = true;

                // Recuperamos a partir de los aprametros el servidor a utilizar.
                string     servidorCorreo = MailSender.direccionSMTP;
                int        puerto         = MailSender.puertoSMTP;
                SmtpClient client         = new SmtpClient(servidorCorreo, puerto);

                client.EnableSsl             = (MailSender.safeMail == "S");
                client.DeliveryMethod        = System.Net.Mail.SmtpDeliveryMethod.Network;
                client.UseDefaultCredentials = false;

                NetworkCredential credentials = new NetworkCredential(MailSender.mailCredential, MailSender.passCredential, "");
                client.Credentials = credentials;

                client.Send(msg);
            }
            catch (Exception e)
            {
                p_smResult.BllWarning(e.ToString());
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Agrega o modifica un registro de la tabla: Servicios
        /// </summary>
        /// <param name="p_dbcAccess">Conexion a la base de datos</param>
        /// <param name="p_entServicio">Entidad con los datos a procesar</param>
        /// <param name="p_smResult">Estado final de la operacion</param>
        internal static void SSav(DBConn p_dbcAccess,
                                  EServicio p_entServicio,
                                  StatMsg p_smResult)
        {
            try {
                // Procesamos codigo fijo
                Save_f(p_dbcAccess, ref p_entServicio, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                // Verificamos la clave a grabar
                VKey(p_dbcAccess,
                     p_entServicio.Cod,
                     p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                // Si es una entidad nueva
                if (p_entServicio.EsNueva)
                {
                    // Es un alta. La clave no debe existir
                    if (!p_smResult.ICodeEs(BllCodes.KeyDsntFound))
                    {
                        // Error. La clave ya existe
                        p_smResult.BllWarning("El ítem (Servicio) que intenta agregar ya existe en el sistema.", "");
                        return;
                    }

                    // Agregamos el registro
                    Insr(p_dbcAccess, p_entServicio, p_smResult);
                    return;
                }

                // Es un update. La clave debe existir y estar habilitada
                if (!p_smResult.ICodeEs(BllCodes.KeyExists))
                {
                    // Error. La clave no existe o no está habilitada
                    p_smResult.BllWarning("El ítem (Servicio) que intenta modificar no existe en el sistema o no está habilitado.", "");
                    return;
                }

                // Debe coincidir el número de version
                VVer(p_dbcAccess,
                     p_entServicio.Cod,
                     p_entServicio.FxdVersion,
                     p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                // Actualizamos el registro
                Updt(p_dbcAccess, p_entServicio, p_smResult);
            }
            catch (Exception l_expData) {
                // Error en la operacion SSav
                p_smResult.BllError(l_expData);
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Verifica el número de version de una tabla
        /// </summary>
        /// <param name="p_dbcAccess">Conexion a la base de datos</param>
        /// <param name="p_strCod">Código</param>
        /// <param name="p_iFxdVersion">Número de version</param>
        /// <param name="p_smResult">Estado final de la operacion</param>
        internal static void VVer(DBConn p_dbcAccess,
                                  string p_strCod,
                                  int p_iFxdVersion,
                                  StatMsg p_smResult)
        {
            // No hay errores aun
            DataSet l_dsTemp = new DataSet();

            // Verificamos el número de versión
            Dal.Servicios.ChkVersion(p_dbcAccess,
                                     p_strCod,
                                     p_iFxdVersion,
                                     ref l_dsTemp,
                                     "Temporal",
                                     p_smResult);
            if (p_smResult.NOk)
            {
                return;
            }

            // Verificamos el resultado que vino
            if (l_dsTemp.Tables["Temporal"].Rows.Count != 0)
            {
                // Verificamos si la cantidad es 1
                if ((int)l_dsTemp.Tables["Temporal"].Rows[0]["cantidad"] == 1)
                {
                    // La versión coincide
                    l_dsTemp.Dispose();
                    return;
                }
            }

            // El número de versión no coincide
            StreamWriter l_swErrorFile = null;
            string       l_strErrFName = String.Format("C:\\V{0:ddMMyyyyHHmmss}.Err",
                                                       DateTime.Now);

            try {
                // Creamos el archivo del error
                l_swErrorFile = new StreamWriter(File.Create(l_strErrFName),
                                                 System.Text.Encoding.ASCII);

                // Grabamos los datos del error
                l_swErrorFile.WriteLine("Instante    : {0:dd/MM/yyyy HH:mm:ss}", DateTime.Now);
                l_swErrorFile.WriteLine("Metodo      : {0}", p_smResult.Method);
                l_swErrorFile.WriteLine("Message     : No coincide el numero de version");
            }
            catch (Exception l_expData) {
                // Error en el acceso al archivo.
                string l_strLinea = l_expData.Message;
            }
            finally {
                // Si llegamos a abrir el archivo -> lo cerramos
                if (l_swErrorFile != null)
                {
                    l_swErrorFile.Close();
                    l_swErrorFile.Dispose();
                }
            }

            // El número de versión no coincide
            l_dsTemp.Dispose();
            p_smResult.BllWarning("El número de versión del registro del ítem (Servicio) no coincide.\r\nOperación cancelada.", "");
        }
Esempio n. 8
0
        /// <summary>
        /// Habilita/Deshabilita un registro de la tabla: Servicios
        /// </summary>
        /// <param name="p_bEnable">Tipo de operacion</param>
        /// <param name="p_strCod">Código</param>
        /// <param name="p_smResult">Estado final de la operacion</param>
        public static void Enabled(bool p_bEnable,
                                   string p_strCod,
                                   int p_iFxdVersion,
                                   StatMsg p_smResult)
        {
            // No hay errores aun
            DBConn l_dbcAccess = null;

            // Ajustamos codigos alineados a derecha
            p_strCod = EServicio.FrmtCod(p_strCod);

            try {
                // Obtenemos una conexion
                l_dbcAccess = DBRuts.GetConection(Connections.Dat);
                l_dbcAccess.BeginTransaction();

                // Procesamos codigo fijo
                Enabled_f(l_dbcAccess,
                          p_bEnable,
                          p_strCod,
                          ref p_iFxdVersion,
                          p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                // Verificamos la clave a modificar
                VKey(l_dbcAccess,
                     p_strCod,
                     p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                // El registro tiene que existir
                if (p_smResult.ICodeEs(BllCodes.KeyDsntFound))
                {
                    // Error. La clave no existe
                    p_smResult.BllWarning("El ítem (Servicio) que intenta modificar no existe en el sistema.", "");
                    return;
                }

                // Debe coincidir el número de version
                VVer(l_dbcAccess,
                     p_strCod,
                     p_iFxdVersion,
                     p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                // Segun el modo
                if (p_bEnable)
                {
                    // Hay que habilitar el registro
                    Dal.Servicios.Recall(l_dbcAccess,
                                         p_strCod,
                                         p_smResult);
                }
                else
                {
                    // Hay que deshabilitar el registro
                    Dal.Servicios.Delete(l_dbcAccess,
                                         p_strCod,
                                         p_smResult);
                }
            }
            catch (Exception l_expData) {
                // Error en la operacion Enabled
                p_smResult.BllError(l_expData);
            }
            finally {
                // Si pude abrir la conexion
                if (l_dbcAccess != null)
                {
                    // Finalizo la transacción y la cierro
                    l_dbcAccess.EndTransaction(p_smResult);
                    l_dbcAccess.Close();
                }
            }
        }