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, List Detalles)
{
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: