public static string Insertar(int idtrabajador,int idproveedor, DateTime fecha,
     string tipo_comprobante,string serie,string correlativo, decimal igv,
     string estado,DataTable dtDetalles)
 {
     DIngreso Obj = new DIngreso();
     Obj.Idtrabajador = idtrabajador;
     Obj.Idproveedor = idproveedor;
     Obj.Fecha = fecha;
     Obj.Tipo_Comprobante = tipo_comprobante;
     Obj.Serie = serie;
     Obj.Correlativo = correlativo;
     Obj.Igv = igv;
     Obj.Estado = estado;
     List<DDetalle_Ingreso> detalles = new List<DDetalle_Ingreso>();
     foreach (DataRow row in dtDetalles.Rows)
     {
         DDetalle_Ingreso detalle = new DDetalle_Ingreso();
         detalle.Idarticulo = Convert.ToInt32(row["idarticulo"].ToString());
         detalle.Precio_Compra = Convert.ToDecimal(row["precio_compra"].ToString());
         detalle.Precio_Venta = Convert.ToDecimal(row["precio_venta"].ToString());
         detalle.Stock_Inicial = Convert.ToInt32(row["stock_inicial"].ToString());
         detalle.Stock_Actual = Convert.ToInt32(row["stock_inicial"].ToString());
         detalle.Fecha_Produccion = Convert.ToDateTime(row["fecha_produccion"].ToString());
         detalle.Fecha_Vencimiento = Convert.ToDateTime(row["fecha_vencimiento"].ToString());
         detalles.Add(detalle);
     }
     return Obj.Insertar(Obj,detalles);
 }
Example #2
0
        //Anular
        public string Anular(DIngreso Ingreso)
        {
            string        respuesta   = "";
            SqlConnection SqlConectar = new SqlConnection();

            try
            {
                //conexion con la Base de Datos
                SqlConectar.ConnectionString = Conexion.CadenaConexion;
                SqlConectar.Open();

                //comandos
                SqlCommand SqlComando = new SqlCommand();
                SqlComando.Connection  = SqlConectar;
                SqlComando.CommandText = "Anular_Ingreso";
                SqlComando.CommandType = CommandType.StoredProcedure;

                //parametros

                //parametro id
                SqlParameter Parametro_Id_Ingreso = new SqlParameter();
                Parametro_Id_Ingreso.ParameterName = "@IdIngreso";
                Parametro_Id_Ingreso.SqlDbType     = SqlDbType.Int;
                Parametro_Id_Ingreso.Value         = Ingreso.Id_Ingreso;
                SqlComando.Parameters.Add(Parametro_Id_Ingreso);


                //ejecuta y lo envia en comentario
                respuesta = SqlComando.ExecuteNonQuery() == 1 ? "OK" : "No se anulo el registro";
            }
            catch (Exception excepcion)
            {
                respuesta = excepcion.Message;
            }

            //se cierra la conexion de la Base de Datos
            finally
            {
                if (SqlConectar.State == ConnectionState.Open)
                {
                    SqlConectar.Close();
                }
            }
            return(respuesta);
        }
Example #3
0
        public string Anular(DIngreso Ingreso)
        {
            string        rpta        = "";
            SqlConnection Sqlconexion = new SqlConnection();

            try
            {
                //abrir conexion
                Sqlconexion.ConnectionString = Conexion.Conectar;
                Sqlconexion.Open();
                //conexion al procedimiento almacenado
                SqlCommand sqlcmd = new SqlCommand();
                sqlcmd.Connection  = Sqlconexion;
                sqlcmd.CommandText = "Ingreso_Anular";
                sqlcmd.CommandType = CommandType.StoredProcedure;

                //conexion con variables del SP
                SqlParameter paridIngreso = new SqlParameter();
                paridIngreso.ParameterName = "@idIngreso";
                paridIngreso.SqlDbType     = SqlDbType.Int;
                paridIngreso.Value         = Ingreso.IdIngreso;
                sqlcmd.Parameters.Add(paridIngreso);

                //conexion nombre

                rpta = sqlcmd.ExecuteNonQuery() == 1 ? "OK" : "NO SE ANULO EL REGISTRO";
            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (Sqlconexion.State == ConnectionState.Open)
                {
                    Sqlconexion.Close();
                    Sqlconexion.Dispose();
                }
            }
            return(rpta);
        }
Example #4
0
        //Metodo Anular
        public string Anular(DIngreso Ingreso)
        {
            string        rpta   = "";
            SqlConnection SqlCon = new SqlConnection();

            try
            {
                //Codigo
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCon.Open();
                //Establecer el comando
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection  = SqlCon;
                SqlCmd.CommandText = "spanular_ingreso";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlParameter ParIdingreso = new SqlParameter();
                ParIdingreso.ParameterName = "@idingreso";
                ParIdingreso.SqlDbType     = SqlDbType.Int;
                ParIdingreso.Value         = Ingreso.Idingreso;
                SqlCmd.Parameters.Add(ParIdingreso);



                //Ejecutamos nuestro comando
                rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "No se Anulo ningun registro";
            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (SqlCon.State == ConnectionState.Open)
                {
                    SqlCon.Close();
                }
            }

            return(rpta);
        }
Example #5
0
        //Metodos
        public string Insertar(DIngreso Ingreso, List <DDetalle_Ingreso> Detalle)
        {
            string        rpta   = "";
            SqlConnection SqlCon = new SqlConnection();

            try
            {
                //Codigo
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCon.Open();
                //Establecer la Transaccion
                SqlTransaction SqlTra = SqlCon.BeginTransaction();
                //Establecer el comando
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection  = SqlCon;
                SqlCmd.Transaction = SqlTra;
                SqlCmd.CommandText = "spinsertar_ingreso";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlParameter ParIdingreso = new SqlParameter();
                ParIdingreso.ParameterName = "@idingreso";
                ParIdingreso.SqlDbType     = SqlDbType.Int;
                ParIdingreso.Direction     = ParameterDirection.Output;
                SqlCmd.Parameters.Add(ParIdingreso);

                SqlParameter ParIdtrabajador = new SqlParameter();
                ParIdtrabajador.ParameterName = "@idtrabajador";
                ParIdtrabajador.SqlDbType     = SqlDbType.Int;
                ParIdtrabajador.Value         = Ingreso.Idtrabajador;
                SqlCmd.Parameters.Add(ParIdtrabajador);

                SqlParameter ParIdproveedor = new SqlParameter();
                ParIdproveedor.ParameterName = "@idproveedor";
                ParIdproveedor.SqlDbType     = SqlDbType.Int;
                ParIdproveedor.Value         = Ingreso.Idproveedor;
                SqlCmd.Parameters.Add(ParIdproveedor);

                SqlParameter ParFecha = new SqlParameter();
                ParFecha.ParameterName = "@fecha";
                ParFecha.SqlDbType     = SqlDbType.Date;
                ParFecha.Value         = Ingreso.Fecha;
                SqlCmd.Parameters.Add(ParFecha);

                SqlParameter ParTipo_Comprobante = new SqlParameter();
                ParTipo_Comprobante.ParameterName = "@tipo_comprobante";
                ParTipo_Comprobante.SqlDbType     = SqlDbType.VarChar;
                ParTipo_Comprobante.Size          = 20;
                ParTipo_Comprobante.Value         = Ingreso.Tipo_Comprobante;
                SqlCmd.Parameters.Add(ParTipo_Comprobante);

                SqlParameter ParSerie = new SqlParameter();
                ParSerie.ParameterName = "@serie";
                ParSerie.SqlDbType     = SqlDbType.VarChar;
                ParSerie.Size          = 4;
                ParSerie.Value         = Ingreso.Serie;
                SqlCmd.Parameters.Add(ParSerie);

                SqlParameter ParCorrelativo = new SqlParameter();
                ParCorrelativo.ParameterName = "@correlativo";
                ParCorrelativo.SqlDbType     = SqlDbType.VarChar;
                ParCorrelativo.Size          = 7;
                ParCorrelativo.Value         = Ingreso.Correlativo;
                SqlCmd.Parameters.Add(ParCorrelativo);

                SqlParameter ParIgv = new SqlParameter();
                ParIgv.ParameterName = "@igv";
                ParIgv.SqlDbType     = SqlDbType.Decimal;
                ParIgv.Precision     = 4;
                ParIgv.Scale         = 2;
                ParIgv.Value         = Ingreso.Igv;
                SqlCmd.Parameters.Add(ParIgv);

                SqlParameter ParEstado = new SqlParameter();
                ParEstado.ParameterName = "@estado";
                ParEstado.SqlDbType     = SqlDbType.VarChar;
                ParEstado.Size          = 7;
                ParEstado.Value         = Ingreso.Estado;
                SqlCmd.Parameters.Add(ParEstado);

                //Ejecutamos nuestro comando
                rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "No se Ingreso el Registro";
                if (rpta.Equals("OK"))
                {
                    //Obtener el código del ingreso generado
                    this.Idingreso = Convert.ToInt32(SqlCmd.Parameters["@idingreso"].Value);
                    foreach (DDetalle_Ingreso det in Detalle)
                    {
                        det.Idingreso = this.Idingreso;
                        //Llamar al método insertar de la clase DDetalle_Ingreso
                        rpta = det.Insertar(det, ref SqlCon, ref SqlTra);
                        if (!rpta.Equals("OK"))
                        {
                            break;
                        }
                    }
                }
                if (rpta.Equals("OK"))
                {
                    SqlTra.Commit();
                }
                else
                {
                    SqlTra.Rollback();
                }
            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (SqlCon.State == ConnectionState.Open)
                {
                    SqlCon.Close();
                }
            }
            return(rpta);
        }
Example #6
0
        //metodos

        public string Insertar(DIngreso Ingreso, List <DDetalle_Ingreso> Detalle)
        {
            string        respuesta   = "";
            SqlConnection SqlConectar = new SqlConnection();

            try
            {
                //conexion con la Base de Datos
                SqlConectar.ConnectionString = Conexion.CadenaConexion;
                SqlConectar.Open();

                //transaccion
                SqlTransaction SqlTransaccion = SqlConectar.BeginTransaction();

                //comandos
                SqlCommand SqlComando = new SqlCommand();
                SqlComando.Connection  = SqlConectar;
                SqlComando.Transaction = SqlTransaccion;
                SqlComando.CommandText = "Insertar_Ingreso";
                SqlComando.CommandType = CommandType.StoredProcedure;

                //parametros

                //parametro id ingreso
                SqlParameter Parametro_Id_Ingreso = new SqlParameter();
                Parametro_Id_Ingreso.ParameterName = "@IdIngreso";
                Parametro_Id_Ingreso.SqlDbType     = SqlDbType.Int;
                Parametro_Id_Ingreso.Direction     = ParameterDirection.Output;
                SqlComando.Parameters.Add(Parametro_Id_Ingreso);

                //parametro id trabajador
                SqlParameter Parametro_Id_Trabajador = new SqlParameter();
                Parametro_Id_Trabajador.ParameterName = "@IdTrabajador";
                Parametro_Id_Trabajador.SqlDbType     = SqlDbType.VarChar;
                Parametro_Id_Trabajador.Size          = 20;
                Parametro_Id_Trabajador.Value         = Ingreso.Id_Trabajador;
                SqlComando.Parameters.Add(Parametro_Id_Trabajador);

                //parametro id proveedor
                SqlParameter Parametro_Id_Proveedor = new SqlParameter();
                Parametro_Id_Proveedor.ParameterName = "@IdProveedor";
                Parametro_Id_Proveedor.SqlDbType     = SqlDbType.VarChar;
                Parametro_Id_Proveedor.Size          = 20;
                Parametro_Id_Proveedor.Value         = Ingreso.Id_Proveedor;
                SqlComando.Parameters.Add(Parametro_Id_Proveedor);

                //parametro fecha
                SqlParameter Parametro_Fecha_Ingreso = new SqlParameter();
                Parametro_Fecha_Ingreso.ParameterName = "@Fecha";
                Parametro_Fecha_Ingreso.SqlDbType     = SqlDbType.Date;
                Parametro_Fecha_Ingreso.Value         = Ingreso.Fecha;
                SqlComando.Parameters.Add(Parametro_Fecha_Ingreso);

                //parametro Precio Total
                SqlParameter Parametro_PrecioTotal_Ingreso = new SqlParameter();
                Parametro_PrecioTotal_Ingreso.ParameterName = "@PrecioTotal";
                Parametro_PrecioTotal_Ingreso.SqlDbType     = SqlDbType.Money;
                Parametro_PrecioTotal_Ingreso.Value         = Ingreso.Precio_Total;
                SqlComando.Parameters.Add(Parametro_PrecioTotal_Ingreso);

                //parametro estado
                SqlParameter Parametro_Estado = new SqlParameter();
                Parametro_Estado.ParameterName = "@Estado";
                Parametro_Estado.SqlDbType     = SqlDbType.VarChar;
                Parametro_Estado.Size          = 20;
                Parametro_Estado.Value         = Ingreso.Estado;
                SqlComando.Parameters.Add(Parametro_Estado);

                //ejecuta y lo envia en comentario
                respuesta = SqlComando.ExecuteNonQuery() == 1 ? "OK" : "No se ingreso el Registro del Proveedor";

                if (respuesta.Equals("OK"))
                {
                    this.Id_Ingreso = Convert.ToInt32(SqlComando.Parameters["@IdIngreso"].Value);

                    foreach (DDetalle_Ingreso det in Detalle)
                    {
                        det.Id_Ingreso = this.Id_Ingreso;

                        //llamar a insertar
                        respuesta = det.Insertar(det, ref SqlConectar, ref SqlTransaccion);

                        if (!respuesta.Equals("OK"))
                        {
                            break;
                        }
                    }
                }

                if (respuesta.Equals("OK"))
                {
                    SqlTransaccion.Commit();
                }
                else
                {
                    //si se recibe una espuesta contraria a ok negamos la transaccion
                    SqlTransaccion.Rollback();
                }
            }
            catch (Exception excepcion)
            {
                respuesta = excepcion.Message;
            }

            //se cierra la conexion de la Base de Datos
            finally
            {
                if (SqlConectar.State == ConnectionState.Open)
                {
                    SqlConectar.Close();
                }
            }
            return(respuesta);
        }
Example #7
0
        public string Anular(DIngreso Ingreso)
        {
            string rpta = "";
            SqlConnection SqlCon = new SqlConnection();
            try
            {
                //Código
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCon.Open();
                //Establecer el Comando
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection = SqlCon;
                SqlCmd.CommandText = "spanular_ingreso";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlParameter ParIdingreso = new SqlParameter();
                ParIdingreso.ParameterName = "@idingreso";
                ParIdingreso.SqlDbType = SqlDbType.Int;
                ParIdingreso.Value = Ingreso.Idingreso;
                SqlCmd.Parameters.Add(ParIdingreso);


                //Ejecutamos nuestro comando

                rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "NO se anulo el Registro";


            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (SqlCon.State == ConnectionState.Open) SqlCon.Close();
            }
            return rpta;
        }
Example #8
0
        //Métodos
        public string Insertar(DIngreso Ingreso,List<DDetalle_Ingreso> Detalle)
        {
            string rpta = "";
            SqlConnection SqlCon = new SqlConnection();
            try
            {
                //Código
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCon.Open();
                //Establecer la trasacción
                SqlTransaction SqlTra = SqlCon.BeginTransaction();
                //Establecer el Comando
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection = SqlCon;
                SqlCmd.Transaction = SqlTra;
                SqlCmd.CommandText = "spinsertar_ingreso";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlParameter ParIdingreso = new SqlParameter();
                ParIdingreso.ParameterName = "@idingreso";
                ParIdingreso.SqlDbType = SqlDbType.Int;
                ParIdingreso.Direction = ParameterDirection.Output;
                SqlCmd.Parameters.Add(ParIdingreso);

                SqlParameter ParIdtrabajador = new SqlParameter();
                ParIdtrabajador.ParameterName = "@idtrabajador";
                ParIdtrabajador.SqlDbType = SqlDbType.Int;
                ParIdtrabajador.Value = Ingreso.Idtrabajador;
                SqlCmd.Parameters.Add(ParIdtrabajador);

                SqlParameter ParIdproveedor = new SqlParameter();
                ParIdproveedor.ParameterName = "@idproveedor";
                ParIdproveedor.SqlDbType = SqlDbType.Int;
                ParIdproveedor.Value = Ingreso.Idproveedor;
                SqlCmd.Parameters.Add(ParIdproveedor);


                SqlParameter ParFecha = new SqlParameter();
                ParFecha.ParameterName = "@fecha";
                ParFecha.SqlDbType = SqlDbType.Date;
                ParFecha.Value = Ingreso.Fecha;
                SqlCmd.Parameters.Add(ParFecha);

                SqlParameter ParTipo_Comprobante = new SqlParameter();
                ParTipo_Comprobante.ParameterName = "@tipo_comprobante";
                ParTipo_Comprobante.SqlDbType = SqlDbType.VarChar;
                ParTipo_Comprobante.Size = 20;
                ParTipo_Comprobante.Value = Ingreso.Tipo_Comprobante;
                SqlCmd.Parameters.Add(ParTipo_Comprobante);

                SqlParameter ParSerie = new SqlParameter();
                ParSerie.ParameterName = "@serie";
                ParSerie.SqlDbType = SqlDbType.VarChar;
                ParSerie.Size = 4;
                ParSerie.Value = Ingreso.Serie;
                SqlCmd.Parameters.Add(ParSerie);

                SqlParameter ParCorrelativo = new SqlParameter();
                ParCorrelativo.ParameterName = "@correlativo";
                ParCorrelativo.SqlDbType = SqlDbType.VarChar;
                ParCorrelativo.Size = 7;
                ParCorrelativo.Value = Ingreso.Correlativo;
                SqlCmd.Parameters.Add(ParCorrelativo);

                SqlParameter ParIgv = new SqlParameter();
                ParIgv.ParameterName = "@igv";
                ParIgv.SqlDbType = SqlDbType.Decimal;
                ParIgv.Precision = 4;
                ParIgv.Scale = 2;
                ParIgv.Value = Ingreso.Igv;
                SqlCmd.Parameters.Add(ParIgv);

                SqlParameter ParEstado = new SqlParameter();
                ParEstado.ParameterName = "@estado";
                ParEstado.SqlDbType = SqlDbType.VarChar;
                ParEstado.Size = 7;
                ParEstado.Value = Ingreso.Estado;
                SqlCmd.Parameters.Add(ParEstado);

                //Ejecutamos nuestro comando

                rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "NO se Ingreso el Registro";

                if (rpta.Equals("OK"))
                {
                    //Obtener el código del ingreso generado
                    this.Idingreso = Convert.ToInt32(SqlCmd.Parameters["@idingreso"].Value);
                    foreach (DDetalle_Ingreso det in Detalle)
                    {
                        det.Idingreso = this.Idingreso;
                        //Llamar al método insertar de la clase DDetalle_Ingreso
                        rpta = det.Insertar(det,ref SqlCon,ref SqlTra);
                        if (!rpta.Equals("OK"))
                        {
                            break;
                        }
                    }

                }
                if (rpta.Equals("OK"))
                {
                    SqlTra.Commit();
                }
                else
                {
                    SqlTra.Rollback();
                }
                

            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (SqlCon.State == ConnectionState.Open) SqlCon.Close();
            }
            return rpta;

        }
Example #9
0
        public string Insertar(DIngreso Ingresos, List <DDetalle_Ingreso> Detalle)
        {
            string        rpta        = "";
            SqlConnection Sqlconexion = new SqlConnection();

            try
            {
                //abrir conexion
                Sqlconexion.ConnectionString = Conexion.Conectar;
                Sqlconexion.Open();
                //conexion al procedimiento almacenado
                SqlTransaction SqlTra = Sqlconexion.BeginTransaction();

                SqlCommand sqlcmd = new SqlCommand();
                sqlcmd.Connection  = Sqlconexion;
                sqlcmd.Transaction = SqlTra;
                sqlcmd.CommandText = "Ingreso_Insertar";
                sqlcmd.CommandType = CommandType.StoredProcedure;

                //conexion con variables del SP
                SqlParameter paridIngreso = new SqlParameter();
                paridIngreso.ParameterName = "@idIngreso";
                paridIngreso.SqlDbType     = SqlDbType.Int;
                paridIngreso.Direction     = ParameterDirection.Output;
                sqlcmd.Parameters.Add(paridIngreso);


                SqlParameter paridEmpleado = new SqlParameter();
                paridEmpleado.ParameterName = "@idEmpleado";
                paridEmpleado.SqlDbType     = SqlDbType.Int;
                paridEmpleado.Value         = Ingresos.IdEmpleado;
                sqlcmd.Parameters.Add(paridEmpleado);

                SqlParameter parFecha = new SqlParameter();
                parFecha.ParameterName = "@fecha";
                parFecha.SqlDbType     = SqlDbType.Date;
                parFecha.Value         = Ingresos.Fecha;
                sqlcmd.Parameters.Add(parFecha);

                SqlParameter parSerie = new SqlParameter();
                parSerie.ParameterName = "@serie";
                parSerie.SqlDbType     = SqlDbType.VarChar;
                parSerie.Size          = 4;
                parSerie.Value         = Ingresos.Serie;
                sqlcmd.Parameters.Add(parSerie);

                SqlParameter parEstado = new SqlParameter();
                parEstado.ParameterName = "@estado";
                parEstado.SqlDbType     = SqlDbType.VarChar;
                parEstado.Size          = 7;
                parEstado.Value         = Ingresos.Estado;
                sqlcmd.Parameters.Add(parEstado);

                rpta = sqlcmd.ExecuteNonQuery() == 1 ? "OK" : "NO SE REALIZO EL REGISTRO  DE INGRESO";

                if (rpta.Equals("OK"))
                {
                    //obtener codigo del ingreso generado
                    this.IdIngreso = Convert.ToInt32(sqlcmd.Parameters["@idIngreso"].Value);
                    foreach (DDetalle_Ingreso det in Detalle)
                    {
                        det.IdIngreso = this.IdIngreso;
                        rpta          = det.Insertar(det, ref Sqlconexion, ref SqlTra);
                        if (!rpta.Equals("OK"))
                        {
                            break;
                        }
                    }
                }
                if (rpta.Equals("OK"))
                {
                    SqlTra.Commit();
                }
                else
                {
                    SqlTra.Rollback();
                }
            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (Sqlconexion.State == ConnectionState.Open)
                {
                    Sqlconexion.Close();
                    Sqlconexion.Dispose();
                }
            }
            return(rpta);
        }
 public static DataTable MostrarDetalle(string textobuscar)
 {
     DIngreso Obj = new DIngreso();
     return Obj.MostrarDetalle(textobuscar);
 }
 //Método BuscarFecha que llama al método BuscarNombre
 //de la clase DIngreso de la CapaDatos
 public static DataTable BuscarFechas(string textobuscar,string textobuscar2)
 {
     DIngreso Obj = new DIngreso();
     return Obj.BuscarFechas(textobuscar,textobuscar2);
 }
 public static string Anular(int idingreso)
 {
     DIngreso Obj = new DIngreso();
     Obj.Idingreso = idingreso;
     return Obj.Anular(Obj);
 }
Example #13
0
        //MÉTODOS

        //MÉTODO INSERTAR
        //Parámetro del tipo: LIst, y va a hacer una instanccia a la clase DDetalle_Ingreso...
        //... lo va recibir como una lista a todos los detalles de ingreso, así va a insertar de este modo...
        //... todo el ingreso y va a insertar uno a uno los detalles que tenga ese ingreso con el segundo...
        //... parámetro que va a ser un objeto del tipo List.
        public string Insertar(DIngreso Ingreso, List <DDetalle_Ingreso> Detalle)
        {
            string        rpta   = "";
            SqlConnection SqlCon = new SqlConnection();

            try
            {
                //Código
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCon.Open();
                //Establecer la trasacción
                //Iniciamos una nueva transacción para que si cada detalle de ingreso sea relacionado...
                //...únicamente con un solo ingreso y esto lo vamos a trabajar mediante la transacción..
                //...mediante el objeto: SqlTra
                SqlTransaction SqlTra = SqlCon.BeginTransaction();
                //Establecer el Comando
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection = SqlCon;
                //Le decimos a éste comando que trabaje con la transacción SqlTra:
                SqlCmd.Transaction = SqlTra;
                SqlCmd.CommandText = "spinsertar_ingreso";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlParameter ParIdingreso = new SqlParameter();
                ParIdingreso.ParameterName = "@idingreso";
                ParIdingreso.SqlDbType     = SqlDbType.Int;
                ParIdingreso.Direction     = ParameterDirection.Output;
                SqlCmd.Parameters.Add(ParIdingreso);

                SqlParameter ParIdtrabajador = new SqlParameter();
                ParIdtrabajador.ParameterName = "@idtrabajador";
                ParIdtrabajador.SqlDbType     = SqlDbType.Int;
                ParIdtrabajador.Value         = Ingreso.Idtrabajador;
                SqlCmd.Parameters.Add(ParIdtrabajador);

                SqlParameter ParIdproveedor = new SqlParameter();
                ParIdproveedor.ParameterName = "@idproveedor";
                ParIdproveedor.SqlDbType     = SqlDbType.Int;
                ParIdproveedor.Value         = Ingreso.Idproveedor;
                SqlCmd.Parameters.Add(ParIdproveedor);


                SqlParameter ParFecha = new SqlParameter();
                ParFecha.ParameterName = "@fecha";
                ParFecha.SqlDbType     = SqlDbType.Date;
                ParFecha.Value         = Ingreso.Fecha;
                SqlCmd.Parameters.Add(ParFecha);

                SqlParameter ParTipo_Comprobante = new SqlParameter();
                ParTipo_Comprobante.ParameterName = "@tipo_comprobante";
                ParTipo_Comprobante.SqlDbType     = SqlDbType.VarChar;
                ParTipo_Comprobante.Size          = 20;
                ParTipo_Comprobante.Value         = Ingreso.Tipo_Comprobante;
                SqlCmd.Parameters.Add(ParTipo_Comprobante);

                SqlParameter ParSerie = new SqlParameter();
                ParSerie.ParameterName = "@serie";
                ParSerie.SqlDbType     = SqlDbType.VarChar;
                ParSerie.Size          = 4;
                ParSerie.Value         = Ingreso.Serie;
                SqlCmd.Parameters.Add(ParSerie);

                SqlParameter ParCorrelativo = new SqlParameter();
                ParCorrelativo.ParameterName = "@correlativo";
                ParCorrelativo.SqlDbType     = SqlDbType.VarChar;
                ParCorrelativo.Size          = 7;
                ParCorrelativo.Value         = Ingreso.Correlativo;
                SqlCmd.Parameters.Add(ParCorrelativo);

                SqlParameter ParIgv = new SqlParameter();
                ParIgv.ParameterName = "@igv";
                ParIgv.SqlDbType     = SqlDbType.Decimal;
                ParIgv.Precision     = 4;
                ParIgv.Scale         = 2;
                ParIgv.Value         = Ingreso.Igv;
                SqlCmd.Parameters.Add(ParIgv);

                SqlParameter ParEstado = new SqlParameter();
                ParEstado.ParameterName = "@estado";
                ParEstado.SqlDbType     = SqlDbType.VarChar;
                ParEstado.Size          = 7;
                ParEstado.Value         = Ingreso.Estado;
                SqlCmd.Parameters.Add(ParEstado);

                //Ejecutamos nuestro comando

                rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "NO se Ingreso el Registro";

                //Escribimos las sentencias para poder insertar los detalles:
                if (rpta.Equals("OK"))
                {
                    //Obtener el código del ingreso generado

                    //De este clase, de la propiedad Idingreso, convertimos el valor que vamos a obtener..
                    //... en este caso SqlCmd. Y qué parámetro? el parámetro @idingreso, que es un parámetro de salida.
                    //... Entonces este valor (value) lo vamos a almacenar en la propiedad Idingreso:
                    this.Idingreso = Convert.ToInt32(SqlCmd.Parameters["@idingreso"].Value);
                    //Vamos a recorrer ese conjunto de detalles que vamos a enviarlos desde al Capa Negocio:
                    //Recorremos detalle por detalle e ir insertándolo en la BD junto con su ingreso específico:
                    foreach (DDetalle_Ingreso det in Detalle)
                    {
                        //Cada detalle que voy recorriendo dónde lo almaceno? en mi objeto: det, que es de la clase...
                        //... DDetelle_Ingreso:
                        //De mi objeto det, su Idingreso, porque éste Idingreso no lo tengo no lo tengo en el detalle...
                        //...porque recién lo he generado, va a ser igual al Idingreso que se me ha devuelto en esta parte...
                        //...porque ya sé qué Idingreso que se ha generado, el identity que se ha generado.
                        det.Idingreso = this.Idingreso;
                        //Llamar al método insertar de la clase DDetalle_Ingreso
                        rpta = det.Insertar(det, ref SqlCon, ref SqlTra);
                        //Establezco una conexión si se pudo insertar o no éste detalle de ingreso:
                        if (!rpta.Equals("OK"))
                        {
                            //Como es un error salgo del bucle:
                            break;
                        }
                    }
                }
                //Si se pudo insertar:
                if (rpta.Equals("OK"))
                {
                    //Decirle a mi variable SqlTra, confirmar la transacción para ingresar el ingreso...
                    //... con su detalle de ingreso que puede ser uno o varios detalles de ingresos:
                    SqlTra.Commit();
                }
                else
                {
                    //Caso contrario negamos la transacción:
                    SqlTra.Rollback();
                }
            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (SqlCon.State == ConnectionState.Open)
                {
                    SqlCon.Close();
                }
            }
            return(rpta);
        }