示例#1
0
        public static void Insertar(Personal personal)
        {
            Methods.GenerateLogsDebug("PersonalDal", "InsertarPersonal", string.Format("{0} Info: {1}",
                                                                                       DateTime.Now.ToLongDateString(), "Empezando a ejecutar el metodo acceso a datos para crear un personal"));

            SqlCommand     command = null;
            SqlTransaction trans   = null;

            //Consulta para insertar datos de personal
            string queryString = @"INSERT INTO Personal(IdPersona, CodPersonal, FechaIngreso, Cargo, Sueldo) 
                               VALUES (@idPersona ,@codPersonal, @fechaIngreso, @cargo, @sueldo)";

            SqlConnection conexion = Methods.ObtenerConexion();

            try
            {
                conexion.Open();
                SqlCommand usuarioInsertcmd = UsuarioDal.InsertarOUTPUT(personal.Usuario);
                //Inicio de Conexion a la Base de Datos
                trans = conexion.BeginTransaction();

                usuarioInsertcmd.Connection  = conexion;
                usuarioInsertcmd.Transaction = trans;
                personal.Usuario.IdUsuario   = Convert.ToInt32(usuarioInsertcmd.ExecuteScalar());

                Persona persona = personal;

                SqlCommand personaInsertcmd = PersonaDal.InsertarOUTPUT(persona);

                personaInsertcmd.Connection  = conexion;
                personaInsertcmd.Transaction = trans;
                personal.IdPersona           = Convert.ToInt32(personaInsertcmd.ExecuteScalar());


                // Creacion de Personal Commando y ejecutado
                command = new SqlCommand(queryString);
                command.Parameters.AddWithValue("@idPersona", personal.IdPersona);
                command.Parameters.AddWithValue("@codPersonal", personal.CodPersonal);
                command.Parameters.AddWithValue("@fechaIngreso", personal.FechaIngreso);
                command.Parameters.AddWithValue("@cargo", personal.Cargo.IdCargo);
                command.Parameters.AddWithValue("@sueldo", personal.Sueldo);

                command.Connection  = conexion;
                command.Transaction = trans;
                command.ExecuteNonQuery();

                //Insertar telefonos
                foreach (Telefono telf in personal.Telefonos)
                {
                    SqlCommand telfcmd = TelefonoDal.InsertarOUTPUT(telf, personal.IdPersona);
                    telfcmd.Connection  = conexion;
                    telfcmd.Transaction = trans;
                    telfcmd.ExecuteNonQuery();
                }

                //Insertar direcciones
                foreach (Direccion direc in personal.Direcciones)
                {
                    SqlCommand direccmd = DireccionDal.InsertarOUTPUT(direc, personal.IdPersona);
                    direccmd.Connection  = conexion;
                    direccmd.Transaction = trans;
                    direccmd.ExecuteNonQuery();
                }

                //Insertar correos
                foreach (Correo correo in persona.Correos)
                {
                    SqlCommand correocmd = CorreoDal.InsertarOUTPUT(correo, personal.IdPersona);
                    correocmd.Connection  = conexion;
                    correocmd.Transaction = trans;
                    correocmd.ExecuteNonQuery();
                }

                trans.Commit();
            }
            catch (SqlException ex)
            {
                trans.Rollback();
                Methods.GenerateLogsRelease("PersonalDal", "InsertarPersonal", string.Format("{0} {1} Error: {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), ex.Message));
                throw ex;
            }
            catch (Exception ex)
            {
                trans.Rollback();
                Methods.GenerateLogsRelease("PersonalDal", "InsertarPersonal", string.Format("{0} {1} Error: {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), ex.Message));
                throw ex;
            }
            finally
            {
                conexion.Close();
            }

            Methods.GenerateLogsDebug("PersonalDal", "InsertarPersonal", string.Format("{0} {1} Info: {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), "Termino de ejecutar  el metodo acceso a datos para insertar un personal"));
        }
示例#2
0
        public static void Insertar(Cliente cliente)
        {
            Methods.GenerateLogsDebug("ClienteDal", "InsertarCliente", string.Format("{0} Info: {1}",
                                                                                     DateTime.Now.ToLongDateString(), "Empezando a ejecutar el metodo acceso a datos para crear un Cliente"));

            SqlCommand     command = null;
            SqlTransaction trans   = null;

            //Consulta para insertar datos de Cliente
            string queryString = @"INSERT INTO Cliente(IdPersona, Nit, Razon, FechaRegistro)
                                    VALUES(@idPersona, @nit, @razon, @fechaRagistro)";

            SqlConnection conexion = Methods.ObtenerConexion();

            try
            {
                conexion.Open();
                SqlCommand usuarioInsertcmd = UsuarioDal.InsertarOUTPUT(cliente.Usuario);
                //Inicio de Conexion a la Base de Datos
                trans = conexion.BeginTransaction();

                usuarioInsertcmd.Connection  = conexion;
                usuarioInsertcmd.Transaction = trans;
                cliente.Usuario.IdUsuario    = Convert.ToInt32(usuarioInsertcmd.ExecuteScalar());

                Persona persona = cliente;

                SqlCommand personaInsertcmd = PersonaDal.InsertarOUTPUT(persona);

                personaInsertcmd.Connection  = conexion;
                personaInsertcmd.Transaction = trans;
                cliente.IdPersona            = Convert.ToInt32(personaInsertcmd.ExecuteScalar());


                // Creacion de Cliente Commando y ejecutado
                command = new SqlCommand(queryString);
                command.Parameters.AddWithValue("@idPersona", cliente.IdPersona);
                command.Parameters.AddWithValue("@nit", cliente.Nit);
                command.Parameters.AddWithValue("@razon", cliente.Razon);
                command.Parameters.AddWithValue("@fechaRagistro", DateTime.Now);

                command.Connection  = conexion;
                command.Transaction = trans;
                command.ExecuteNonQuery();

                //Insertar telefonos
                foreach (Telefono telf in cliente.Telefonos)
                {
                    SqlCommand telfcmd = TelefonoDal.InsertarOUTPUT(telf, cliente.IdPersona);
                    telfcmd.Connection  = conexion;
                    telfcmd.Transaction = trans;
                    telfcmd.ExecuteNonQuery();
                }

                //Insertar direcciones
                foreach (Direccion direc in cliente.Direcciones)
                {
                    SqlCommand direccmd = DireccionDal.InsertarOUTPUT(direc, cliente.IdPersona);
                    direccmd.Connection  = conexion;
                    direccmd.Transaction = trans;
                    direccmd.ExecuteNonQuery();
                }

                //Insertar correos
                foreach (Correo correo in persona.Correos)
                {
                    SqlCommand correocmd = CorreoDal.InsertarOUTPUT(correo, cliente.IdPersona);
                    correocmd.Connection  = conexion;
                    correocmd.Transaction = trans;
                    correocmd.ExecuteNonQuery();
                }

                trans.Commit();
            }
            catch (SqlException ex)
            {
                trans.Rollback();
                Methods.GenerateLogsRelease("ClienteDal", "InsertarCliente", string.Format("{0} {1} Error: {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), ex.Message));
                throw ex;
            }
            catch (Exception ex)
            {
                trans.Rollback();
                Methods.GenerateLogsRelease("ClienteDal", "InsertarCliente", string.Format("{0} {1} Error: {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), ex.Message));
                throw ex;
            }
            finally
            {
                conexion.Close();
            }

            Methods.GenerateLogsDebug("ClienteDal", "InsertarCliente", string.Format("{0} {1} Info: {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), "Termino de ejecutar  el metodo acceso a datos para insertar un Cliente"));
        }