Top Ad unit 728 × 90

Recientes

recent

Diseño Sistema de Ventas C# - Visual Studio 2013 y Sql Server 2014 (31-41) Tabla Venta

Buen día amigos, en este artículo implementaremos los procedimientos almacenados en sql server 2014 para poder dar mantenimiento a nuestra tabla venta junto con sus detalles de venta, Trabajaremos con triggers para poder actualizar el stock (disminuir el stock cuando se realice una venta, o aumentar el stock cuando se elimine la venta y sus detalles) dependiendo de las ventas realizadas.

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.

Procedimientos almacenados tabla Ingreso y Detalle_Ingreso



--Procedimientos almacenados
--Procedimiento Mostrar Venta
create proc spmostrar_venta
as
SELECT top 100 v.idventa,
(t.apellidos +' '+ t.nombre) as Trabajador,
(c.apellidos + ' ' + c.nombre)  as Cliente,
v.fecha, v.tipo_comprobante,
v.serie, v.correlativo,
v.estado, sum((d.precio_venta*
d.cantidad)-d.descuento) as Total
FROM detalle_venta d INNER JOIN venta v
ON d.idventa = v.idventa
INNER JOIN cliente c
ON v.idcliente = c.idcliente
INNER JOIN trabajador t
ON v.idtrabajador = t.idtrabajador
group by
v.idventa,
t.apellidos +' '+ t.nombre,
c.apellidos+' '+c.nombre,
v.fecha, v.tipo_comprobante,
v.serie, v.correlativo,
v.estado
order by v.idventa desc
go

-- Procedimiento  Buscar venta por fecha
create proc spbuscar_venta_fecha
@textobuscar varchar(50),
@textobuscar2 varchar(50)
as
SELECT v.idventa,
(t.apellidos +' '+ t.nombre) as Trabajador,
(c.apellidos + ' ' + c.nombre)  as Cliente,
v.fecha, v.tipo_comprobante,
v.serie, v.correlativo,
v.estado, sum((d.precio_venta*
d.cantidad)-d.descuento) as Total
FROM detalle_venta d INNER JOIN venta v
ON d.idventa = v.idventa
INNER JOIN cliente c
ON v.idcliente = c.idcliente
INNER JOIN trabajador t
ON v.idtrabajador = t.idtrabajador
group by
v.idventa,
t.apellidos +' '+ t.nombre,
c.apellidos+' '+c.nombre,
v.fecha, v.tipo_comprobante,
v.serie, v.correlativo,
v.estado
having v.fecha>=@textobuscar and v.fecha<=@textobuscar2
go

-- Procedimiento  Insertar venta
create proc spinsertar_venta
@idventa int=null output,
@idtrabajador int,
@idcliente int,
@fecha date,
@tipo_comprobante varchar(20),
@serie varchar(4),
@correlativo varchar(7),
@igv decimal(4,2),
@estado varchar(7)
as
insert into venta(idtrabajador,idcliente,fecha,tipo_comprobante,serie,correlativo,igv,estado)
values (@idtrabajador,@idcliente,@fecha,@tipo_comprobante,@serie,@correlativo,@igv,@estado)
--Obteniendo el codigo autogenerado de la venta
SET @idventa = @@IDENTITY
go

--Procedimiento eliminar venta
create proc speliminar_venta
@idventa int
as
delete from venta
where idventa=@idventa
go

--Procedimiento Insertar detalles de las ventas
create proc spinsertar_detalle_venta
@iddetalle_venta int output,
@idventa int,
@iddetalle_ingreso int,
@cantidad int,
@precio_venta money,
@descuento money
as
insert into detalle_venta (idventa,iddetalle_ingreso,cantidad,
precio_venta,descuento)
values (@idventa,@iddetalle_ingreso,@cantidad,
@precio_venta,@descuento)
Go

--Disparador para restablecer stock
create trigger sprestablecer_stock
on [detalle_venta]
for delete
as
Update di set di.stock_actual=di.stock_actual+dv.cantidad
from detalle_ingreso as di inner join
deleted as dv on di.iddetalle_ingreso=dv.iddetalle_ingreso
go

--Procedimiento almacenado para disminuir stock
create proc spdisminuir_stock
@iddetalle_ingreso int,
@cantidad int
as
update detalle_ingreso set stock_actual=stock_actual-@cantidad
where iddetalle_ingreso=@iddetalle_ingreso
go

--mostrar detalle de las ventas
create proc spmostrar_detalle_venta
@textobuscar int
as
select d.iddetalle_ingreso,a.nombre as Articulo,
d.cantidad,d.precio_venta,d.descuento,
((d.precio_venta*d.cantidad)-d.descuento) as Subtotal
from detalle_venta d inner join detalle_ingreso di
on d.iddetalle_ingreso=di.iddetalle_ingreso
inner join articulo a
on di.idarticulo=a.idarticulo
where d.idventa=@textobuscar
go


--Mostrar Artículos para la venta por nombre
create proc spbuscararticulo_venta_nombre
@textobuscar varchar(50)
as
select d.iddetalle_ingreso,a.Codigo,a.Nombre,c.nombre as Categoria,
p.nombre as Presentacion,d.stock_actual,d.precio_compra,
d.precio_venta,d.fecha_vencimiento
from articulo a inner join categoria c
on a.idcategoria=c.idcategoria
inner join presentacion p
on a.idpresentacion = p.idpresentacion
inner join detalle_ingreso d
on a.idarticulo=d.idarticulo
inner join ingreso i
on i.idingreso=d.idingreso
where a.nombre like @textobuscar + '%'
and d.stock_actual>0
and i.estado<>'ANULADO'
go

--Mostrar Artículos para la venta por Código
create proc spbuscararticulo_venta_codigo
@textobuscar varchar(50)
as
select a.Idarticulo,a.Codigo,a.Nombre,c.nombre as Categoria,
p.nombre as Presentacion,d.stock_actual,d.precio_compra,
d.precio_venta,d.fecha_vencimiento
from articulo a inner join categoria c
on a.idcategoria=c.idcategoria
inner join presentacion p
on a.idpresentacion = p.idpresentacion
inner join detalle_ingreso d
on a.idarticulo=d.idarticulo
inner join ingreso i
on i.idingreso=d.idingreso
where a.codigo=@textobuscar
and d.stock_actual>0
and i.estado<>'ANULADO'
go

-- Procedimiento almacenado para generar el reporte
create proc spreporte_venta
@idventa int
as
SELECT v.idventa,
(t.apellidos +' '+ t.nombre) as Trabajador,
(c.apellidos + ' ' + c.nombre)  as Cliente,
c.direccion,c.telefono,c.num_documento,
v.fecha, v.tipo_comprobante,
v.serie, v.correlativo,
v.estado,a.nombre,v.igv, d.precio_venta,d.cantidad,d.descuento
FROM detalle_venta d inner join detalle_ingreso di
on d.iddetalle_ingreso=di.iddetalle_ingreso
inner join articulo a
on di.idarticulo=a.idarticulo
INNER JOIN venta v
ON d.idventa = v.idventa
INNER JOIN cliente c
ON v.idcliente = c.idcliente
INNER JOIN trabajador t
ON v.idtrabajador = t.idtrabajador
where v.idventa=@idventa
go`

Saludos Imperio, un abrazo a la distancia!

Diseño Sistema de Ventas C# - Visual Studio 2013 y Sql Server 2014 (31-41) Tabla Venta Reviewed by Juan Carlos Arcila Díaz on 17:26 Rating: 5

1 comentario:

All Rights Reserved by www.IncanatoIT.com - Desarrollando Software © 2014 - 2015
Powered By Blogger, Designed by Sweetheme

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

IncanatoIt.com. Con la tecnología de Blogger.