Diseño Sistema de Ventas C# - Visual Studio 2013 y Sql Server 2014 (27-41) Capa Datos Ingreso
Buen día amigos, En este artículo implementaremos la clase DIngreso en la capa Datos que se comunicará con los procedimientos almacenados de la base de datos; implementaremos dentro de esta clase el método Insertar para insertar los Ingresos a almacén junto con sus detalles de ingresos en lo que especificaremos que artículos están ingresando a almacén, la cantidad de artículos, precio de compra, precio de venta, fecha de producción y fecha de vencimiento, el proveedor encargado de abastecer dichos artículos y el trabajador responsable.
Pueden descargar el paquete del proyecto desarrollado en el curso, la base de datos, los procedimientos almacenados y el sistema completo hasta el Video 41 desde:
Puedes descargar la versión completa del proyecto con todas las funcionalidades terminadas desde:
Pueden seguir el curso completo y aprender a desarrollar un Sistema de Ventas en Csharp.Net utilizando como IDE de desarrollo Visual Studio 2013 y como gestor de Base de datos SQL Server 2014 desde:
No se olviden siempre de Visitar mi canal www.youtube.com/jcarlosad7 para ver los nuevos cursos.
Tabla Ingreso
Capa Datos - Clase DIngreso
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; namespace CapaDatos { public class DIngreso { //Variables private int _Idingreso; private int _Idproveedor; private int _Idtrabajador; private DateTime _Fecha; private string _Tipo_Comprobante; private string _Serie; private string _Correlativo; private decimal _Igv; private string _Estado; //Propiedades public int Idingreso { get { return _Idingreso; } set { _Idingreso = value; } } public int Idproveedor { get { return _Idproveedor; } set { _Idproveedor = value; } } public int Idtrabajador { get { return _Idtrabajador; } set { _Idtrabajador = value; } } public DateTime Fecha { get { return _Fecha; } set { _Fecha=value;} } public string Tipo_Comprobante { get { return _Tipo_Comprobante; } set { _Tipo_Comprobante = value; } } public string Serie { get { return _Serie; } set { _Serie = value; } } public string Correlativo { get { return _Correlativo; } set { _Correlativo = value; } } public decimal Igv { get { return _Igv; } set { _Igv = value; } } public string Estado { get { return _Estado; } set { _Estado = value; } } //Constructores public DIngreso() { } public DIngreso(int idingreso,int idtrabajador,int idproveedor,DateTime fecha,string tipo_comprobante,string serie,string correlativo,decimal igv,string estado) { this.Idingreso = idingreso; this.Idtrabajador = idtrabajador; this.Idproveedor = idproveedor; this.Fecha = fecha; this.Tipo_Comprobante = tipo_comprobante; this.Serie = serie; this.Correlativo = correlativo; this.Igv = igv; this.Estado = estado; } //Métodos public string Insertar(DIngreso Ingreso, ListDetalles) { string rpta = ""; SqlConnection SqlCon = new SqlConnection(); try { //Código SqlCon.ConnectionString = Conexion.Cn; SqlCon.Open(); //Establecer la transacció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; //Parámetros 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.VarChar; 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")) { //Obtenemos el codigo del ingreso que se genero por la base de datos this.Idingreso = Convert.ToInt32(SqlCmd.Parameters["@idingreso"].Value); foreach (DDetalle_Ingreso det in Detalles) { //Establecemos el codigo del ingreso que se autogenero det.Idingreso = this.Idingreso; //Llamamos al metodo insertar de la clase DetalleIngreso //y le pasamos la conexion y la transaccion que debe de usar rpta = det.Insertar(det, ref SqlCon, ref SqlTra); if (!rpta.Equals("OK")) { //Si ocurre un error al insertar un detalle de ingreso salimos del for break; } } } if (rpta.Equals("OK")) { //Se inserto todo los detalles y confirmamos la transaccion SqlTra.Commit(); } else { //Algun detalle no se inserto y negamos la transaccion SqlTra.Rollback(); } } catch (Exception ex) { rpta = ex.Message; } finally { if (SqlCon.State == ConnectionState.Open) SqlCon.Close(); } return rpta; } 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 Ingreso"; } catch (Exception ex) { rpta = ex.Message; } finally { if (SqlCon.State == ConnectionState.Open) SqlCon.Close(); } return rpta; } //Método Mostrar public DataTable Mostrar() { DataTable DtResultado = new DataTable("ingreso"); SqlConnection SqlCon = new SqlConnection(); try { SqlCon.ConnectionString = Conexion.Cn; SqlCommand SqlCmd = new SqlCommand(); SqlCmd.Connection = SqlCon; SqlCmd.CommandText = "spmostrar_ingreso"; SqlCmd.CommandType = CommandType.StoredProcedure; SqlDataAdapter SqlDat = new SqlDataAdapter(SqlCmd); SqlDat.Fill(DtResultado); } catch (Exception ex) { DtResultado = null; } return DtResultado; } //Método BuscarFechas public DataTable BuscarFechas(String TextoBuscar,String TextoBuscar2) { DataTable DtResultado = new DataTable("ingreso"); SqlConnection SqlCon = new SqlConnection(); try { SqlCon.ConnectionString = Conexion.Cn; SqlCommand SqlCmd = new SqlCommand(); SqlCmd.Connection = SqlCon; SqlCmd.CommandText = "spbuscar_ingreso_fecha"; SqlCmd.CommandType = CommandType.StoredProcedure; SqlParameter ParTextoBuscar = new SqlParameter(); ParTextoBuscar.ParameterName = "@textobuscar"; ParTextoBuscar.SqlDbType = SqlDbType.VarChar; ParTextoBuscar.Size = 50; ParTextoBuscar.Value = TextoBuscar; SqlCmd.Parameters.Add(ParTextoBuscar); SqlParameter ParTextoBuscar2 = new SqlParameter(); ParTextoBuscar2.ParameterName = "@textobuscar2"; ParTextoBuscar2.SqlDbType = SqlDbType.VarChar; ParTextoBuscar2.Size = 50; ParTextoBuscar2.Value = TextoBuscar2; SqlCmd.Parameters.Add(ParTextoBuscar2); SqlDataAdapter SqlDat = new SqlDataAdapter(SqlCmd); SqlDat.Fill(DtResultado); } catch (Exception ex) { DtResultado = null; } return DtResultado; } //Método BuscarFechas public DataTable MostrarDetalle(String TextoBuscar) { DataTable DtResultado = new DataTable("detalle_ingreso"); SqlConnection SqlCon = new SqlConnection(); try { SqlCon.ConnectionString = Conexion.Cn; SqlCommand SqlCmd = new SqlCommand(); SqlCmd.Connection = SqlCon; SqlCmd.CommandText = "spmostrar_detalle_ingreso"; SqlCmd.CommandType = CommandType.StoredProcedure; SqlParameter ParTextoBuscar = new SqlParameter(); ParTextoBuscar.ParameterName = "@textobuscar"; ParTextoBuscar.SqlDbType = SqlDbType.VarChar; ParTextoBuscar.Size = 50; ParTextoBuscar.Value = TextoBuscar; SqlCmd.Parameters.Add(ParTextoBuscar); SqlDataAdapter SqlDat = new SqlDataAdapter(SqlCmd); SqlDat.Fill(DtResultado); } catch (Exception ex) { DtResultado = null; } return DtResultado; } } }
Video 27: Sistema de Ventas C# - Visual Studio
2013 - Sql Server 2014 (27-34) DIngreso Métodos
Saludos Imperio un abrazo a la distancia!
Diseño Sistema de Ventas C# - Visual Studio 2013 y Sql Server 2014 (27-41) Capa Datos Ingreso
Reviewed by IncanatoIt-ad
on
20:24
Rating:
No hay comentarios: