Trabajo Final
Trabajo Final
Trabajo Final
Presentado por:
Docente:
2. Capa Entidades_______________________________________________________11
2.1. Detalle Venta____________________________________________________________11
2.2. Venta___________________________________________________________________12
3. Capa Presentación____________________________________________________13
3.1. FrmDetalleVenta_________________________________________________________13
3.2. FrmVenta_______________________________________________________________17
1
Estructura del Sistema de venta en SQL Server
2
Procedimientos Almacenados de Ventas y Detalle
Venta en SQL Server
a) FDetalleVenta_Actualizar
b) FDetalleVenta_Insertar
c) FDetalleVenta_Eliminar
3
d) FDetalleVenta_AumentarStock
e) FDetalleVenta_DisminuirStock
f) FDetalleVenta_GetAll
where tblDetalleVenta.VentaId=@VentaId
END
4
g) FEditarDetalleVenta_Set
@DetalledVentaId int,
@PrecioUnitario decimal(18,4)
as
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select @@ROWCOUNT
END
Reporte de Venta
5
h) FVenta
CREATE PROCEDURE usp_Data_FVenta_Actualizar
@Id int,
@ClienteId int,
@FechaVenta DateTime,
@NumeroDocumento varchar(50),
@TipoDocumento varchar(100)
AS
BEGIN
Update tblVenta set
ClienteId=@ClienteId,FechaVenta=@FechaVenta,NumeroDocumento=@NumeroDocumento,Tipo
Documento=@TipoDocumento where Id=@Id
------------------------------------------------
AS
BEGIN
SELECT dbo.tblVenta.Id, dbo.tblVenta.ClienteId,
dbo.tblVenta.FechaVenta, dbo.tblVenta.NumeroDocumento,
dbo.tblVenta.TipoDocumento, dbo.tblCliente.Nombre, dbo.tblCliente.Apellido
FROM dbo.tblVenta INNER JOIN
dbo.tblCliente ON dbo.tblVenta.ClienteId =
dbo.tblCliente.Id
END
------------------------------------------------
6
Programación Orientada a Objeto
1. Capa Datos
1.1.FDetalleVenta
namespace SistemaVenta_TECnite.Datos
{
public static class FDetalleVenta
{
public static DataSet GetAll(int ventaId)
{
SqlParameter[] dbParams = new SqlParameter[]
{
FDBHelper.MakeParam("@VentaId", SqlDbType.Int,0,ventaId),
};
return FDBHelper.ExecuteDataSet("usp_Data_FDetalleVenta_GetAll",
dbParams);
}
public static int Insertar(DetalleVenta detalleventa)
{
SqlParameter[] dbParams = new SqlParameter[]
{
FDBHelper.MakeParam("@VentaId",
SqlDbType.Int,0,detalleventa.Venta.Id),
FDBHelper.MakeParam("@ProductoId",
SqlDbType.Int,0,detalleventa.Producto.Id),
FDBHelper.MakeParam("@Cantidad",
SqlDbType.Decimal,0,detalleventa.Cantidad),
FDBHelper.MakeParam("@PrecioUnitario",
SqlDbType.Decimal,0,detalleventa.PrecioUnitario)
};
return
Convert.ToInt32(FDBHelper.ExecuteScalar("usp_Data_FDetalleVenta_Insertar",
dbParams));
//}
public static int Eliminarr(DetalleVenta detalleventa)
7
{
SqlParameter[] dbParams = new SqlParameter[]
{
FDBHelper.MakeParam("@Id", SqlDbType.Int,0,detalleventa.Id),
};
return
Convert.ToInt32(FDBHelper.ExecuteScalar("usp_Data_FDetalleVenta_Eliminar",
dbParams));
};
return
Convert.ToInt32(FDBHelper.ExecuteScalar("usp_Data_FDetalleVenta_DisminuirStock",
dbParams));
}
internal static int AumentarStock(DetalleVenta detVenta)
{
SqlParameter[] dbParams = new SqlParameter[]
{
FDBHelper.MakeParam("@ProductoId",
SqlDbType.Int,0,detVenta.Producto.Id),
FDBHelper.MakeParam("@Cantidad",
SqlDbType.Decimal,0,detVenta.Cantidad),
};
return
Convert.ToInt32(FDBHelper.ExecuteScalar("usp_Data_FDetalleVenta_AumentarStock",
dbParams));
}
}
}
8
1.2. FVenta
namespace SistemaVenta_TECnite.Datos
{
public static class FVenta
{
public static DataSet GetAll()
{
SqlParameter[] dbParams = new SqlParameter[]
{
};
return FDBHelper.ExecuteDataSet("usp_Data_FVenta_GetAll", dbParams);
}
public static int Insertar(Venta venta)
{
SqlParameter[] dbParams = new SqlParameter[]
{
FDBHelper.MakeParam("@ClienteId",
SqlDbType.Int,0,venta.Cliente.Id),
FDBHelper.MakeParam("@FechaVenta",
SqlDbType.Date,0,venta.FechaVenta),
FDBHelper.MakeParam("@NumeroDocumento",
SqlDbType.VarChar,0,venta.NumeroDocumento),
FDBHelper.MakeParam("@TipoDocumento",
SqlDbType.VarChar,0,venta.TipoDocumento)
};
return
Convert.ToInt32(FDBHelper.ExecuteScalar("usp_Data_FVenta_Insertar", dbParams));
}
public static int Eliminarr(Venta venta)
{
SqlParameter[] dbParams = new SqlParameter[]
{
FDBHelper.MakeParam("@Id", SqlDbType.Int,0,venta.Id),
};
return
Convert.ToInt32(FDBHelper.ExecuteScalar("usp_Data_FVenta_Eliminar", dbParams));
9
}
}
}
2. Capa Entidades
2.1. Detalle Venta
public class DetalleVenta
{
private int _id;
private Venta _venta;
private Producto _producto;
private double _cantidad;
private double _precioUnitario;
public int Id
{
get { return _id; }
set { _id = value; }
}
public Venta Venta
{
get { return _venta; }
set { _venta = value; }
}
public Producto Producto
{
get { return _producto; }
set { _producto = value; }
}
public double Cantidad
{
get { return _cantidad; }
set { _cantidad = value; }
}
public double PrecioUnitario
{
get { return _precioUnitario; }
set { _precioUnitario = value; }
}
public DetalleVenta()
{
_producto = new Producto();
_venta = new Venta();
}
10
2.2. Venta
public class Venta
{
private int _id;
private Cliente _cliente;
private DateTime _fechaVenta;
private string _numeroDocumento;
private string _tipoDocumento;
public int Id
{
get { return _id; }
set { _id = value; }
}
public Cliente Cliente
{
get { return _cliente; }
set { _cliente = value; }
}
public DateTime FechaVenta
{
get { return _fechaVenta; }
set { _fechaVenta = value; }
}
public string NumeroDocumento
{
get { return _numeroDocumento; }
set { _numeroDocumento = value; }
}
public string TipoDocumento
{
get { return _tipoDocumento; }
set { _tipoDocumento = value; }
}
public Venta()
{
_cliente = new Cliente();
}
}
11
3. Capa Presentación
3.1. FrmDetalleVenta
namespace SistemaVenta_TECnite.Presentacion
{
public partial class FrmDetalleVenta : Form
{
private static DataTable dt = new DataTable();
private static FrmDetalleVenta _instancia=null;
public FrmDetalleVenta()
{
InitializeComponent();
}
return _instancia;
if (dt.Rows.Count > 0)
{
lblDatosNoEncontrados.Visible = false;
//dgv_CellClick(null, null);
}
else
{
lblDatosNoEncontrados.Visible = true;
}
//MostrarGuardarCancelar(false);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + ex.StackTrace);
}
12
}
if (sResultado == "")
{
if (iDetVentaId > 0)
{
FrmDetalleVenta_Load(null,null);
FDetalleVenta.DisminuirStock(detVenta);
MessageBox.Show("El producto se agrego correctamente");
Limpiar();
}
else
{
MessageBox.Show("El producto no se pudo agregar intente
nuevamente");
}
}
else
{
13
MessageBox.Show(sResultado,"Error",MessageBoxButtons.OK,MessageBoxIcon.Informatio
n);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + ex.StackTrace);
}
}
return Resultado;
}
(DataGridViewCheckBoxCell)dgvVenta.Rows[e.RowIndex].Cells["Eliminar"];
chkEliminar.Value = !Convert.ToBoolean(chkEliminar.Value);
}
}
14
{
DetalleVenta detVenta = new DetalleVenta();
detVenta.Producto.Id =
Convert.ToInt32(row.Cells["ProductoId"].Value);
detVenta.Cantidad =
Convert.ToInt32(row.Cells["Cantidad"].Value);
detVenta.Id = Convert.ToInt32(row.Cells["Id"].Value);
if (FDetalleVenta.Eliminarr(detVenta) > 0)
{
if (FDetalleVenta.AumentarStock(detVenta) != 1)
{
MessageBox.Show("No se pudo actualizar el
stock", "Eliminacion de Producto", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
else
{
MessageBox.Show("El Producto no pudo ser
quitado de la venta", "Eliminacion de Producto", MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
}
}
FrmDetalleVenta_Load(null, null);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + ex.StackTrace);
}
}
15
3.2. FrmVenta
namespace SistemaVenta_TECnite.Presentacion
{
public partial class FrmVenta : Form
{
private static DataTable dt = new DataTable();
private static FrmVenta _instancia = null;
public FrmVenta()
{
InitializeComponent();
}
public static FrmVenta GetInscance()
{
if (_instancia == null)
_instancia = new FrmVenta();
return _instancia;
if (dt.Rows.Count > 0)
{
lblDatosNoEncontrados.Visible = false;
dgvVenta_CellClick(null, null);
}
else
{
lblDatosNoEncontrados.Visible = true;
}
MostrarGuardarCancelar(false);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + ex.StackTrace);
}
}
public void MostrarGuardarCancelar(bool b)
{
btnGuardar.Visible = b;
btnCancelar.Visible = b;
btnbuscarcliente.Visible = b;
btnNuevo.Visible = !b;
btnEditar.Visible = !b;
dgvVenta.Enabled = !b;
txtFecha.Enabled = b;
cmbTipoDoc.Enabled = b;
txtNumeroDocumento.Enabled = b;
16
}
private void btnCancelar_Click(object sender, EventArgs e)
{
MostrarGuardarCancelar(false);
dgvVenta_CellClick(null, null);
}
}
public string ValidarDatos()
{
string Resultado = "";
if (txtClienteId.Text == "")
{
Resultado = Resultado + "Cliente \n";
}
if (txtNumeroDocumento.Text == "")
{
Resultado = Resultado + "Numero de Documento \n";
}
return Resultado;
}
if (sResultado == "")
{
if (txtId.Text == "")
{
venta.Cliente.Nombre = txtClienteNombre.Text;
}
else
{
Venta venta = new Venta();
venta.Id = Convert.ToInt32(txtId.Text);
17
venta.Cliente.Id = Convert.ToInt32(txtClienteId.Text);
venta.FechaVenta = txtFecha.Value;
venta.TipoDocumento = cmbTipoDoc.Text;
venta.NumeroDocumento = txtNumeroDocumento.Text;
if (FVenta.Actualizar(venta) == 1)
{
MessageBox.Show("Datos Modificados correctamente");
FrmVenta_Load(null, null);
}
}
}
else
{
MessageBox.Show("Faltan cargar Datos: \n" + sResultado);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + ex.StackTrace);
}
}
dgvVenta.DataSource = dv;
if (dv.Count == 0)
{
lblDatosNoEncontrados.Visible = true;
}
18
else
{
lblDatosNoEncontrados.Visible = false;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + ex.StackTrace);
}
}
19
}
venta.Id =
Convert.ToInt32(dgvVenta.CurrentRow.Cells["Id"].Value.ToString());
venta.Cliente.Id =
Convert.ToInt32(dgvVenta.CurrentRow.Cells["ClienteId"].Value.ToString());
venta.Cliente.Nombre =
dgvVenta.CurrentRow.Cells["Nombre"].Value.ToString() + " " +
dgvVenta.CurrentRow.Cells["Apellido"].Value.ToString();
venta.FechaVenta =
Convert.ToDateTime(dgvVenta.CurrentRow.Cells["FechaVenta"].Value.ToString());
venta.TipoDocumento =
dgvVenta.CurrentRow.Cells["TipoDocumento"].Value.ToString();
venta.NumeroDocumento =
dgvVenta.CurrentRow.Cells["NumeroDocumento"].Value.ToString();
CargarDetalle(venta);
}
}
20
GENERA EL REPORTE ASI COMO SE MUESTRA
EN ESTA IMAGEN
21