SQL Server
SQL Server
SQL Server
go
USE dbFacturationSystem
go
go
go
go
go
go
go
go
--
===================================================================================
==========
-- PROCEDIMIENTOS ALMACENADOS -> PRODUCTO
--
===================================================================================
==========
create procedure sp_listar_producto
as
begin
select
p.IdProducto,
p.Codigo,
c.IdCategoria,c.Descripcion[DesCategoria],
p.Descripcion,
p.PrecioCompra,
p.PrecioVenta,
p.Stock
from PRODUCTO p
inner join CATEGORIA c on c.IdCategoria = p.IdCategoria
order by p.IdProducto desc
end
go
insert into
PRODUCTO(Codigo,IdCategoria,Descripcion,PrecioCompra,PrecioVenta,Stock) values
(@Codigo,@IdCategoria,@Descripcion,@PrecioCompra,@PrecioVenta,@Stock)
end
go
end
go
go
--
===================================================================================
==========
-- PROCEDIMIENTOS ALMACENADOS -> CATEGORIA
--
===================================================================================
==========
end
go
end
go
end
go
go
--
===================================================================================
==========
-- PROCEDIMIENTOS ALMACENADOS -> USUARIO
--
===================================================================================
==========
create procedure sp_listar_usuario
as
begin
select IdUsuario,NombreCompleto,Correo,Clave from USUARIO
end
go
go
end
go
GO
--
===================================================================================
==========
-- PROCEDIMIENTOS ALMACENADOS -> VENTA
--
===================================================================================
==========
BEGIN TRY
BEGIN TRANSACTION
insert into
@venta(TipoPago,NumeroDocumento,DocumentoCliente,NombreCliente,MontoPagoCon,MontoCa
mbio,MontoSubTotal,MontoIGV,MontoTotal)
select
nodo.elemento.value('TipoPago[1]','varchar(50)') as TipoPago,
nodo.elemento.value('NumeroDocumento[1]','varchar(50)') as
NumeroDocumento,
nodo.elemento.value('DocumentoCliente[1]','varchar(50)') as
DocumentoCliente,
nodo.elemento.value('NombreCliente[1]','varchar(50)') as
NombreCliente,
nodo.elemento.value('MontoPagoCon[1]','decimal(10,2)') as
MontoPagoCon,
nodo.elemento.value('MontoCambio[1]','decimal(10,2)') as
MontoCambio,
nodo.elemento.value('MontoSubTotal[1]','decimal(10,2)') as
MontoSubTotal,
nodo.elemento.value('MontoIGV[1]','decimal(10,2)') as MontoIGV,
nodo.elemento.value('MontoTotal[1]','decimal(10,2)') as
MontoTotal
from @Venta_xml.nodes('Venta') nodo(elemento)
--================================================
-- EMPIEZA EL REGISTRO DE LA VENTA
--================================================
declare @identity as table(ID int)
declare @id int = (SELECT isnull(max(IdVenta),0) +1 FROM VENTA)
declare @tempnrodocumento varchar(50) = RIGHT('000000' +
convert(varchar(max),@id),6)
INSERT INTO
VENTA(TipoPago,NumeroDocumento,DocumentoCliente,NombreCliente,MontoPagoCon,MontoCam
bio,MontoSubTotal,MontoIGV,MontoTotal)
output inserted.IdVenta into @identity
select
TipoPago,@tempnrodocumento ,DocumentoCliente,NombreCliente,MontoPagoCon,MontoCambio
,MontoSubTotal,MontoIGV,MontoTotal from @venta
insert into
DETALLE_VENTA(IdVenta,IdProducto,PrecioVenta,Cantidad,Total)
select IdVenta,IdProducto,PrecioVenta,Cantidad,Total from @detalleventa
COMMIT
set @NroDocumento = @tempnrodocumento
END TRY
BEGIN CATCH
ROLLBACK
set @NroDocumento = ''
END CATCH
end
go
--
===================================================================================
==========
-- PROCEDIMIENTOS ALMACENADOS -> REPORTE
--
===================================================================================
==========
select v.TipoPago,v.NumeroDocumento,v.MontoTotal,
--concat(convert(char(10),v.FechaRegistro,103),'
',convert(char(8),v.FechaRegistro,108))[FechaRegistro],
convert(char(10),v.FechaRegistro,103)[FechaRegistro],
p.Descripcion[DesProducto], dv.Cantidad,dv.PrecioVenta,dv.Total
from VENTA v
inner join DETALLE_VENTA dv on v.IdVenta = dv.IdVenta
inner join PRODUCTO p on p.IdProducto = dv.IdProducto
where convert(date, v.FechaRegistro) between @fechaInicio and @fechaFin
end