Está en la página 1de 43

--***************************+1-inventario

--agregar a plantillas: farmInventarioConteo.rpt, farmInventarioGeneral.rpt,


farmInventarioDetallado.rpt
-- sighEntidades->enumerados solo 'debb-04/10/2017
-- todo el formulario "farmInventario"
-- todo el control "ucFarmaciaItemsInventario"
-- todo el formulario "rCrystalInventario"
-- comun->DoFarmInventario
-- comun->DofarmInventarioCabecera
-- comun ->doInventarioDetalle
-- datos->FarmInventario
-- datos->farmInventarioCabecera
-- datos ->InventarioDetalle
-- SIGHNEGOCIOS solo 'debb-04/10/2017
-- SIGHNEGOCIOS ->reglasDeFarmacia->comentar 'debb-04/10/2017ant
-- HerrRegeneraSaldos 'debb-04/10/2017

--procedimientos
USE SIGH
GO

CREATE TABLE [dbo].[farmTipoInventario](


[idTipoInventario] [int] NOT NULL,
[Descripcion] [varchar](20) NOT NULL,
[TipoInventarioSismed] [varchar](1) NOT NULL,
CONSTRAINT [PK_farmTipoInventario] PRIMARY KEY CLUSTERED
(
[idTipoInventario] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT [dbo].[farmTipoInventario] ([idTipoInventario], [Descripcion],
[TipoInventarioSismed]) VALUES (1, N'Manual', N'M')
INSERT [dbo].[farmTipoInventario] ([idTipoInventario], [Descripcion],
[TipoInventarioSismed]) VALUES (2, N'Autom�tico', N'A')

alter table farmInventario add idTipoInventario int null


GO
alter table farmInventarioCabecera add CantidadSaldo int NULL
GO
alter table farmInventarioCabecera add CantidadFaltante int NULL
GO
alter table farmInventarioCabecera add CantidadSobrante int NULL
GO
alter table farmInventarioDetalle add CantidadSaldo int NULL
GO
alter table farmInventarioDetalle add CantidadFaltante int NULL
GO
alter table farmInventarioDetalle add CantidadSobrante int NULL
GO
alter table farmInventarioDetalle add EsHistoricoSaldo int NULL
GO
ALTER procedure [dbo].[farmInventarioAgregar]
(@idInventario int output,
@idAlmacen int,
@numeroInventario VarChar(4),
@FechaCierre DateTime,
@FechaCreacion DateTime,
@FechaModificacion DateTime,
@idEstadoInventario int,
@idUsuario int,
@idTipoInventario int,
@IdUsuarioAuditoria int)
as insert into farmInventario (
idAlmacen,numeroInventario,FechaCierre,FechaCreacion,FechaModificacion,idEstadoInve
ntario,idUsuario,idTipoInventario) values (
@idAlmacen,@numeroInventario,@FechaCierre,@FechaCreacion,@FechaModificacion,@idEsta
doInventario,@idUsuario,@idTipoInventario)
set @idInventario = @@identity
go

ALTER procedure [dbo].[farmInventarioModificar]


(@idInventario int,
@idAlmacen int,
@numeroInventario VarChar(4),
@FechaCierre DateTime,
@FechaCreacion DateTime,
@FechaModificacion DateTime,
@idEstadoInventario int,
@idUsuario int,
@idTipoInventario int,
@IdUsuarioAuditoria int)
as update farmInventario
set
idAlmacen = @idAlmacen,
numeroInventario = @numeroInventario,
FechaCierre = @FechaCierre,
FechaCreacion = @FechaCreacion,
FechaModificacion = @FechaModificacion,
idEstadoInventario = @idEstadoInventario,
idUsuario = @idUsuario,
idTipoInventario=@idTipoInventario
where idInventario = @idInventario
GO

ALTER procedure [dbo].[farmInventarioCabeceraAgregar]


(@idInventario int,
@idProducto int,
@Cantidad int,
@Precio Money,
@Total Money,
@CantidadSaldo int,
@CantidadFaltante int,
@CantidadSobrante int,
@IdUsuarioAuditoria int)
as insert into farmInventarioCabecera
(idInventario,idProducto,Cantidad,Precio,Total,CantidadSaldo,CantidadFaltante,Canti
dadSobrante) values
(@idInventario,@idProducto,@Cantidad,@Precio,@Total,@CantidadSaldo,@CantidadFaltant
e,@CantidadSobrante)
go

ALTER procedure [dbo].[farmInventarioCabeceraModificar]


(@idInventario int,
@idProducto int,
@Cantidad int,
@Precio Money,
@Total Money,
@CantidadSaldo int,
@CantidadFaltante int,
@CantidadSobrante int,
@IdUsuarioAuditoria int)
as update farmInventarioCabecera
set
idProducto = @idProducto,
Cantidad = @Cantidad,
Precio = @Precio,
Total = @Total,
CantidadSaldo=@CantidadSaldo,
CantidadFaltante=@CantidadFaltante,
CantidadSobrante=@CantidadSobrante
where idInventario = @idInventario
go

ALTER procedure [dbo].[farmInventarioDetalleAgregar]


(@idInventario int,
@idProducto int,
@Lote VarChar(15),
@FechaVencimiento DateTime,
@Cantidad int,
@Precio Money,
@RegistroSanitario VarChar(50),
@idTipoSalidaBienInsumo int,
@CantidadSaldo int,
@CantidadFaltante int,
@CantidadSobrante int,
@EsHistoricoSaldo int,
@IdUsuarioAuditoria int)
as insert into farmInventarioDetalle
(idInventario,idProducto,Lote,FechaVencimiento,Cantidad,Precio,RegistroSanitario,id
TipoSalidaBienInsumo,CantidadSaldo,CantidadFaltante,CantidadSobrante,EsHistoricoSal
do) values
(@idInventario,@idProducto,@Lote,@FechaVencimiento,@Cantidad,@Precio,@RegistroSanit
ario,@idTipoSalidaBienInsumo,@CantidadSaldo,@CantidadFaltante,@CantidadSobrante,@Es
HistoricoSaldo)
go

ALTER procedure [dbo].[farmInventarioDetalleModificar]


(@idInventario int,
@idProducto int,
@Lote VarChar(15),
@FechaVencimiento DateTime,
@Cantidad int,
@Precio Money,
@RegistroSanitario VarChar(50),
@idTipoSalidaBienInsumo int,
@CantidadSaldo int,
@CantidadFaltante int,
@CantidadSobrante int,
@EsHistoricoSaldo int,
@IdUsuarioAuditoria int)
as update farmInventarioDetalle
set
idProducto = @idProducto,
Lote = @Lote,
FechaVencimiento = @FechaVencimiento,
Cantidad = @Cantidad,
Precio = @Precio,
RegistroSanitario = @RegistroSanitario,
idTipoSalidaBienInsumo=@idTipoSalidaBienInsumo,
CantidadSaldo=@CantidadSaldo,
CantidadFaltante=@CantidadFaltante,
CantidadSobrante=@CantidadSobrante,
EsHistoricoSaldo=@EsHistoricoSaldo
where idInventario = @idInventario
go

drop PROCEDURE [dbo].[FactCatalogoBienesInsumosHospXfiltro]


go
create PROCEDURE [dbo].[FactCatalogoBienesInsumosHospXfiltro]
(@Filtro Varchar (500))
AS
DECLARE @SQL AS VARCHAR(2000)
SET @SQL = 'select * from FactCatalogoBienesInsumosHosp where ' + @Filtro
EXECUTE (@SQL)
go

drop PROCEDURE [dbo].[farmInventarioDetalleDevuelveProductosLotesPorId]


go
create PROCEDURE [dbo].[farmInventarioDetalleDevuelveProductosLotesPorId]
(
@lnIdInventario int
)
AS
SELECT *
FROM farmInventarioDetalle
WHERE idInventario=@lnIdInventario
go

DROP PROCEDURE [dbo].[farmTipoInventarioSeleccionarTodos]


GO
create PROCEDURE [dbo].[farmTipoInventarioSeleccionarTodos]
AS
select * from farmTipoInventario order by descripcion
go

DROP procedure [dbo].[farmInventarioSeleccionarPorIdAlmacen]


GO
CREATE procedure [dbo].[farmInventarioSeleccionarPorIdAlmacen]
(@idAlmacen int)
as select * from farmInventario
where idAlmacen = @idAlmacen
GO

DROP PROCEDURE [dbo].[ExportaPreciosSismedRegSant]


GO
CREATE PROCEDURE [dbo].[ExportaPreciosSismedRegSant]
(
@idProducto as int
)
AS

SELECT TOP 1
dbo.farmMovimientoDetalle.RegistroSanitario,dbo.farmMovimiento.fechaCreacion
FROM dbo.farmMovimientoDetalle INNER JOIN
dbo.farmMovimiento ON dbo.farmMovimientoDetalle.MovNumero =
dbo.farmMovimiento.MovNumero AND
dbo.farmMovimientoDetalle.MovTipo = dbo.farmMovimiento.MovTipo
WHERE (dbo.farmMovimiento.idEstadoMovimiento = 1)
AND (dbo.farmMovimientoDetalle.idProducto = @idProducto)
AND (dbo.farmMovimientoDetalle.MovTipo = 'E')
AND (NOT (dbo.farmMovimientoDetalle.RegistroSanitario IS NULL))
ORDER BY dbo.farmMovimiento.fechaCreacion DESC
GO

DROP procedure [dbo].[AuditoriaPorTablaFechas]


GO
CREATE procedure [dbo].[AuditoriaPorTablaFechas]
(
@tabla varchar(50),
@FechaInicio datetime,
@FechaFin datetime
)
AS
select * from auditoria where tabla=@tabla and (FechaHora BETWEEN @FechaInicio and
@FechaFin)
GO

DROP procedure [dbo].[farmMovimientoSeleccionarPorIdAlmacenDestino]


GO
CREATE procedure [dbo].[farmMovimientoSeleccionarPorIdAlmacenDestino]
(
@idAlmacenDestino int
)
as
select * from dbo.FarmMovimiento where
dbo.farmMovimiento.idAlmacenDestino=@idAlmacenDestino
GO

drop PROCEDURE [dbo].[LlenaDataComboTipoSalidaBienSegunAlmacen]


go
create PROCEDURE [dbo].[LlenaDataComboTipoSalidaBienSegunAlmacen]
(@idAlmacen Integer)
AS
select * from farmAlmacen
where idAlmacen=@idAlmacen
go

drop PROCEDURE [dbo].[FactCatalogoBienesInsumosSeleccionarPorCodigo]


go
create PROCEDURE [dbo].[FactCatalogoBienesInsumosSeleccionarPorCodigo]
(
@lcFiltro varchar(1000)
)
AS
DECLARE @SQL AS VARCHAR(2000)

SET @SQL = 'select FactCatalogoBienesInsumos.IdProducto,


FactCatalogoBienesInsumos.Codigo, FactCatalogoBienesInsumos.Nombre as
nombreProducto,
FactCatalogoBienesInsumosHosp.PrecioUnitario ,
FactCatalogoBienesInsumosHosp.Activo,
FactCatalogoBienesInsumos.idTipoSalidaBienInsumo
,FactCatalogoBienesInsumos.TipoProducto,
FactCatalogoBienesInsumos.esPaquete
From
(FactCatalogoBienesInsumos left join FactCatalogoBienesInsumosHosp
on FactCatalogoBienesInsumos.IdProducto =
FactCatalogoBienesInsumosHosp.IdProducto)
left join FactPuntosCargaBienesInsumos
on FactCatalogoBienesInsumos.IdSubGrupoFarmacologico =
FactPuntosCargaBienesInsumos.IdSubGrupoFarmacologico
where FactCatalogoBienesInsumosHosp.Activo = 1 '+@lcFiltro
EXECUTE (@SQL)
go

drop procedure [dbo].[FactCatalogoBienesInsumosSeleccionarPorId]


go
create procedure [dbo].[FactCatalogoBienesInsumosSeleccionarPorId]
(@IdProducto int )
as select * from FactCatalogoBienesInsumos
where IdProducto = @IdProducto
go

DROP PROCEDURE [dbo].[FarmInventarioSeleccionarXdocumentoGeneral]


GO
CREATE PROCEDURE [dbo].[FarmInventarioSeleccionarXdocumentoGeneral]
(@Documento Varchar(20) , @lnIdAlmacenDestino int)
AS
SELECT dbo.farmInventario.numeroInventario AS movNumero, '' AS movTipo,
dbo.farmInventarioDetalle.idProducto, dbo.farmInventarioDetalle.Lote,
dbo.farmInventarioDetalle.FechaVencimiento, 0 AS item,
dbo.farmInventarioDetalle.Cantidad, dbo.farmInventarioDetalle.Precio,
dbo.farmInventarioDetalle.Precio *
dbo.farmInventarioDetalle.Cantidad AS total,
dbo.farmInventarioDetalle.RegistroSanitario,
dbo.FactCatalogoBienesInsumos.Codigo,
dbo.FactCatalogoBienesInsumos.Nombre, dbo.FactCatalogoBienesInsumos.Presentacion,
dbo.farmInventario.idAlmacen,
(dbo.farmInventarioDetalle.Cantidad * dbo.farmInventarioDetalle.Precio) as
Totalactual, dbo.farmInventarioDetalle.CantidadSaldo,
dbo.farmInventarioDetalle.CantidadFaltante,
dbo.farmInventarioDetalle.CantidadSobrante,
dbo.FactCatalogoBienesInsumos.FormaFarmaceutica
FROM dbo.farmInventarioDetalle LEFT OUTER JOIN
dbo.farmInventario ON dbo.farmInventarioDetalle.idInventario
= dbo.farmInventario.idInventario LEFT OUTER JOIN
dbo.FactCatalogoBienesInsumos ON
dbo.farmInventarioDetalle.idProducto = dbo.FactCatalogoBienesInsumos.IdProducto
WHERE dbo.farmInventario.numeroInventario=@Documento and
idAlmacen=@lnIdAlmacenDestino
ORDER BY dbo.FactCatalogoBienesInsumos.Nombre
go
DROP PROCEDURE [dbo].[farmInventarioDevuelveListaInventarios]
GO
create PROCEDURE [dbo].[farmInventarioDevuelveListaInventarios]
AS
SELECT dbo.farmInventario.idInventario, dbo.farmInventario.numeroInventario,
dbo.farmAlmacen.descripcion,
dbo.FarmInventario.FechaCreacion ,
dbo.farmEstadosInventario.Estado,dbo.farmInventario.IdEstadoInventario
FROM dbo.farmInventario LEFT OUTER JOIN dbo.farmEstadosInventario
ON dbo.farmInventario.idEstadoInventario =
dbo.farmEstadosInventario.idEstadoInventario LEFT OUTER JOIN
dbo.farmAlmacen ON dbo.farmInventario.idAlmacen =
dbo.farmAlmacen.idAlmacen
order by dbo.farmInventario.idinventario desc
go

drop PROCEDURE [dbo].[farmInventarioCabeceraDevuelveProductosPorId]


go
create PROCEDURE [dbo].[farmInventarioCabeceraDevuelveProductosPorId]
(
@lnIdInventario int
)
AS

SELECT dbo.farmInventarioCabecera.*, dbo.FactCatalogoBienesInsumos.Codigo,


dbo.FactCatalogoBienesInsumos.Nombre AS NombreProducto,
dbo.FactCatalogoBienesInsumos.idTipoSalidaBienInsumo,
0
FROM dbo.farmInventarioCabecera LEFT OUTER JOIN dbo.FactCatalogoBienesInsumos
ON dbo.farmInventarioCabecera.idProducto = dbo.FactCatalogoBienesInsumos.IdProducto
WHERE dbo.farmInventarioCabecera.idInventario=@lnIdInventario
go

drop PROCEDURE [dbo].[LlenaDataComboTipoSalidaBienSegunAlmacen]


go
create PROCEDURE [dbo].[LlenaDataComboTipoSalidaBienSegunAlmacen]
(@idAlmacen Integer)
AS
select * from farmAlmacen
where idAlmacen=@idAlmacen
go

drop procedure [dbo].[farmMovimientoSeleccionarPorIdAlmacenDestino]


gO
create procedure [dbo].[farmMovimientoSeleccionarPorIdAlmacenDestino]
(
@idAlmacenDestino int
)
as
select * from dbo.FarmMovimiento where
dbo.farmMovimiento.idAlmacenDestino=@idAlmacenDestino
go

drop procedure [dbo].[AuditoriaPorTablaFechas]


go
create procedure [dbo].[AuditoriaPorTablaFechas]
(
@tabla varchar(50),
@FechaInicio datetime,
@FechaFin datetime
)
AS
select * from auditoria where tabla=@tabla and (FechaHora BETWEEN @FechaInicio and
@FechaFin)
go

drop PROCEDURE [dbo].[FactCatalogoBienesInsumosHospXfiltro]


go
create PROCEDURE [dbo].[FactCatalogoBienesInsumosHospXfiltro]
(@Filtro Varchar (500))
AS
DECLARE @SQL AS VARCHAR(2000)
SET @SQL = 'select * from FactCatalogoBienesInsumosHosp where ' + @Filtro
EXECUTE (@SQL)
go

drop PROCEDURE [dbo].[ExportaPreciosSismedRegSant]


go
create PROCEDURE [dbo].[ExportaPreciosSismedRegSant]
(
@idProducto as int
)
AS

SELECT TOP 1
dbo.farmMovimientoDetalle.RegistroSanitario,dbo.farmMovimiento.fechaCreacion
FROM dbo.farmMovimientoDetalle INNER JOIN
dbo.farmMovimiento ON dbo.farmMovimientoDetalle.MovNumero =
dbo.farmMovimiento.MovNumero AND
dbo.farmMovimientoDetalle.MovTipo = dbo.farmMovimiento.MovTipo
WHERE (dbo.farmMovimiento.idEstadoMovimiento = 1)
AND (dbo.farmMovimientoDetalle.idProducto = @idProducto)
AND (dbo.farmMovimientoDetalle.MovTipo = 'E')
AND (NOT (dbo.farmMovimientoDetalle.RegistroSanitario IS NULL))
ORDER BY dbo.farmMovimiento.fechaCreacion DESC
GO

drop PROCEDURE [dbo].[ConsultaRecetaCabeceraXIdPuntoCarga]


go
create PROCEDURE [dbo].[ConsultaRecetaCabeceraXIdPuntoCarga]
(@DocumentoDespacho VarChar (20))
AS
SELECT dbo.RecetaCabecera.*
FROM dbo.RecetaCabecera
where dbo.RecetaCabecera.idPuntoCarga=5 and
ltrim(dbo.Recetacabecera.DocumentoDespacho)=@DocumentoDespacho
GO

--al elegir item, no pasa a REGISTRO SANITARIO

--segundo inventario,no pide Farmacia a regenrar saldos


--despues del inventario "farmacia central" con saldos=0, hacer Nota Salida
03601-flufenazina.... por 5432
-- hacer nota ingreso 02004-
clonazep.... por 8456
-- hacer nota ingreso
18373-escitalo.... por 1090
-- hacer nota ingreso
03624-escitalo.... por 8775
-- hacer nota ingreso
04704-metil....... por 3000
-- hacer nota ingreso
28247-metilf...... por 60
-- hacer nota ingreso
05141-olanzapi.... por 7

--**************************2-regenera saldos
use sigh
go
alter table farmAlmacen add regenerarDias varchar(7) null
go
alter table farmAlmacen add regenerarHora varchar(5) null
go
alter table farmAlmacen add regenerarEstado varchar(7) null
go
update farmAlmacen set regenerarDias=' '
go
update farmAlmacen set regenerarDias='1234567' where idTipoLocales in ('A','F')
go

--mdw->procesos todo el formulario


--herrRegeneraSaldos todo el formulario
--FarmNotaIngreso solo debb-11/10/2017
--FarmNotaSalida solo debb-11/10/2017
--FarmIntervencionS solo debb-11/10/2017
--FarmVentas solo debb-11/10/2017

--*******************************3-exporta precios sismed


-- HerrRegeneraSaldos todo el formulario
-- expPrec.dbf en archivos
-- sighnegocios->reglasFarmacia solo debb-10/10/2017
-- catalogo->catalogobienessolofarmacia solo debb-10/10/2017
-- catalogo->CatalogoBaseBienesEInsumosDetalle solo debb-10/10/2017
use sigh
go

if not exists (select * from Parametros where idParametro=350)


insert into Parametros(IdParametro,Tipo,Codigo,ValorTexto,Descripcion) VALUES
(350,'FARMACIA','','PLMLKhoVmcbOLEXrQ6RZjmRm5kkC0sFYdw+1wN7WzaY=','CLV SISMED2')
go

CREATE TABLE [dbo].[farmHistPrecio](


[idHistPrecio] [int] IDENTITY(1,1) NOT NULL,
[idProducto] [int] NOT NULL,
[fecha] [datetime] NOT NULL,
[PrecioCompra] [money] NOT NULL,
[PrecioDistribucion] [money] NOT NULL,
[PrecioVenta] [money] NOT NULL,
[PrecioDonacion] [money] NOT NULL,
[IdUsuario] [int] NOT NULL
) ON [PRIMARY]
go

drop PROCEDURE [dbo].[ExportaPreciosSismed]


go
create PROCEDURE [dbo].[ExportaPreciosSismed]
AS
SELECT dbo.FactCatalogoBienesInsumos.*,
dbo.FactCatalogoBienesInsumosHosp.PrecioUnitario AS precioVenta
FROM dbo.FactCatalogoBienesInsumos INNER JOIN
dbo.FactCatalogoBienesInsumosHosp ON
dbo.FactCatalogoBienesInsumos.IdProducto =
dbo.FactCatalogoBienesInsumosHosp.IdProducto
WHERE (dbo.FactCatalogoBienesInsumosHosp.IdTipoFinanciamiento = 1)
ORDER BY dbo.FactCatalogoBienesInsumos.Nombre
go

drop PROCEDURE [dbo].[FarmHistPrecioPorIdProducto]


go
create PROCEDURE [dbo].[FarmHistPrecioPorIdProducto]
(
@idProducto int
)
AS
SELECT TOP 1 *
FROM dbo.farmHistPrecio
where idProducto=@idProducto
ORDER BY fecha DESC
GO

--************************************nota de credito
-- galenhos->ucCajaNotaCredito todo
-- galenhos->CajaApruebaNotaCredito todo
-- comun->DoNotaCreditoDebito todo
-- galenhos->rptCaja solo 'debb-13/10/2017
-- galenhos ->NotaCredito todo reporte vbasic
-- comun->DoNotaCreditoDebitoTipoNota todo
-- negocios->reglasDeCaja solo 'debb-13/10/2017
-- datos->NotaCreditoDebito todo
-- datos->notaCreditoDebitoTipoNota todo
-- datos->parametros solo 'debb-13/10/2017
-- entidades ->cadena solo 'debb-13/10/2017
-- modul galenhos->BoletaModulo solo 'debb-13/10/2017
-- galenhos->reciboBoleta todo
-- entidades->enumerados solo 'debb-13/10/2017
-- galenhos->ucGestionCaja solo 'debb-13/10/2017
-- reporte vbasic galenhos->eventas todos
-- reportes->rptePartidaResumen.cls solo 'debb-13/10/2017
-- farmacia ->farmNotaIngreso solo 'debb-13/10/2017
-- negocios->reglasFarmacia solo 'debb-13/10/2017

-- galenhos->rpCajaExportaSunat.frm todo

--procedimientos
use sigh
go

if not exists (select * from Parametros where idParametro=533)


insert into Parametros(IdParametro,Tipo,Codigo,ValorTexto,Descripcion) VALUES
(533,'CAJA','FActuraIGV','','S (El importe de la FACTURA se incrementa en 18%
(igv))')
go

if not exists (select * from Parametros where idParametro=532)


insert into Parametros(IdParametro,Tipo,Codigo,ValorTexto,Descripcion) VALUES
(532,'CAJA','BoletaNoSube','S','S (BOLETA DE CPTS no se toma en cuenta para subir a
la SUNAT')
go

update ListBarReporte set Reporte ='SUNAT',id_MenuReporte ='ID_SunatFacturador'


where idReporte =179
go

if not exists (select * from Parametros where idParametro=532)


insert into Parametros(IdParametro,Tipo,Codigo,ValorTexto,Descripcion) VALUES
(532,'CAJA','BoletaNoSube','','S (BOLETA DE CPTS no se toma en cuenta para subir a
la SUNAT')
go

if not exists (select * from Parametros where idParametro=378)


insert into Parametros(IdParametro,Tipo,Codigo,ValorTexto,Descripcion) VALUES
(378,'CAJA','RUTA_DATA_SUNAT','c:\','RUTA PARA LA DATA SUNAT')
go

insert into Permisos (IdPermiso,Descripcion,Modulo) values (207,'Caja - Ver TAB -


Devoluci�n por Nota de Cr�dito','Caja')
go

if not exists (select * from Parametros where idParametro=339)


insert into Parametros(IdParametro,Tipo,Codigo,ValorTexto,Descripcion) VALUES
(378,'CAJA','RUTA_DATA_SUNAT','c:\','RUTA PARA LA DATA SUNAT')
go

alter table farmMovimientoDetalle add DocumentoNumero varchar(20) null


go

CREATE TABLE [dbo].[NotaCreditoDebito](


[IdNota] [int] IDENTITY(1,1) NOT NULL,
[IdComprobantePago] [int] NULL,
[IdTipoNota] [int] NULL,
[NroSerie] [nvarchar](4) NULL,
[NroDocumento] [varchar](12) NULL,
[RazonSocial] [varchar](50) NULL,
[RUC] [char](11) NULL,
[SubTotal] [money] NULL,
[IGV] [money] NULL,
[Total] [money] NOT NULL,
[IdUsuarioAutoriza] [int] NULL,
[FechaAprueba] [datetime] NULL,
[TipoCambio] [money] NULL,
[Observaciones] [varchar](500) NULL,
[IdEstadoNota] [int] NULL,
[FechaPagado] [datetime] NULL,
[IdGestionCaja] [int] NULL,
[IdPaciente] [int] NULL,
[IdCajero] [int] NULL,
[idTurno] [int] NULL,
[idCaja] [int] NULL,
[idFarmacia] [int] NULL,
[idMotivo] [int] NULL,
[Direccion] [varchar](50) NULL,
[TipoAnulacion] [bit] NULL
) ON [PRIMARY]

GO
CREATE TABLE [dbo].[NotaCreditoDebitoEstadoNota](
[IdEstado] [int] NOT NULL,
[EstadoNota] [varchar](50) NULL,
CONSTRAINT [PK_NotaCreditoDebitoEstadoNota] PRIMARY KEY CLUSTERED
(
[IdEstado] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[NotaCreditoDebitoMotivo](
[IdMotivo] [int] NOT NULL,
[Motivo] [varchar](50) NULL,
CONSTRAINT [PK_NotaCreditoDebitoMotivo] PRIMARY KEY CLUSTERED
(
[IdMotivo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
CREATE TABLE [dbo].[NotaCreditoDebitoTipoNota](
[IdTipoNota] [int] NOT NULL,
[TipoNota] [varchar](50) NOT NULL,
[NroSerie] [nvarchar](4) NULL,
[NroDocumento] [char](12) NULL,
[NroDocumentoInicial] [char](12) NULL,
[NroDocumentoFinal] [char](12) NULL,
CONSTRAINT [PK_NotaCreditoDebitoTipoNota] PRIMARY KEY CLUSTERED
(
[IdTipoNota] ASC,
[TipoNota] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

INSERT [dbo].[NotaCreditoDebitoEstadoNota] ([IdEstado], [EstadoNota]) VALUES (0,


N'Por Aprobar')
INSERT [dbo].[NotaCreditoDebitoEstadoNota] ([IdEstado], [EstadoNota]) VALUES (1,
N'Aprobado')
INSERT [dbo].[NotaCreditoDebitoEstadoNota] ([IdEstado], [EstadoNota]) VALUES (2,
N'Anulado')
INSERT [dbo].[NotaCreditoDebitoEstadoNota] ([IdEstado], [EstadoNota]) VALUES (3,
N'Canjeado')

INSERT [dbo].[NotaCreditoDebitoMotivo] ([IdMotivo], [Motivo]) VALUES (1,


N'Anulaci�n de la operaci�n')
INSERT [dbo].[NotaCreditoDebitoMotivo] ([IdMotivo], [Motivo]) VALUES (2,
N'Anulaci�n por error en el RUC')
INSERT [dbo].[NotaCreditoDebitoMotivo] ([IdMotivo], [Motivo]) VALUES (3,
N'Correcci�n por error en la descripci�n')
INSERT [dbo].[NotaCreditoDebitoMotivo] ([IdMotivo], [Motivo]) VALUES (4,
N'Descuento global')
INSERT [dbo].[NotaCreditoDebitoMotivo] ([IdMotivo], [Motivo]) VALUES (5,
N'Descuento por �tem')
INSERT [dbo].[NotaCreditoDebitoMotivo] ([IdMotivo], [Motivo]) VALUES (6,
N'Devoluci�n total')
INSERT [dbo].[NotaCreditoDebitoMotivo] ([IdMotivo], [Motivo]) VALUES (7,
N'Devoluci�n por �tem')
INSERT [dbo].[NotaCreditoDebitoMotivo] ([IdMotivo], [Motivo]) VALUES (8,
N'Bonificaci�n')
INSERT [dbo].[NotaCreditoDebitoMotivo] ([IdMotivo], [Motivo]) VALUES (9,
N'Disminuci�n en el valor')
INSERT [dbo].[NotaCreditoDebitoMotivo] ([IdMotivo], [Motivo]) VALUES (10, N'Otros
Conceptos')
INSERT [dbo].[NotaCreditoDebitoTipoNota] ([IdTipoNota], [TipoNota], [NroSerie],
[NroDocumento], [NroDocumentoInicial], [NroDocumentoFinal]) VALUES (2, N'2',
N'FD01', N'00000001 ', N'00000000 ', N'99999999 ')
INSERT [dbo].[NotaCreditoDebitoTipoNota] ([IdTipoNota], [TipoNota], [NroSerie],
[NroDocumento], [NroDocumentoInicial], [NroDocumentoFinal]) VALUES (2, N'3',
N'BC01', N'00000013 ', N'00000000 ', N'99999999 ')

/****** Object: StoredProcedure [dbo].[NotaCreditoBuscaPorIdComprobante] Script


Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoBuscaPorIdComprobante]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoConsultarCitaPorNCuenta]
Script Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoConsultarCitaPorNCuenta]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoConsultarOrdenServicio]
Script Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoConsultarOrdenServicio]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoAgregar] Script Date:
10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDebitoAgregar]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoCargarEstadoNotaCredito]
Script Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDebitoCargarEstadoNotaCredito]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoCargarMotivo] Script
Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDebitoCargarMotivo]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoEliminar] Script Date:
10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDebitoEliminar]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoSeleccionarPorId]
Script Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDebitoSeleccionarPorId]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoSeleccionarPorNroSerie]
Script Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDebitoSeleccionarPorNroSerie]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoTipoNotaAgregar] Script
Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDebitoTipoNotaAgregar]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoTipoNotaEliminar]
Script Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDebitoTipoNotaEliminar]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoTipoNotaModificar]
Script Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDebitoTipoNotaModificar]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoTipoNotaSeleccionarPorId]
Script Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDebitoTipoNotaSeleccionarPorId]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDevueltosPorNumYFecha] Script
Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDevueltosPorNumYFecha]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoFarmNotaIngreso] Script Date:
10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoFarmNotaIngreso]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoParaSunatPorNumYFecha] Script
Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoParaSunatPorNumYFecha]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoRegistrosTotalesPorNumero]
Script Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoRegistrosTotalesPorNumero]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoRegistrosTotalesPorNumYFecha]
Script Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoRegistrosTotalesPorNumYFecha]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoModificar] Script Date:
10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDebitoModificar]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoSeleccionarNumeroNota]
Script Date: 10/13/2017 09:45:33 ******/
DROP PROCEDURE [dbo].[NotaCreditoDebitoSeleccionarNumeroNota]
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoSeleccionarNumeroNota]
Script Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[NotaCreditoDebitoSeleccionarNumeroNota]
(@IdTipoNota int)
as
SELECT * FROM NotaCreditoDebitoNroDocumento
WHERE IDTIPONOTA=@IdTipoNota
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoModificar] Script Date:
10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[NotaCreditoDebitoModificar]

(@IdNota int,
@IdComprobantePago int,
@IdTipoNota int,
@NroSerie varChar(4),
@NroDocumento VarChar(12),
@RazonSocial VarChar(50),
@RUC Char(11),

@SubTotal Money,
@IGV Money,
@Total Money,
@IdUsuarioAutoriza int,
@FechaAprueba DateTime,
@TipoCambio Money,
@Observaciones VarChar(500),
@IdEstadoNota int,
@FechaPagado DateTime,

@IdGestionCaja int,
@IdPaciente int,
@IdCajero int,
@idTurno int,
@idCaja int,
@idFarmacia int,
@idMotivo int,
@Direccion VarChar(50),
@TipoAnulacion bit,
@IdUsuarioAuditoria int)

as
update NotaCreditoDebito
set
IdComprobantePago = @IdComprobantePago,
IdTipoNota = @IdTipoNota,
NroSerie = @NroSerie,
NroDocumento = @NroDocumento,
RazonSocial = @RazonSocial,
RUC = @RUC,

SubTotal = @SubTotal,
IGV = @IGV,
Total = @Total,
IdUsuarioAutoriza = @IdUsuarioAutoriza,
FechaAprueba = @FechaAprueba,
TipoCambio = @TipoCambio,
Observaciones = @Observaciones,
IdEstadoNota = @IdEstadoNota,

FechaPagado = @FechaPagado,
IdGestionCaja = @IdGestionCaja,
IdPaciente = @IdPaciente,
IdCajero = @IdCajero,
idTurno = @idTurno,
idCaja = @idCaja,
idFarmacia = @idFarmacia,
idMotivo = @idMotivo,

Direccion = @Direccion,
TipoAnulacion = @TipoAnulacion
where IdNota = @IdNota

--exec AuditoriaAgregar @IdUsuarioAuditoria ,'M',@IdNota,'NotaCreditoDebito'


GO
/****** Object: StoredProcedure [dbo].[NotaCreditoRegistrosTotalesPorNumYFecha]
Script Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[NotaCreditoRegistrosTotalesPorNumYFecha]
(@NroSerie as varchar(4),
@NroDocumento as varchar(8),
@RazonSocial as varchar(20),
@FDesde datetime,
@FHasta datetime)
as
select N.IdNota,N.IdEstadoNota,T.TipoNota + ': ' + N.NroSerie + '-' +
N.NroDocumento as 'Documento',N.FechaAprueba,
rtrim(tc.Descripcion) + ': ' + C.NroSerie + '-' + C.NroDocumento + + ' [' +
rtrim(N.RazonSocial) COLLATE Modern_Spanish_CS_AS + ']' as 'Comprobante Afectado',
N.Observaciones,N.Total,E.EstadoNota,p.ApellidoPaterno + ' ' + p.ApellidoPaterno +
', ' + p.Nombres as Cajero,N.FechaPagado
from NotaCreditoDebito N
inner join NotaCreditoDebitoTipoNota T on N.IdTipoNota=T.IdTipoNota
inner join NotaCreditoDebitoEstadoNota E on N.IdEstadoNota=E.IdEstado
inner join CajaComprobantesPago C on N.IdComprobantePago=C.IdComprobantePago
inner join CajaTiposComprobante tc on C.IdTipoComprobante=tc.IdTipoComprobante and
T.TipoNota=tc.IdTipoComprobante
left join Empleados P on N.IdCajero=P.IdEmpleado
where N.NroSerie like @NroSerie + '%'
and N.NroDocumento like @NroDocumento +'%'
and N.RazonSocial like '%' + @RazonSocial +'%'
and (CONVERT (char(10), N.FechaAprueba, 102) between CONVERT (char(10), @FDesde,
102) AND CONVERT (char(10), @FHasta, 102))
order by IdNota desc
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoRegistrosTotalesPorNumero]
Script Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[NotaCreditoRegistrosTotalesPorNumero]
(@NroSerie as varchar(4),
@NroDocumento as varchar(8)
)
as
select N.IdNota,N.IdEstadoNota,N.NroSerie,
N.NroDocumento,N.FechaAprueba,N.RazonSocial,N.Direccion,N.RUC,
N.Observaciones,N.Total,E.EstadoNota,N.FechaPagado,M.Motivo,N.idCaja,N.IdCajero,N.i
dTurno, P.DNI,
ltrim(P.ApellidoPaterno) + ' ' + ltrim(P.ApellidoMaterno) + ' ' + ltrim(P.Nombres)
as EmpleadoAutoriza
from NotaCreditoDebito N
inner join NotaCreditoDebitoTipoNota T on N.IdTipoNota=T.IdTipoNota
inner join NotaCreditoDebitoEstadoNota E on N.IdEstadoNota=E.IdEstado
inner join NotaCreditoDebitoMotivo M on N.idMotivo=M.IdMotivo
inner join Empleados P on P.IdEmpleado=N.IdUsuarioAutoriza
where N.NroSerie like @NroSerie + '%'
and N.NroDocumento like @NroDocumento +'%'
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoParaSunatPorNumYFecha] Script
Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[NotaCreditoParaSunatPorNumYFecha]
(@FDesde datetime,
@FHasta datetime,
@nSerie char(4),
@nDocumento char(12))
as
if @nSerie=''
select N.*,c.NroSerie as serieComprAfectado,c.NroDocumento as
NroComprAfectado,c.IdTipoComprobante,c.RUC as RucComprAfec,c.RazonSocial as
RazonSocialComprAfec, c.IdPaciente as IdPacienteComprAfec,c.IdTipoOrden
from NotaCreditoDebito N
inner join CajaComprobantesPago C ON N.IdComprobantePago=C.IdComprobantePago
where (N.FechaPagado between @FDesde and @FHasta)
and N.IdEstadoNota=3
order by IdNota desc
else
select N.*,c.NroSerie as serieComprAfectado,c.NroDocumento as
NroComprAfectado,c.IdTipoComprobante,c.RUC as RucComprAfec,c.RazonSocial as
RazonSocialComprAfec, c.IdPaciente as IdPacienteComprAfec,c.IdTipoOrden
from NotaCreditoDebito N
inner join CajaComprobantesPago C ON N.IdComprobantePago=C.IdComprobantePago
where n.NroSerie =@nSerie and n.NroDocumento=@nDocumento
and N.IdEstadoNota=3
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoFarmNotaIngreso] Script Date:
10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[NotaCreditoFarmNotaIngreso]
(@DocumentoNumero as varchar(20))
as
select distinct
M.MovNumero,M.MovTipo,M.idAlmacenDestino,A.descripcion,M.DocumentoIdtipo,M.Total,M.
fechaCreacion,M.idEstadoMovimiento
from farmMovimientoDetalle D
inner join FarmMovimiento M on M.MovNumero=D.MovNumero
inner join farmAlmacen A on M.idAlmacenDestino=A.idAlmacen
where D.DocumentoNumero=@DocumentoNumero and m.idEstadoMovimiento=1
and M.MovTipo='E'
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDevueltosPorNumYFecha] Script
Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[NotaCreditoDevueltosPorNumYFecha]
(@NroSerie as varchar(4),
@NroDocumento as varchar(8),
@FDesde datetime,
@FHasta datetime)
as
select c.Descripcion as Caja, t.Descripcion as Turno,N.FechaPagado as Fecha,
N.NroSerie,N.NroDocumento,
P.NroHistoriaClinica,N.RazonSocial,N.Total,'' as IdCuentaAtencion,E.EstadoNota as
Estado,Em.ApellidoPaterno as CajeroApPat,
Em.ApellidoMaterno as CajeroApMat, Em.Nombres as
CajeroNombres,N.idCaja,N.IdCajero,N.idTurno,n.idFarmacia,n.fechaPagado
from NotaCreditoDebito N
inner join CajaCaja c on N.idCaja=c.IdCaja
inner join CajaTurno t on N.idTurno=T.IdTurno
left join Pacientes P on N.IdPaciente=P.IdPaciente
inner join NotaCreditoDebitoEstadoNota E on N.IdEstadoNota=E.IdEstado
inner join Empleados Em on N.IdCajero=Em.IdEmpleado
where N.NroSerie like @NroSerie + '%'
and N.NroDocumento like @NroDocumento +'%'
and (N.FechaPagado between @FDesde and @FHasta)
and N.IdEstadoNota=3
order by IdNota desc
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoTipoNotaSeleccionarPorId]
Script Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[NotaCreditoDebitoTipoNotaSeleccionarPorId]
(@IdTipoNota nchar, @TipoCompNota nchar)
as select * from NotaCreditoDebitoTipoNota
where IdTipoNota = @IdTipoNota
and TipoNota=@TipoCompNota
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoTipoNotaModificar]
Script Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[NotaCreditoDebitoTipoNotaModificar]
(@IdTipoNota int,
@TipoNota varchar(50),
@NroSerie Char(4),
@NroDocumento Char(12),
@NroDocumentoInicial Char(12),
@NroDocumentoFinal Char(12),
@IdUsuarioAuditoria int)
as update NotaCreditoDebitoTipoNota
set
TipoNota = @TipoNota,
NroSerie = @NroSerie,
NroDocumento = @NroDocumento,
NroDocumentoInicial = @NroDocumentoInicial,
NroDocumentoFinal = @NroDocumentoFinal
where IdTipoNota = @IdTipoNota
and TipoNota=@TipoNota
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoTipoNotaEliminar]
Script Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[NotaCreditoDebitoTipoNotaEliminar]
(@IdTipoNota nchar,
@IdUsuarioAuditoria int )

as
delete from NotaCreditoDebitoTipoNota
where IdTipoNota = @IdTipoNota

--exec AuditoriaAgregar
@IdUsuarioAuditoria ,'E',@IdTipoNota,'NotaCreditoDebitoNroDocumento'
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoTipoNotaAgregar] Script
Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[NotaCreditoDebitoTipoNotaAgregar]

(@IdTipoNota integer,
@TipoNota varchar(50),
@NroSerie Char(4),
@NroDocumento Char(12),
@NroDocumentoInicial Char(12),
@NroDocumentoFinal Char(12),
@IdUsuarioAuditoria int)

as
insert into NotaCreditoDebitoTipoNota (
IdTipoNota,TipoNota,NroSerie,NroDocumento,NroDocumentoInicial,NroDocumentoFinal)
values
(
@IdTipoNota,@TipoNota,@NroSerie,@NroDocumento,@NroDocumentoInicial,@NroDocumentoFin
al)
--exec AuditoriaAgregar
@IdUsuarioAuditoria ,'A',@IdTipoNota,'NotaCreditoDebitoNroDocumento'
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoSeleccionarPorNroSerie]
Script Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[NotaCreditoDebitoSeleccionarPorNroSerie]
(@NroSerie varchar(4),@IdTipoComprobante as integer)
as
select N.*,T.NroSerie as NroSerieTipo, T.NroDocumentoInicial as NroDocInicioTipo,
T.NroDocumentoFinal as NroDocFinalTipo, T.NroDocumento as
NroDocUltimoTipo,c.IdTipoComprobante
from NotaCreditoDebito N
inner join NotaCreditoDebitoTipoNota T on N.IdTipoNota=T.IdTipoNota
inner join CajaComprobantesPago c on n.IdComprobantePago=c.IdComprobantePago
where N.IdTipoNota=2
and N.NroSerie=@NroSerie and c.IdTipoComprobante=@IdTipoComprobante
order by IdNota desc
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoSeleccionarPorId]
Script Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[NotaCreditoDebitoSeleccionarPorId]
(@IdNota int)
as select * from NotaCreditoDebito
where IdNota = @IdNota
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoEliminar] Script Date:
10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[NotaCreditoDebitoEliminar]
(@IdNota int,
@IdUsuarioAuditoria int )
as delete from NotaCreditoDebito
where IdNota = @IdNota
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoCargarMotivo] Script
Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[NotaCreditoDebitoCargarMotivo]
as
select IdMotivo,Motivo from NotaCreditoDebitoMotivo
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoCargarEstadoNotaCredito]
Script Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[NotaCreditoDebitoCargarEstadoNotaCredito]
as
select * from NotaCreditoDebitoEstadoNota
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoDebitoAgregar] Script Date:
10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[NotaCreditoDebitoAgregar]

(@IdNota int output,


@IdComprobantePago int,
@IdTipoNota int,
@NroSerie varChar(4),
@NroDocumento VarChar(12),
@RazonSocial VarChar(50),
@RUC Char(11),

@SubTotal Money,
@IGV Money,
@Total Money,
@IdUsuarioAutoriza int,
@FechaAprueba DateTime,
@TipoCambio Money,
@Observaciones VarChar(500),
@IdEstadoNota int,
@FechaPagado DateTime,
@IdGestionCaja int,

@IdPaciente int,
@IdCajero int,
@idTurno int,
@idCaja int,
@idFarmacia int,
@idMotivo int,
@Direccion VarChar(50),
@TipoAnulacion bit,
@IdUsuarioAuditoria int)

as
insert into NotaCreditoDebito (
IdComprobantePago,IdTipoNota,NroSerie,NroDocumento,RazonSocial,RUC,SubTotal,IGV,Tot
al,IdUsuarioAutoriza,FechaAprueba,TipoCambio,Observaciones,IdEstadoNota,
FechaPagado,IdGestionCaja,IdPaciente,IdCajero,idTurno,idCaja,idFarmacia,idMotivo,Di
reccion,TipoAnulacion) values
(
@IdComprobantePago,@IdTipoNota,@NroSerie,@NroDocumento,@RazonSocial,@RUC,@SubTotal,
@IGV,@Total,@IdUsuarioAutoriza,@FechaAprueba,@TipoCambio,@Observaciones,@IdEstadoNo
ta,
@FechaPagado,@IdGestionCaja,@IdPaciente,@IdCajero,@idTurno,@idCaja,@idFarmacia,@idM
otivo,@Direccion,@TipoAnulacion)
set @IdNota = @@identity
--exec AuditoriaAgregar @IdUsuarioAuditoria ,'A',@IdNota,'NotaCreditoDebito'
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoConsultarOrdenServicio]
Script Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[NotaCreditoConsultarOrdenServicio]
(@IdComprobantePago integer)
as
select cp.NroSerie, cp.NroDocumento, * from FactOrdenServicio fs inner join
FactOrdenServicioPagos fp on fs.IdOrden=fp.idOrden
inner join CajaComprobantesPago cp on fp.idComprobantePago=cp.IdComprobantePago
where cp.IdComprobantePago=@IdComprobantePago
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoConsultarCitaPorNCuenta]
Script Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[NotaCreditoConsultarCitaPorNCuenta]
(@idCuentaAtencion integer)
as
select
c.IdCita,c.Fecha,c.HoraInicio,c.HoraFin,c.IdAtencion,c.FechaSolicitud,c.IdServicio,
s.Nombre as Servicio,c.IdMedico,
e.Nombres,e.ApellidoPaterno,e.ApellidoMaterno
from citas c inner join Atenciones A on c.IdAtencion=a.IdAtencion
inner join Servicios s on c.IdServicio=s.IdServicio
inner join Medicos M on c.IdMedico=m.IdMedico
inner join Empleados E on m.IdEmpleado=E.IdEmpleado
where a.IdCuentaAtencion=@idCuentaAtencion
GO
/****** Object: StoredProcedure [dbo].[NotaCreditoBuscaPorIdComprobante] Script
Date: 10/13/2017 09:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[NotaCreditoBuscaPorIdComprobante]
(@IdComprobante integer)
as
select * from NotaCreditoDebito
where IdComprobantePago=@IdComprobante
and IdEstadoNota<>2
GO

drop PROCEDURE [dbo].[CajaComprobantesPagoXimagenes]


go
create PROCEDURE [dbo].[CajaComprobantesPagoXimagenes]
(@IdComprobantePago integer)
AS
SELECT dbo.ImagMovimiento.IdImagEstado,
dbo.ImagMovimientoImagenes.IdComprobantePago, dbo.ImagMovimiento.Fecha,
dbo.ImagMovimiento.IdMovimiento,
dbo.ImagMovimientoImagenes.IdCuentaAtencion
FROM dbo.ImagMovimientoImagenes LEFT OUTER JOIN
dbo.ImagMovimiento ON
dbo.ImagMovimientoImagenes.IdMovimiento = dbo.ImagMovimiento.IdMovimiento
Where (dbo.ImagMovimiento.IdImagEstado =1) and
dbo.ImagMovimientoImagenes.IdComprobantePago= @IdComprobantePago
go

drop PROCEDURE [dbo].[RetornaHoraServidorSQLserverFormatoGalenhos]


go
create PROCEDURE [dbo].[RetornaHoraServidorSQLserverFormatoGalenhos]
AS
select left(convert(varchar(10), GETDATE(), 108),5) as HoraSQLFormatoGalenhos
go

drop PROCEDURE [dbo].[CajaComprobantesPagoXlaboratorio]


go
create PROCEDURE [dbo].[CajaComprobantesPagoXlaboratorio]
(@IdComprobantePago integer)
AS
SELECT dbo.LabMovimientoLaboratorio.IdComprobantePago,
dbo.LabMovimiento.IdMovimiento, dbo.LabMovimiento.Fecha,

dbo.LabMovimiento.IdLabEstado,dbo.LabMovimientoLaboratorio.IdCuentaAtencion
FROM dbo.LabMovimientoLaboratorio LEFT OUTER JOIN
dbo.LabMovimiento ON
dbo.LabMovimientoLaboratorio.IdMovimiento = dbo.LabMovimiento.IdMovimiento
Where (dbo.LabMovimiento.IdLabEstado <> 0) and
dbo.LabMovimientoLaboratorio.IdComprobantePago= @IdComprobantePago
go
ALTER PROCEDURE [dbo].
[CajaComprobantePagoFiltroPorNroSerieDocumentoOporRangoFechas]
(
@NroSerie VarChar(3),
@NroDocumento VarChar(7),
@FechaInicio datetime,
@FechaFin datetime
)
AS
if @NroDocumento<>''
begin
SELECT dbo.CajaComprobantesPago.NroSerie,
dbo.CajaComprobantesPago.NroDocumento, dbo.CajaComprobantesPago.RazonSocial,
dbo.CajaComprobantesPago.idTurno,
dbo.CajaTurno.Descripcion, dbo.CajaComprobantesPago.idCaja,
dbo.CajaCaja.Descripcion AS dCaja,
dbo.CajaComprobantesPago.IdCajero,
dbo.Empleados.IdEmpleado, dbo.Empleados.ApellidoPaterno,
dbo.Empleados.ApellidoMaterno,
dbo.Empleados.Nombres,
dbo.CajaComprobantesPago.idFormaPago, dbo.TiposFinanciamiento.Descripcion AS
dFormaPago,
dbo.Pacientes.ApellidoPaterno AS Apaterno,
dbo.Pacientes.ApellidoMaterno AS Amaterno, dbo.Pacientes.PrimerNombre,
dbo.Pacientes.NroHistoriaClinica,
dbo.CajaComprobantesPago.FechaCobranza, dbo.CajaComprobantesPago.IdCuentaAtencion,
dbo.CajaComprobantesPago.IdEstadoComprobante,
dbo.CajaEstadosComprobante.Descripcion AS dEstado,
dbo.CajaComprobantesPago.IdTipoOrden,
dbo.CajasTiposOrden.Descripcion AS dBienServicio,
dbo.CajaComprobantesPago.idFarmacia, dbo.farmAlmacen.descripcion AS dFarmacia,
dbo.CajaComprobantesPago.exoneraciones,
dbo.CajaComprobantesPago.IdTipoComprobante,dbo.CajaComprobantesPago.SubTotal,dbo.Ca
jaComprobantesPago.Adelantos,dbo.CajaComprobantesPago.exoneraciones,

dbo.CajaComprobantesPago.total,CajaComprobantesPago.ruc,dbo.CajaComprobantesPago.Id
ComprobantePago,dbo.Pacientes.IdPaciente,

dbo.CajaComprobantesPago.Total,dbo.CajaComprobantesPago.FechaCobranza,dbo.CajaCompr
obantesPago.IGV,dbo.CajaComprobantesPago.RUC
FROM dbo.CajaComprobantesPago LEFT OUTER JOIN
dbo.farmAlmacen ON dbo.CajaComprobantesPago.idFarmacia
= dbo.farmAlmacen.idAlmacen LEFT OUTER JOIN
dbo.CajasTiposOrden ON
dbo.CajaComprobantesPago.IdTipoOrden = dbo.CajasTiposOrden.IdTipoOrden LEFT OUTER
JOIN
dbo.CajaEstadosComprobante ON
dbo.CajaComprobantesPago.IdEstadoComprobante =
dbo.CajaEstadosComprobante.IdEstadoComprobante LEFT OUTER JOIN
dbo.Pacientes ON dbo.CajaComprobantesPago.IdPaciente =
dbo.Pacientes.IdPaciente LEFT OUTER JOIN
dbo.TiposFinanciamiento ON
dbo.CajaComprobantesPago.idFormaPago = dbo.TiposFinanciamiento.IdTipoFinanciamiento
LEFT OUTER JOIN
dbo.Empleados ON dbo.CajaComprobantesPago.IdCajero =
dbo.Empleados.IdEmpleado LEFT OUTER JOIN
dbo.CajaCaja ON dbo.CajaComprobantesPago.idCaja =
dbo.CajaCaja.IdCaja LEFT OUTER JOIN
dbo.CajaTurno ON dbo.CajaComprobantesPago.idTurno =
dbo.CajaTurno.IdTurno
where dbo.CajaComprobantesPago.NroSerie=@NroSerie and
dbo.CajaComprobantesPago.NroDocumento=@NroDocumento
ORDER BY dbo.CajaComprobantesPago.FechaCobranza desc
end
else
begin
--------------exec
CajaComprobantePagoFiltroPorNroSerieDocumentoOporRangoFechas '','','22/01/2009
00:00:00','22/01/2009 23:59:00'
SELECT dbo.CajaCaja.Descripcion AS Caja, dbo.CajaTurno.Descripcion AS
Turno, dbo.CajaComprobantesPago.FechaCobranza AS Fecha,
dbo.CajaComprobantesPago.NroSerie,
dbo.CajaComprobantesPago.NroDocumento, dbo.Pacientes.NroHistoriaClinica,
dbo.CajaComprobantesPago.RazonSocial,
dbo.CajaComprobantesPago.Total, dbo.CajaComprobantesPago.IdCuentaAtencion,
dbo.CajaEstadosComprobante.Descripcion AS Estado,
dbo.Empleados.ApellidoPaterno AS CajeroApPat,
dbo.Empleados.ApellidoMaterno AS CajeroApMat,
dbo.Empleados.Nombres AS CajeroNombres, dbo.CajasTiposOrden.Descripcion AS
BienServicio,
dbo.CajaComprobantesPago.IdPaciente,
dbo.CajaComprobantesPago.idTurno, dbo.CajaComprobantesPago.idCaja,
dbo.CajaComprobantesPago.IdCajero,
dbo.Empleados.IdEmpleado, dbo.CajaComprobantesPago.idFormaPago,
dbo.TiposFinanciamiento.Descripcion AS dFormaPago,
dbo.CajaComprobantesPago.IdEstadoComprobante, dbo.CajaComprobantesPago.IdTipoOrden,

dbo.CajaComprobantesPago.idFarmacia,
dbo.farmAlmacen.descripcion AS dFarmacia,dbo.CajaComprobantesPago.exoneraciones,

dbo.CajaComprobantesPago.IdTipoComprobante,dbo.CajaComprobantesPago.subTotal,dbo.Ca
jaComprobantesPago.FechaCobranza,dbo.CajaComprobantesPago.IGV,

dbo.CajaComprobantesPago.RUC,dbo.CajaComprobantesPago.IdComprobantePago
FROM dbo.CajaComprobantesPago LEFT OUTER JOIN
dbo.farmAlmacen ON dbo.CajaComprobantesPago.idFarmacia
= dbo.farmAlmacen.idAlmacen LEFT OUTER JOIN
dbo.CajasTiposOrden ON
dbo.CajaComprobantesPago.IdTipoOrden = dbo.CajasTiposOrden.IdTipoOrden LEFT OUTER
JOIN
dbo.CajaEstadosComprobante ON
dbo.CajaComprobantesPago.IdEstadoComprobante =
dbo.CajaEstadosComprobante.IdEstadoComprobante LEFT OUTER JOIN
dbo.Pacientes ON dbo.CajaComprobantesPago.IdPaciente =
dbo.Pacientes.IdPaciente LEFT OUTER JOIN
dbo.TiposFinanciamiento ON
dbo.CajaComprobantesPago.idFormaPago = dbo.TiposFinanciamiento.IdTipoFinanciamiento
LEFT OUTER JOIN
dbo.Empleados ON dbo.CajaComprobantesPago.IdCajero =
dbo.Empleados.IdEmpleado LEFT OUTER JOIN
dbo.CajaCaja ON dbo.CajaComprobantesPago.idCaja =
dbo.CajaCaja.IdCaja LEFT OUTER JOIN
dbo.CajaTurno ON dbo.CajaComprobantesPago.idTurno =
dbo.CajaTurno.IdTurno
WHERE (dbo.CajaComprobantesPago.FechaCobranza BETWEEN @FechaInicio and
@FechaFin)
ORDER BY dbo.CajaComprobantesPago.FechaCobranza desc
-- WHERE (dbo.CajaComprobantesPago.FechaCobranza BETWEEN CONVERT(DATETIME,
@FechaInicio, 102) AND CONVERT(DATETIME,
-- @FechaFin, 102))
-- ORDER BY dbo.CajaComprobantesPago.FechaCobranza
end

----
drop procedure [dbo].[CajaComprobantePagoAnuladosSunat]
go
create procedure [dbo].[CajaComprobantePagoAnuladosSunat]
as
select NroSerie ,nrodocumento,
(select top 1 FechaHora from Auditoria where
auditoria.IdRegistro=CajaComprobantesPago.IdComprobantePago
and auditoria.Accion='E' and Auditoria.idListItem=702 ) as fechaAnulacion
from CajaComprobantesPago
where idTipoComprobante in (2,3) and IdEstadoComprobante =9 and
YEAR(FechaCobranza)=YEAR(getdate())
order by fechaAnulacion
go

drop PROCEDURE [dbo].[CajaComprobantePagoProductosPorIdComprobante]


go
create PROCEDURE [dbo].[CajaComprobantePagoProductosPorIdComprobante]
(
@IdComprobantePago int
)
AS
SELECT dbo.FactCatalogoBienesInsumos.Codigo,
dbo.FactCatalogoBienesInsumos.Nombre AS NombreProducto,
dbo.FacturacionBienesPagos.CantidadPagar AS cantidad,
dbo.FacturacionBienesPagos.PrecioVenta AS PrecioUnitario,
dbo.FacturacionBienesPagos.TotalPagar AS totalPorPagar,
dbo.CajaComprobantesPago.NroSerie, dbo.CajaComprobantesPago.NroDocumento,
dbo.CajaComprobantesPago.RazonSocial,
dbo.CajaComprobantesPago.Total AS totalboleta,
dbo.CajaComprobantesPago.FechaCobranza,
dbo.CajaComprobantesPago.IdCuentaAtencion,
dbo.CajaComprobantesPago.IdEstadoComprobante, dbo.CajaComprobantesPago.Dctos,
dbo.CajaComprobantesPago.IdTipoPago,
dbo.CajaComprobantesPago.IdCajero, dbo.Pacientes.NroHistoriaClinica,
dbo.FactOrdenesBienes.idOrden,
dbo.FactOrdenesBienes.idComprobantePago,
dbo.CajaComprobantesPago.IdPaciente, dbo.FacturacionBienesPagos.IdProducto,
dbo.FactOrdenesBienes.idOrden AS IdFacturacionProducto,
dbo.FactOrdenesBienes.idEstadoFacturacion, dbo.FactOrdenesBienes.idPuntoCarga,
dbo.FactOrdenesBienes.MovNumero,
dbo.FactOrdenesBienes.MovTipo, dbo.CajaComprobantesPago.idTurno,
dbo.CajaComprobantesPago.Exoneraciones,
dbo.FactOrdenesBienes.idPreventa, dbo.CajaComprobantesPago.Adelantos,
dbo.CajaComprobantesPago.IGV,
dbo.CajaComprobantesPago.SubTotal, dbo.CajaComprobantesPago.RUC,
dbo.CajaComprobantesPago.Observaciones,
dbo.CajaComprobantesPago.idCaja, dbo.CajaCaja.Descripcion AS nombreCaja,

dbo.CajaComprobantesPago.IdTipoComprobante,dbo.CajaCaja.ImpresoraDefault,
dbo.CajaCaja.Impresora2
FROM dbo.FactOrdenesBienes INNER JOIN
dbo.CajaCaja INNER JOIN
dbo.CajaComprobantesPago ON dbo.CajaCaja.IdCaja =
dbo.CajaComprobantesPago.idCaja ON
dbo.FactOrdenesBienes.idComprobantePago =
dbo.CajaComprobantesPago.IdComprobantePago INNER JOIN
dbo.FacturacionBienesPagos INNER JOIN
dbo.FactCatalogoBienesInsumos ON
dbo.FacturacionBienesPagos.IdProducto = dbo.FactCatalogoBienesInsumos.IdProducto ON

dbo.FactOrdenesBienes.idOrden =
dbo.FacturacionBienesPagos.IdOrden LEFT OUTER JOIN
dbo.Pacientes ON dbo.CajaComprobantesPago.IdPaciente =
dbo.Pacientes.IdPaciente
WHERE dbo.CajaComprobantesPago.IdComprobantePago=@IdComprobantePago
go

drop PROCEDURE [dbo].[CajaComprobantePagoServiciosPorIdComprobantePago]


go
create PROCEDURE [dbo].[CajaComprobantePagoServiciosPorIdComprobantePago]
(
@IdComprobantePago int
)
AS
SELECT dbo.FacturacionServicioPagos.idOrdenPago,
dbo.FacturacionServicioPagos.idProducto, dbo.FacturacionServicioPagos.Cantidad,
dbo.FacturacionServicioPagos.Precio AS PrecioUnitario,
dbo.FacturacionServicioPagos.Total AS totalPorPagar,
dbo.FactCatalogoServicios.Codigo,
dbo.FactCatalogoServicios.Nombre AS NombreProducto,
dbo.FactCatalogoServicios.Nombre AS Nombre,
dbo.FacturacionServicioPagos.Precio AS Precio,
dbo.FacturacionServicioPagos.Total AS total, dbo.FacturacionServicioPagos.Total AS
Importe,
dbo.FacturacionServicioPagos.idProducto AS idProductoCPT,
dbo.FactOrdenServicioPagos.idComprobantePago, dbo.FactOrdenServicioPagos.idOrden,
dbo.FactOrdenServicioPagos.FechaCreacion,
dbo.FactOrdenServicioPagos.IdEstadoFacturacion, dbo.Pacientes.ApellidoPaterno,
dbo.Pacientes.ApellidoMaterno, dbo.Pacientes.PrimerNombre,
dbo.Pacientes.NroHistoriaClinica, dbo.CajaComprobantesPago.NroSerie,
dbo.CajaComprobantesPago.NroDocumento,
dbo.CajaComprobantesPago.RazonSocial, dbo.CajaComprobantesPago.RUC,
dbo.CajaComprobantesPago.Total AS totalboleta,
dbo.CajaComprobantesPago.FechaCobranza, dbo.CajaComprobantesPago.IdTipoComprobante,

dbo.CajaComprobantesPago.IdCuentaAtencion,
dbo.CajaComprobantesPago.IdEstadoComprobante,
dbo.CajaComprobantesPago.IdGestionCaja,
dbo.CajaComprobantesPago.IdTipoPago,
dbo.CajaComprobantesPago.IdTipoOrden, dbo.CajaComprobantesPago.Dctos,
dbo.CajaComprobantesPago.IdPaciente,
dbo.CajaComprobantesPago.IdCajero, dbo.CajaComprobantesPago.idTurno,
dbo.CajaComprobantesPago.idCaja,
dbo.CajaComprobantesPago.idFormaPago, dbo.CajaComprobantesPago.Exoneraciones,
dbo.CajaComprobantesPago.Adelantos,
dbo.CajaComprobantesPago.IGV, dbo.CajaComprobantesPago.SubTotal,
dbo.CajaComprobantesPago.Observaciones,
dbo.CajaCaja.Descripcion AS nombreCaja,dbo.CajaCaja.ImpresoraDefault,
dbo.CajaCaja.Impresora2
FROM dbo.CajaCaja INNER JOIN
dbo.CajaComprobantesPago ON dbo.CajaCaja.IdCaja =
dbo.CajaComprobantesPago.idCaja INNER JOIN
dbo.FacturacionServicioPagos INNER JOIN
dbo.FactCatalogoServicios ON
dbo.FacturacionServicioPagos.idProducto = dbo.FactCatalogoServicios.IdProducto
INNER JOIN
dbo.FactOrdenServicioPagos ON
dbo.FacturacionServicioPagos.idOrdenPago = dbo.FactOrdenServicioPagos.idOrdenPago
ON
dbo.CajaComprobantesPago.IdComprobantePago =
dbo.FactOrdenServicioPagos.idComprobantePago LEFT OUTER JOIN
dbo.Pacientes ON dbo.CajaComprobantesPago.IdPaciente =
dbo.Pacientes.IdPaciente
WHERE dbo.CajaComprobantesPago.IdComprobantePago=@IdComprobantePago
go

drop PROCEDURE [dbo].[ChequeaSiEsPagosAcuenta]


go
create PROCEDURE [dbo].[ChequeaSiEsPagosAcuenta]
(@IdComprobantePago Integer, @IdPagosACuenta Integer, @IdTipoOrden Integer)
AS
If @IdTipoOrden = 1
BEGIN
SELECT dbo.FactOrdenServicioPagos.idComprobantePago,
dbo.FacturacionServicioPagos.idProducto, dbo.FacturacionServicioPagos.Total
FROM dbo.FactOrdenServicioPagos RIGHT OUTER JOIN
dbo.FacturacionServicioPagos ON
dbo.FactOrdenServicioPagos.idOrdenPago = dbo.FacturacionServicioPagos.idOrdenPago
WHERE dbo.FactOrdenServicioPagos.idComprobantePago =
@IdComprobantePago
END

Else

SELECT dbo.FactOrdenesBienes.idComprobantePago,
dbo.FacturacionBienesPagos.TotalPagar AS total,
dbo.FactOrdenesBienes.idEstadoFacturacion,dbo.FacturacionBienesPagos.idProducto
FROM dbo.FactOrdenesBienes RIGHT OUTER JOIN
dbo.FacturacionBienesPagos ON
dbo.FactOrdenesBienes.idOrden = dbo.FacturacionBienesPagos.IdOrden
WHERE
dbo.FactOrdenesBienes.idComprobantePago=@IdComprobantePago
go

---------------------
drop procedure FarmMovimientoDetalleActualizaDocumento
go
create procedure FarmMovimientoDetalleActualizaDocumento
(
@documento varchar(20),
@movNumero varchar(9)
)
as
update farmMovimientoDetalle set DocumentoNumero =@documento where movtipo='E' and
movNumero=@movNumero
go

drop PROCEDURE [dbo].[FarmMovimientoVentasDetalleSeleccionarPorNBoleta]


go
create PROCEDURE [dbo].[FarmMovimientoVentasDetalleSeleccionarPorNBoleta]
(
@DocumentoNumero varchar(20)
)
AS
SELECT dbo.farmMovimiento.fechaCreacion, dbo.farmMovimiento.MovNumero,
dbo.FactCatalogoBienesInsumos.Codigo,
dbo.FactCatalogoBienesInsumos.Nombre,
dbo.farmMovimientoVentasDetalle.cantidad, dbo.farmMovimientoVentasDetalle.precio,
dbo.farmMovimientoVentasDetalle.total,
dbo.farmAlmacen.descripcion AS dalmacen, dbo.TiposFinanciamiento.Descripcion AS
dfinanciamiento,
dbo.Empleados.ApellidoPaterno, dbo.Empleados.ApellidoMaterno,
dbo.Empleados.Nombres, dbo.farmMovimiento.idEstadoMovimiento,
dbo.farmMovimientoVentas.idCuentaAtencion,
dbo.farmMovimientoVentas.idTipoFinanciamiento, dbo.farmMovimiento.DocumentoNumero,
dbo.farmMovimientoVentasDetalle.idProducto,
dbo.farmEstadosMovimientos.Estado, dbo.farmMovimiento.idEstadoMovimiento,
dbo.Empleados.Usuario,
dbo.farmMovimientoVentas.idFuenteFinanciamiento, dbo.Atenciones.IdFormaPago AS
idTipoFinanAtenciones,
dbo.farmMovimiento.idAlmacenOrigen,
dbo.farmMovimientoVentas.idServicioPaciente
FROM dbo.TiposFinanciamiento RIGHT OUTER JOIN
dbo.Atenciones ON
dbo.TiposFinanciamiento.IdTipoFinanciamiento = dbo.Atenciones.IdFormaPago RIGHT
OUTER JOIN
dbo.farmMovimiento INNER JOIN
dbo.farmMovimientoVentas ON dbo.farmMovimiento.MovNumero =
dbo.farmMovimientoVentas.movNumero AND
dbo.farmMovimiento.MovTipo = dbo.farmMovimientoVentas.movTipo
ON
dbo.Atenciones.IdCuentaAtencion =
dbo.farmMovimientoVentas.idCuentaAtencion LEFT OUTER JOIN
dbo.farmEstadosMovimientos ON
dbo.farmMovimiento.idEstadoMovimiento =
dbo.farmEstadosMovimientos.idEstadoMovimiento LEFT OUTER JOIN
dbo.farmAlmacen ON dbo.farmMovimiento.idAlmacenOrigen =
dbo.farmAlmacen.idAlmacen LEFT OUTER JOIN
dbo.Empleados ON dbo.farmMovimiento.idUsuario =
dbo.Empleados.IdEmpleado RIGHT OUTER JOIN
dbo.farmMovimientoVentasDetalle ON
dbo.farmMovimientoVentas.movNumero = dbo.farmMovimientoVentasDetalle.MovNumero AND
dbo.farmMovimientoVentas.movTipo =
dbo.farmMovimientoVentasDetalle.MovTipo LEFT OUTER JOIN
dbo.FactCatalogoBienesInsumos ON
dbo.farmMovimientoVentasDetalle.idProducto =
dbo.FactCatalogoBienesInsumos.IdProducto
WHERE dbo.farmMovimiento.idEstadoMovimiento=1
and dbo.farmMovimiento.DocumentoNumero=@DocumentoNumero
and dbo.farmMovimientoVentas.idCuentaAtencion is null
ORDER BY dbo.farmMovimiento.fechaCreacion
go
--me quede probando NI por devolucion de Boleta en Farmacia, no graba
movimientoDetalle.documento

--***************************6-caja
-- farmacia -> rcrystal solo los debb-16/10/2017
-- farmacia -> rIci todo
-- negocios -> reglasComunes solo los debb-16/10/2017
-- negocios -> reglasFarmacia solo los debb-16/10/2017
-- datos -> Parametros solo los debb-16/10/2017
-- reportes -->EconPartidaResumen form todo
-- reportes -->RptEPartidaResumen cls solo los debb-16/10/2017
-- principal --> FormBoleTicket reporte vb
-- principal -> RptBoleta.cls solo los debb-16/10/2017
-- negocios ->reglasCaja solo los debb-16/10/2017
-- principal ->ucGestionCaja solo los debb-16/10/2017
-- comun ->DOCajaNroDocumento todo
-- datos ->cajanroDocumento todo
-- facturacion -->dllFactUcGestionCaja todo
-- ctalogos ->cajadetalle todo
-- comun -> DoFarmPreVenta todo
-- comun -> DoFarmMovimientoVentas todo
-- datos -> FarmPreVenta todo
-- datos ->FarmMovimientoVentas todo
-- negocios ->reglasReportes solo los debb-16/10/2017
-- principal solo los debb-16/10/2017
-- principal ->RptEPartidaResumen.cls todo
-- principal ->RptEpartidaDetalle.cls todo
-- comun ->enumerados solo los debb-16/10/2017

--pa
use sigh
go

ALTER procedure [dbo].[farmMovimientoVentasAgregar](@movNumero VarChar(9),@movTipo


VarChar(1),@tipoVenta VarChar(1),@idPreVenta int,@idTipoFinanciamiento int,
@idPrescriptor int,@idTipoReceta int,@idDiagnostico int,@idCuentaAtencion int,
@IdServicioPaciente int,
@idFuenteFinanciamiento int,@idPaciente int,@dni varchar(20),@nroReceta
varchar(20),@IdUsuarioAuditoria int) as insert into farmMovimientoVentas (
movNumero,movTipo,tipoVenta,idPreVenta,idTipoFinanciamiento,idPrescriptor,idTipoRec
eta,idDiagnostico,idCuentaAtencion,idPaciente,idFuenteFinanciamiento,IdServicioPaci
ente, nroReceta,dni) values (
@movNumero,@movTipo,@tipoVenta,@idPreVenta,@idTipoFinanciamiento,@idPrescriptor,@id
TipoReceta,@idDiagnostico,@idCuentaAtencion,@idPaciente,@idFuenteFinanciamiento,@Id
ServicioPaciente, @nroReceta,@dni)
go
ALTER procedure [dbo].[farmMovimientoVentasModificar](@movNumero VarChar(9),
@movTipo VarChar(1),@tipoVenta VarChar(1),@idPreVenta int,@idTipoFinanciamiento
int,@idPrescriptor int,@idTipoReceta int,@idDiagnostico int,@idCuentaAtencion int,
@IdServicioPaciente int,
@idFuenteFinanciamiento int,@idPaciente int,@dni varchar(20),@nroReceta
varchar(20),@IdUsuarioAuditoria int)as update farmMovimientoVentasset movTipo =
@movTipo,tipoVenta = @tipoVenta,idPreVenta = @idPreVenta,idTipoFinanciamiento =
@idTipoFinanciamiento,idPrescriptor = @idPrescriptor,idTipoReceta = @idTipoReceta,
idDiagnostico = @idDiagnostico,idCuentaAtencion = @idCuentaAtencion,
idFuenteFinanciamiento=@idFuenteFinanciamiento,idPaciente = @idPaciente,
IdServicioPaciente=@IdServicioPaciente,dni=@dni ,nroReceta=@nroReceta where
movNumero = @movNumero and movTipo=@movTipo
go

ALTER procedure [dbo].[farmPreVentaAgregar](@idPreventa int output,@idAlmacen int,


@idVendedor int,@idPaciente int,
@idTipoFinanciamiento int,@Total Money,@idDiagnostico int,@idTipoReceta int,
@idCuentaAtencion int,@idPrescriptor int,@FechaCreacion DateTime,
@HoraCreacion varchar(5),@idUsuario int,@FechaModificacion DateTime,
@idUsuarioModifica int,@idEstadoPreventa int,@observacion varchar(100),@dni
varchar(20),
@nroReceta varchar(20),@IdUsuarioAuditoria int) as
insert into farmPreVenta (
idAlmacen,idVendedor,idPaciente,idTipoFinanciamiento,Total,idDiagnostico,idTipoRece
ta,idCuentaAtencion,idPrescriptor,
FechaCreacion,HoraCreacion,idUsuario,FechaModificacion,idUsuarioModifica,idEstadoPr
eventa,dni,nroReceta,observacion)
values
(
@idAlmacen,@idVendedor,@idPaciente,@idTipoFinanciamiento,@Total,@idDiagnostico,@idT
ipoReceta,@idCuentaAtencion,@idPrescriptor,@FechaCreacion,
@HoraCreacion,@idUsuario,@FechaModificacion,@idUsuarioModifica,@idEstadoPreventa,@d
ni,@nroReceta,@observacion)
set @idPreventa = @@Identity--exec AuditoriaAgregar
@IdUsuarioAuditoria ,'A',@idPreventa,'farmPreVenta'exec
[SGH_NOGUCHI].dbo.FarmPreVenta.uspOrdenAgregarModificar @idpreventa
go

ALTER procedure [dbo].[farmPreVentaModificar](@idPreventa int,@idAlmacen int,


@idVendedor int,@idPaciente int,@idTipoFinanciamiento int,@Total Money,
@idDiagnostico int,@idTipoReceta int,@idCuentaAtencion int,@idPrescriptor int,
@FechaCreacion DateTime,
@HoraCreacion varchar(5),@idUsuario int,@FechaModificacion DateTime,
@idUsuarioModifica int,@idEstadoPreventa int,@observacion varchar(100),@dni
varchar(20),
@nroReceta varchar(20),@IdUsuarioAuditoria int)as
update farmPreVentaset idAlmacen = @idAlmacen,idVendedor = @idVendedor,idPaciente
= @idPaciente,idTipoFinanciamiento = @idTipoFinanciamiento,
Total = @Total,idDiagnostico = @idDiagnostico,idTipoReceta = @idTipoReceta,
idCuentaAtencion = @idCuentaAtencion,idPrescriptor = @idPrescriptor,
FechaCreacion = @FechaCreacion,observacion=@observacion,
HoraCreacion=@HoraCreacion,idUsuario = @idUsuario,FechaModificacion =
@FechaModificacion,idUsuarioModifica = @idUsuarioModifica,
idEstadoPreventa = @idEstadoPreventa,dni=@dni,nroReceta=@nroRecetawhere idPreventa
= @idPreventa
go
INSERT [dbo].[permisos] ([idpermiso], [Descripcion], [modulo]) VALUES (379, 'Caja -
Puede registrar Boletas/Facturas con fecha menor a HOY', 'Caja')
go

delete from [CajaNroDocumento] where idtipoComprobante=5


go
update cajaNroDocumento set nroSerie='002' where idtipoComprobante=3 and idCaja=3
go
delete from CajaTiposComprobante where idtipocomprobante=5
go

alter table CajaNroDocumento add NroSerieF varchar(4) NULL


go
alter table CajaNroDocumento add NroDocumentoF char(12) NULL
go
alter table CajaNroDocumento add NroDocumentoInicialF char(12) NULL
go
alter table CajaNroDocumento add NroDocumentoFinalF char(12) NULL
go
update CajaNroDocumento set NroSerieF='000' where NroSerieF is null
go
update CajaNroDocumento set NroDocumentoF='000001' where NroDocumentoF is null
go
update CajaNroDocumento set NroDocumentoInicialF='000000' where
NroDocumentoInicialF is null
go
update CajaNroDocumento set NroDocumentoFinalF='9999999' where NroDocumentoFinalF
is null
go

ALTER procedure [dbo].[CajaNroDocumentoAgregar](@IdTipoComprobante int,


@NroDocumento char(12) ,@NroSerie char(3) ,@NroDocumentoFinal char(12) ,@IdCaja
int,@NroDocumentoInicial char(12) ,@NroDocumentoF char(12) ,@NroSerieF char(3) ,
@NroDocumentoFinalF char(12) ,@NroDocumentoInicialf char(12),@IdUsuarioAuditoria
int) as insert into CajaNroDocumento (
IdCaja,IdTipoComprobante,NroDocumento,NroSerie,NroDocumentoFinal,NroDocumentoInicia
l,NroDocumentoF,NroSerieF,NroDocumentoFinalF,NroDocumentoInicialF ) values (
@IdCaja,@IdTipoComprobante,@NroDocumento,@NroSerie,@NroDocumentoFinal,@NroDocumento
Inicial,@NroDocumentof,@NroSerief,@NroDocumentoFinalf,@NroDocumentoInicialf)--exec
AuditoriaAgregar @IdUsuarioAuditoria ,'A',@IdCaja,'CajaNroDocumento'
go

ALTER procedure [dbo].[CajaNroDocumentoModificar](@IdTipoComprobante int ,


@NroDocumento char(12) ,@NroSerie char(3) ,@NroDocumentoFinal char(12) ,@IdCaja int
,@NroDocumentoInicial char(12) ,@NroDocumentoF char(12) ,@NroSerieF char(3) ,
@NroDocumentoFinalF char(12) ,@NroDocumentoInicialf char(12),@IdUsuarioAuditoria
int)as update CajaNroDocumentoset NroDocumento = @NroDocumento,NroSerie =
@NroSerie,NroDocumentoFinal = @NroDocumentoFinal,NroDocumentoInicial =
@NroDocumentoInicial,NroDocumentof = @NroDocumentof,NroSerief = @NroSerief,
NroDocumentoFinalf = @NroDocumentoFinalf,NroDocumentoInicialf =
@NroDocumentoInicialfwhere IdTipoComprobante = @IdTipoComprobante andIdCaja =
@IdCaja
go

if not exists (select * from Parametros where idParametro=339)


insert into Parametros(IdParametro,Tipo,Codigo,ValorTexto,Descripcion) VALUES
(339,'DATOS_GENERALES','RUC_EESS','12345678901','RUC del ESTABLECIMIENTO')
go

if not exists (select * from Parametros where idParametro=527)


insert into Parametros(IdParametro,Tipo,Codigo,ValorTexto,Descripcion) VALUES
(527,'Caja','TicketPorBoleta','S','S (El FORMATO TICKET se imprime cuando se genera
BOLETA)')
go
if not exists (select * from Parametros where idParametro=346)
insert into Parametros(IdParametro,Tipo,Codigo,ValorTexto,Descripcion) VALUES
(346,'TICKET','Pie_Ticket','Llegar 30 min. antes de su cita','En el pie de p�gina
del ticket (caja y cita) muetra la observaci�n ')
go

drop PROCEDURE [dbo].[farmSaldoMensualFiltrarFechaYalmacen]


go
create PROCEDURE [dbo].[farmSaldoMensualFiltrarFechaYalmacen]
(@FechaHistoricoXmes datetime , @IdAlmacen int)
AS
SELECT dbo.farmSaldoMensual.*, dbo.FactCatalogoBienesInsumos.Codigo,
dbo.FactCatalogoBienesInsumos.Nombre
FROM dbo.farmSaldoMensual LEFT OUTER JOIN
dbo.FactCatalogoBienesInsumos ON
dbo.farmSaldoMensual.idProducto = dbo.FactCatalogoBienesInsumos.IdProducto
where dbo.farmSaldoMensual.saldo<>0 and
dbo.farmSaldoMensual.idAlmacen=@IdAlmacen
and
dbo.farmSaldoMensual.saldofecha=CONVERT(DATETIME,@FechaHistoricoXmes,103)
order by dbo.farmSaldoMensual.idProducto
go

drop PROCEDURE FarmaciaConsumosPorDNI


go
create procedure FarmaciaConsumosPorDNI
(
@dni varchar(20)
)
as
SELECT dbo.farmMovimiento.fechaCreacion, dbo.farmMovimiento.DocumentoNumero,
dbo.FactCatalogoBienesInsumos.Codigo,
dbo.FactCatalogoBienesInsumos.Nombre,
dbo.farmMovimientoVentasDetalle.cantidad, dbo.farmAlmacen.descripcion AS Farmacia,
dbo.farmMovimiento.MovNumero,
dbo.farmMovimientoVentas.idCuentaAtencion
FROM dbo.farmAlmacen RIGHT OUTER JOIN
dbo.farmMovimientoVentas INNER JOIN
dbo.farmMovimiento ON dbo.farmMovimientoVentas.movNumero =
dbo.farmMovimiento.MovNumero AND
dbo.farmMovimientoVentas.movTipo = dbo.farmMovimiento.MovTipo
ON
dbo.farmAlmacen.idAlmacen =
dbo.farmMovimiento.idAlmacenOrigen LEFT OUTER JOIN
dbo.FactCatalogoBienesInsumos RIGHT OUTER JOIN
dbo.farmMovimientoVentasDetalle ON
dbo.FactCatalogoBienesInsumos.IdProducto =
dbo.farmMovimientoVentasDetalle.idProducto ON
dbo.farmMovimientoVentas.movNumero =
dbo.farmMovimientoVentasDetalle.MovNumero AND
dbo.farmMovimientoVentas.movTipo =
dbo.farmMovimientoVentasDetalle.MovTipo
WHERE (dbo.farmMovimiento.idEstadoMovimiento <> 0) and
dbo.farmMovimientoVentas.dni=@dni
ORDER BY dbo.farmMovimiento.fechaCreacion DESC
go

-------
drop PROCEDURE [dbo].[CajaComprobantesPagoPorFechasConNombreCajas]
go
create PROCEDURE [dbo].[CajaComprobantesPagoPorFechasConNombreCajas]
(
@FechaInicio DATETIME,
@FechaFin datetime
)
AS

SELECT dbo.CajaCaja.Codigo AS cajaCodigo, dbo.CajaCaja.Descripcion AS caja,


dbo.CajaComprobantesPago.*
FROM dbo.CajaComprobantesPago LEFT OUTER JOIN
dbo.CajaCaja ON dbo.CajaComprobantesPago.idCaja =
dbo.CajaCaja.IdCaja
WHERE (dbo.CajaComprobantesPago.FechaCobranza BETWEEN @FechaInicio and
@FechaFin)
ORDER BY dbo.CajaCaja.Codigo, dbo.CajaComprobantesPago.NroSerie,
dbo.CajaComprobantesPago.NroDocumento
go

drop PROCEDURE [dbo].[FactPartidasPresupuestalesSeleccionarTodas]


go
create PROCEDURE [dbo].[FactPartidasPresupuestalesSeleccionarTodas]
AS
select * from FactPartidasPresupuestales
go

drop PROCEDURE [dbo].[CajaComprobantesPagoXnroSerieYDocumentoFechas]


go
create PROCEDURE [dbo].[CajaComprobantesPagoXnroSerieYDocumentoFechas]
(
@FechaIni datetime,
@fechaFin datetime
)
AS

SELECT dbo.FacturacionServicioPagos.idOrdenPago,
dbo.FacturacionServicioPagos.idProducto, dbo.FacturacionServicioPagos.Cantidad,
dbo.FacturacionServicioPagos.Precio as PrecioUnitario,
dbo.FacturacionServicioPagos.Total as totalPorPagar,
dbo.FactCatalogoServicios.Codigo,
dbo.FactCatalogoServicios.Nombre as NombreProducto,
dbo.FactCatalogoServicios.Nombre as Nombre, dbo.FacturacionServicioPagos.Precio as
Precio,
dbo.FacturacionServicioPagos.Total as
total,dbo.FacturacionServicioPagos.Total as Importe,
dbo.FacturacionServicioPagos.idProducto as idProductoCPT,
dbo.FactOrdenServicioPagos.idComprobantePago,
dbo.FactOrdenServicioPagos.idOrden, dbo.FactOrdenServicioPagos.FechaCreacion,
dbo.FactOrdenServicioPagos.IdEstadoFacturacion,
dbo.Pacientes.ApellidoPaterno, dbo.Pacientes.ApellidoMaterno,
dbo.Pacientes.PrimerNombre,
dbo.Pacientes.NroHistoriaClinica,
dbo.CajaComprobantesPago.NroSerie, dbo.CajaComprobantesPago.NroDocumento,
dbo.CajaComprobantesPago.RazonSocial,
dbo.CajaComprobantesPago.RUC, dbo.CajaComprobantesPago.Total As totalboleta ,
dbo.CajaComprobantesPago.FechaCobranza,
dbo.CajaComprobantesPago.IdTipoComprobante,
dbo.CajaComprobantesPago.IdCuentaAtencion,
dbo.CajaComprobantesPago.IdEstadoComprobante,
dbo.CajaComprobantesPago.IdGestionCaja, dbo.CajaComprobantesPago.IdTipoPago,
dbo.CajaComprobantesPago.IdTipoOrden,
dbo.CajaComprobantesPago.Dctos, dbo.CajaComprobantesPago.IdPaciente,
dbo.CajaComprobantesPago.IdCajero,
dbo.CajaComprobantesPago.idTurno, dbo.CajaComprobantesPago.idCaja,

dbo.CajaComprobantesPago.idFormaPago,dbo.CajaComprobantesPago.exoneraciones,dbo.Caj
aComprobantesPago.adelantos,
dbo.CajaComprobantesPago.IGV ,
dbo.CajaComprobantesPago.Subtotal,dbo.FactCatalogoServicios.idPartida
FROM dbo.FacturacionServicioPagos LEFT OUTER JOIN
dbo.FactCatalogoServicios ON
dbo.FacturacionServicioPagos.idProducto = dbo.FactCatalogoServicios.IdProducto LEFT
OUTER JOIN
dbo.FactOrdenServicioPagos ON
dbo.FacturacionServicioPagos.idOrdenPago = dbo.FactOrdenServicioPagos.idOrdenPago
LEFT OUTER JOIN
dbo.CajaComprobantesPago ON
dbo.FactOrdenServicioPagos.idComprobantePago =
dbo.CajaComprobantesPago.IdComprobantePago LEFT OUTER JOIN
dbo.Pacientes ON dbo.CajaComprobantesPago.IdPaciente =
dbo.Pacientes.IdPaciente
WHERE dbo.CajaComprobantesPago.fechaCobranza between @fechaIni and
@fechaFin
go

drop PROCEDURE [dbo].[FacturacionServicioFinanciamientosExoneracionesEnBoleta]


go
create PROCEDURE [dbo].[FacturacionServicioFinanciamientosExoneracionesEnBoleta]
(@IdComprobantePago integer)
AS
SELECT dbo.FactOrdenServicioPagos.idOrdenPago,
dbo.FactOrdenServicioPagos.idComprobantePago, dbo.FactOrdenServicioPagos.idOrden,

dbo.FacturacionServicioFinanciamientos.idProducto,
dbo.FacturacionServicioFinanciamientos.IdTipoFinanciamiento,
dbo.FacturacionServicioFinanciamientos.IdFuenteFinanciamiento ,
dbo.FacturacionServicioFinanciamientos.TotalFinanciado,dbo.FacturacionServicioFinan
ciamientos.CantidadFinanciada
FROM dbo.FactOrdenServicioPagos LEFT OUTER JOIN
dbo.FacturacionServicioFinanciamientos ON
dbo.FactOrdenServicioPagos.idOrden = dbo.FacturacionServicioFinanciamientos.idOrden

Where dbo.FacturacionServicioFinanciamientos.IdTipoFinanciamiento =
9 and dbo.FactOrdenServicioPagos.IdComprobantePago = @IdComprobantePago
go

drop PROCEDURE [dbo].[FacturacionBienesFinanciamientosExoneracionesEnBoletaTodos]


go
create PROCEDURE [dbo].[FacturacionBienesFinanciamientosExoneracionesEnBoletaTodos]

AS
SELECT dbo.FactOrdenesBienes.idComprobantePago,
dbo.FacturacionBienesFinanciamientos.MovNumero,
dbo.FacturacionBienesFinanciamientos.MovTipo,

dbo.FacturacionBienesFinanciamientos.IdProducto,
dbo.FacturacionBienesFinanciamientos.IdTipoFinanciamiento,

dbo.FacturacionBienesFinanciamientos.CantidadFinanciada,
dbo.FacturacionBienesFinanciamientos.PrecioFinanciado,

dbo.FacturacionBienesFinanciamientos.TotalFinanciado
FROM dbo.FactOrdenesBienes RIGHT OUTER JOIN
dbo.FacturacionBienesFinanciamientos ON
dbo.FactOrdenesBienes.MovNumero = dbo.FacturacionBienesFinanciamientos.MovNumero
AND
dbo.FactOrdenesBienes.MovTipo =
dbo.FacturacionBienesFinanciamientos.MovTipo
Where (dbo.FacturacionBienesFinanciamientos.IdTipoFinanciamiento =
9)
go

--********************************21-ici
-- negocios -> reglasfarmacia solo 'debb-20/10/2017
-- farmacia -> rcrystal solo 'debb-20/10/2017
-- principal -> ucGestionCaja solo 'debb-20/10/2017
-- facturacion ->dllFactUCGestionCaja solo 'debb-20/10/2017
-- comun ->DoFarmMovimientoVentas todo

use sigh
go

alter table farmMovimientoVentas add SeDespachoBoleta datetime NULL


go

ALTER PROCEDURE [dbo].[DevuelveCabeceraDeVentasOpreventa]


(@tipoVenta varchar(1),
@IdAlmacen int,
@FechaInicio datetime,
@FechaFin datetime)
AS
if @tipoVenta='D'
begin
SELECT dbo.farmMovimientoVentas.movNumero,
dbo.farmMovimientoVentas.idTipoFinanciamiento, dbo.farmMovimiento.fechaCreacion,
dbo.farmMovimiento.idEstadoMovimiento,
dbo.farmMovimiento.DocumentoNumero AS dalmacen, dbo.farmEstadosMovimientos.Estado,
dbo.TiposFinanciamiento.Descripcion,
dbo.farmMovimientoVentas.idCuentaAtencion, dbo.farmMovimiento.Total,
LTRIM(dbo.Pacientes.ApellidoPaterno) + ' ' +
LTRIM(dbo.Pacientes.ApellidoMaterno) + ' ' + LTRIM(dbo.Pacientes.PrimerNombre) AS
Paciente,
dbo.Pacientes.NroHistoriaClinica,
dbo.farmMovimientoVentas.idFuenteFinanciamiento,dbo.farmMovimientoVentas.idPreventa
,
dbo.farmMovimientoVentas.SeDespachoBoleta
FROM dbo.farmMovimientoVentas INNER JOIN
dbo.farmMovimiento ON
dbo.farmMovimientoVentas.movNumero = dbo.farmMovimiento.MovNumero AND
dbo.farmMovimientoVentas.movTipo =
dbo.farmMovimiento.MovTipo INNER JOIN
dbo.farmAlmacen ON dbo.farmMovimiento.idAlmacenOrigen =
dbo.farmAlmacen.idAlmacen LEFT OUTER JOIN
dbo.Pacientes ON dbo.farmMovimientoVentas.idPaciente =
dbo.Pacientes.IdPaciente LEFT OUTER JOIN
dbo.farmEstadosMovimientos ON
dbo.farmMovimiento.idEstadoMovimiento =
dbo.farmEstadosMovimientos.idEstadoMovimiento LEFT OUTER JOIN
dbo.TiposFinanciamiento ON
dbo.farmMovimientoVentas.idTipoFinanciamiento =
dbo.TiposFinanciamiento.IdTipoFinanciamiento
WHERE (dbo.farmMovimiento.MovTipo='S') and
(dbo.farmMovimiento.idAlmacenOrigen=@IdAlmacen) and
(dbo.farmMovimiento.fechaCreacion Between @FechaInicio and @FechaFin)
ORDER BY dbo.farmMovimiento.fechaCreacion
DESC,dbo.farmMovimientoVentas.movNumero desc

end
else
begin

SELECT ltrim(str(dbo.farmPreVenta.idPreventa))+'F' AS movNumero1,


dbo.farmPreVenta.idTipoFinanciamiento, dbo.farmPreVenta.FechaCreacion,
dbo.farmPreVenta.idEstadoPreventa AS
idEstadoMovimiento, dbo.farmAlmacen.descripcion AS dAlmacen,
dbo.farmEstadosPreventa.Estado,
dbo.TiposFinanciamiento.Descripcion, dbo.farmPreVenta.idCuentaAtencion,
dbo.farmPreVenta.Total, dbo.farmPreVenta.idPreventa AS
movNumero
FROM dbo.farmPreVenta LEFT OUTER JOIN
dbo.farmAlmacen ON dbo.farmPreVenta.idAlmacen =
dbo.farmAlmacen.idAlmacen LEFT OUTER JOIN
dbo.farmEstadosPreventa ON
dbo.farmPreVenta.idEstadoPreventa = dbo.farmEstadosPreventa.idEstadoPreventa LEFT
OUTER JOIN
dbo.TiposFinanciamiento ON
dbo.farmPreVenta.idTipoFinanciamiento =
dbo.TiposFinanciamiento.IdTipoFinanciamiento
WHERE (dbo.farmPreVenta.idAlmacen=@IdAlmacen) and
(dbo.farmPreVenta.fechaCreacion Between @FechaInicio and @FechaFin)
ORDER BY dbo.farmPreVenta.fechaCreacion DESC,dbo.farmPreVenta.horaCreacion
desc
end
go

ALTER procedure [dbo].[farmMovimientoVentasAgregar](@movNumero VarChar(9),@movTipo


VarChar(1),@tipoVenta VarChar(1),@idPreVenta int,@idTipoFinanciamiento int,
@idPrescriptor int,@idTipoReceta int,@idDiagnostico int,@idCuentaAtencion int,
@IdServicioPaciente int,
@idFuenteFinanciamiento int,@idPaciente int,@dni varchar(20),@nroReceta
varchar(20),@SeDespachoBoleta datetime,@IdUsuarioAuditoria int) as
insert into farmMovimientoVentas (
movNumero,movTipo,tipoVenta,idPreVenta,idTipoFinanciamiento,idPrescriptor,idTipoRec
eta,idDiagnostico,idCuentaAtencion,idPaciente,idFuenteFinanciamiento,IdServicioPaci
ente, nroReceta,dni,SeDespachoBoleta)
values
(
@movNumero,@movTipo,@tipoVenta,@idPreVenta,@idTipoFinanciamiento,@idPrescriptor,@id
TipoReceta,@idDiagnostico,@idCuentaAtencion,@idPaciente,@idFuenteFinanciamiento,@Id
ServicioPaciente, @nroReceta,@dni,@SeDespachoBoleta)
go

ALTER procedure [dbo].[farmMovimientoVentasModificar](@movNumero VarChar(9),


@movTipo VarChar(1),@tipoVenta VarChar(1),@idPreVenta int,@idTipoFinanciamiento
int,@idPrescriptor int,@idTipoReceta int,@idDiagnostico int,@idCuentaAtencion int,
@IdServicioPaciente int,
@idFuenteFinanciamiento int,@idPaciente int,@dni varchar(20),@nroReceta
varchar(20),@SeDespachoBoleta datetime,@IdUsuarioAuditoria int)as
update farmMovimientoVentasset movTipo = @movTipo,tipoVenta = @tipoVenta,idPreVenta
= @idPreVenta,idTipoFinanciamiento = @idTipoFinanciamiento,idPrescriptor =
@idPrescriptor,idTipoReceta = @idTipoReceta,idDiagnostico = @idDiagnostico,
idCuentaAtencion = @idCuentaAtencion,
idFuenteFinanciamiento=@idFuenteFinanciamiento,idPaciente = @idPaciente,
IdServicioPaciente=@IdServicioPaciente,dni=@dni ,nroReceta=@nroReceta,
SeDespachoBoleta=@SeDespachoBoleta
where movNumero = @movNumero and movTipo=@movTipo
go

UPDATE PARAMETROS SET descripcion='S (BOLETA/FACTURA DE SERVICIOS no se toma en


cuenta para subir a la SUNAT' WHERE IDPARAMETRO=532
go
ALTER PROCEDURE [dbo].[farmDevuelveMovimientosParaICIeIDIPorTproducto]
(@FechaInicio datetime,
@FechaFin datetime,
@idAlmacen int,
@movTipo varchar(1)
)
AS
if @movTipo=''
begin
SELECT dbo.farmMovimientoDetalle.MovNumero,
dbo.farmMovimientoDetalle.MovTipo, dbo.farmMovimientoDetalle.idProducto,
dbo.farmMovimientoDetalle.Cantidad,
dbo.FactCatalogoBienesInsumos.Codigo, dbo.FactCatalogoBienesInsumos.Nombre,
dbo.farmMovimiento.idTipoConcepto,
dbo.farmMovimiento.fechaCreacion,
dbo.farmMovimiento.idAlmacenOrigen,
dbo.farmMovimiento.idAlmacenDestino,dbo.farmMovimiento.idUsuario,
dbo.farmMovimiento.DocumentoNumero,
dbo.farmMovimientoDetalle.idTipoSalidaBienInsumo,
dbo.farmMovimientoDetalle.Precio
FROM dbo.farmMovimientoDetalle LEFT OUTER JOIN
dbo.farmMovimiento ON
dbo.farmMovimientoDetalle.MovNumero = dbo.farmMovimiento.MovNumero AND
dbo.farmMovimientoDetalle.MovTipo =
dbo.farmMovimiento.MovTipo LEFT OUTER JOIN
dbo.FactCatalogoBienesInsumos ON
dbo.farmMovimientoDetalle.idProducto = dbo.FactCatalogoBienesInsumos.IdProducto
WHERE (dbo.farmMovimiento.idEstadoMovimiento = 1) and
(dbo.farmMovimiento.fechaCreacion Between @FechaInicio and @FechaFin)
ORDER BY dbo.farmMovimientoDetalle.idProducto,
dbo.farmMovimientoDetalle.idTipoSalidaBienInsumo, dbo.farmMovimiento.fechaCreacion,

dbo.farmMovimientoDetalle.MovNumero,dbo.farmMovimientoDetalle.MovTipo
end
else
begin
if @movTipo='S'
begin
SELECT dbo.farmMovimientoDetalle.MovNumero,
dbo.farmMovimientoDetalle.MovTipo, dbo.farmMovimientoDetalle.idProducto,
dbo.farmMovimientoDetalle.Cantidad,
dbo.FactCatalogoBienesInsumos.Codigo, dbo.FactCatalogoBienesInsumos.Nombre,
dbo.farmMovimiento.idTipoConcepto,
dbo.farmMovimiento.fechaCreacion,
dbo.farmMovimiento.idAlmacenOrigen,
dbo.farmMovimiento.idAlmacenDestino,dbo.farmMovimiento.idUsuario,
dbo.farmMovimiento.DocumentoNumero,
dbo.farmMovimientoDetalle.idTipoSalidaBienInsumo,
dbo.farmMovimientoDetalle.Precio
FROM dbo.farmMovimientoDetalle LEFT OUTER JOIN
dbo.farmMovimiento ON
dbo.farmMovimientoDetalle.MovNumero = dbo.farmMovimiento.MovNumero AND
dbo.farmMovimientoDetalle.MovTipo =
dbo.farmMovimiento.MovTipo LEFT OUTER JOIN
dbo.FactCatalogoBienesInsumos ON
dbo.farmMovimientoDetalle.idProducto = dbo.FactCatalogoBienesInsumos.IdProducto
WHERE (dbo.farmMovimiento.idEstadoMovimiento = 1) and
(dbo.farmMovimiento.fechaCreacion Between @FechaInicio and @FechaFin)
and (dbo.farmMovimiento.idAlmacenOrigen=@idAlmacen)
and dbo.farmMovimientoDetalle.MovTipo=@movTipo
ORDER BY dbo.farmMovimientoDetalle.idProducto,
dbo.farmMovimientoDetalle.idTipoSalidaBienInsumo, dbo.farmMovimiento.fechaCreacion,

dbo.farmMovimientoDetalle.MovNumero,dbo.farmMovimientoDetalle.MovTipo
end
else
begin
SELECT dbo.farmMovimientoDetalle.MovNumero,
dbo.farmMovimientoDetalle.MovTipo, dbo.farmMovimientoDetalle.idProducto,
dbo.farmMovimientoDetalle.Cantidad,
dbo.FactCatalogoBienesInsumos.Codigo, dbo.FactCatalogoBienesInsumos.Nombre,
dbo.farmMovimiento.idTipoConcepto,
dbo.farmMovimiento.fechaCreacion,
dbo.farmMovimiento.idAlmacenOrigen,
dbo.farmMovimiento.idAlmacenDestino,dbo.farmMovimiento.idUsuario,
dbo.farmMovimiento.DocumentoNumero,
dbo.farmMovimientoDetalle.idTipoSalidaBienInsumo,
dbo.farmMovimientoDetalle.Precio

FROM dbo.farmMovimientoDetalle LEFT OUTER JOIN


dbo.farmMovimiento ON
dbo.farmMovimientoDetalle.MovNumero = dbo.farmMovimiento.MovNumero AND
dbo.farmMovimientoDetalle.MovTipo =
dbo.farmMovimiento.MovTipo LEFT OUTER JOIN
dbo.FactCatalogoBienesInsumos ON
dbo.farmMovimientoDetalle.idProducto = dbo.FactCatalogoBienesInsumos.IdProducto
WHERE (dbo.farmMovimiento.idEstadoMovimiento = 1) and
(dbo.farmMovimiento.fechaCreacion Between @FechaInicio and @FechaFin)
and (dbo.farmMovimiento.idAlmacenDestino=@idAlmacen)
and dbo.farmMovimientoDetalle.MovTipo=@movTipo
ORDER BY dbo.farmMovimientoDetalle.idProducto,
dbo.farmMovimientoDetalle.idTipoSalidaBienInsumo, dbo.farmMovimiento.fechaCreacion,

dbo.farmMovimientoDetalle.MovNumero,dbo.farmMovimientoDetalle.MovTipo
end
end
go

---
drop PROCEDURE [dbo].[farmMovimientoFiltrarXfechas]
go
create PROCEDURE [dbo].[farmMovimientoFiltrarXfechas]
(@FechaInicio datetime , @FechaFin datetime)
AS
SELECT dbo.farmMovimiento.fechaCreacion,
dbo.farmMovimientoVentas.idFuenteFinanciamiento,
dbo.farmMovimientoVentas.idTipoFinanciamiento,
dbo.farmMovimientoVentas.IdServicioPaciente
,dbo.farmMovimiento.MovTipo
,dbo.farmMovimiento.idAlmacenOrigen,dbo.farmMovimiento.DocumentoNumero
FROM dbo.farmMovimiento INNER JOIN
dbo.farmMovimientoVentas ON
dbo.farmMovimiento.MovNumero = dbo.farmMovimientoVentas.movNumero AND
dbo.farmMovimiento.MovTipo =
dbo.farmMovimientoVentas.MovTipo
Where dbo.farmMovimiento.idEstadoMovimiento=1 and
(dbo.farmMovimiento.fechaCreacion Between
(CONVERT(DATETIME,@FechaInicio,103))
and (CONVERT(DATETIME,@FechaFin,103)))
go

drop PROCEDURE [dbo].[farmMovimientoFiltrarIntervSanitaria]


go
create PROCEDURE [dbo].[farmMovimientoFiltrarIntervSanitaria]
(@FechaInicio datetime , @FechaFin datetime)
AS
SELECT DocumentoNumero,idAlmacenOrigen
From farmMovimiento
WHERE (MovTipo = 'S') AND (idTipoConcepto = 16) and
(idEstadoMovimiento=1) and (fechaCreacion Between
(CONVERT(DATETIME,@FechaInicio,103))
and (CONVERT(DATETIME,@FechaFin,103)))
go

drop PROCEDURE [dbo].[farmSaldoMensualFiltrarFecha]


go
create PROCEDURE [dbo].[farmSaldoMensualFiltrarFecha]
( @Where Varchar (2500))
AS

DECLARE @SQL AS VARCHAR(3500)

IF @Where = ''

BEGIN
SET @SQL = 'SELECT dbo.farmSaldoMensual.*,
dbo.FactCatalogoBienesInsumos.Codigo, dbo.FactCatalogoBienesInsumos.Nombre
FROM dbo.farmSaldoMensual LEFT OUTER JOIN
dbo.FactCatalogoBienesInsumos ON
dbo.farmSaldoMensual.idProducto = dbo.FactCatalogoBienesInsumos.IdProducto
where dbo.farmSaldoMensual.saldo<>0
order by dbo.farmSaldoMensual.idProducto'
END

ELSE

BEGIN
SET @SQL = 'SELECT dbo.farmSaldoMensual.*,
dbo.FactCatalogoBienesInsumos.Codigo, dbo.FactCatalogoBienesInsumos.Nombre
FROM dbo.farmSaldoMensual LEFT OUTER JOIN
dbo.FactCatalogoBienesInsumos ON
dbo.farmSaldoMensual.idProducto = dbo.FactCatalogoBienesInsumos.IdProducto
where dbo.farmSaldoMensual.saldo<>0 ' +
@Where +'
order by dbo.farmSaldoMensual.idProducto'

END
EXECUTE (@SQL)
go
--******************************** receta manual
--negocios -> reglasFarmacia solo debb-24/10/2017
--negocios ->ucFacturacionFarm,RegistraRecetaManual,ucFacturacionFarm1
--comun ->DoRecetaCabecera
--datos ->RecetaCabecera
-- negociogs ->ReglasAdmision solo debb-24/10/2017
--negocios->reglasComunes solo debb-24/10/2017
--facturacion->dllFactUCGestionCaja solo debb-24/10/2017

--pa
use sigh
go

update parametros set valorTexto='06684' where idParametro=280


go

alter table RecetaCabecera add RecetaManual varchar(20) NULL


go
alter table RecetaCabecera add RecetaTipo varchar(1) NULL
go

alter table RecetaCabecera add Paciente varchar(100) NULL


go
alter table RecetaCabecera add dni varchar(20) NULL
go
alter table RecetaCabecera add idPaciente int NULL
go

alter table RecetaCabecera add Medico varchar(100) NULL


go

alter table RecetaCabecera add idEstablecimiento int NULL


go
alter table RecetaCabecera add idEstablecimientoNOminsa int NULL
go
alter table RecetaCabecera add idDiagnostico int NULL
go
alter table RecetaCabecera add fechaVigencia datetime null
go

CREATE TABLE [dbo].[RecetaDetalleItem](


[idReceta] [int] NOT NULL,
[DocumentoDespacho] [varchar](20) NOT NULL,
CONSTRAINT [PK_RecetaDetalleItem] PRIMARY KEY CLUSTERED
(
[idReceta] ASC,
[DocumentoDespacho] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER procedure [dbo].[RecetaCabeceraModificar](@idReceta int,@IdPuntoCarga int,
@FechaReceta DateTime,@idCuentaAtencion int,@idServicioReceta int,@idEstado int,
@DocumentoDespacho VarChar(20),@idComprobantePago int,
@idMedicoReceta int,@RecetaManual varchar(20),@RecetaTipo varchar(1), @Paciente
varchar(100),@dni varchar(20),@idPaciente int,@Medico varchar(100),
@idEstablecimiento int,@idEstablecimientoNOminsa int,@idDiagnostico int,
@fechaVigencia datetime,@IdUsuarioAuditoria int)as update RecetaCabeceraset
IdPuntoCarga = @IdPuntoCarga,FechaReceta = @FechaReceta,idCuentaAtencion =
@idCuentaAtencion,idServicioReceta = @idServicioReceta,idEstado = @idEstado,
DocumentoDespacho = @DocumentoDespacho,idComprobantePago = @idComprobantePago,
idMedicoReceta=@idMedicoReceta,RecetaManual=@RecetaManual ,RecetaTipo=@RecetaTipo ,
Paciente =@Paciente ,dni=@dni ,idPaciente=@idPaciente ,Medico=@Medico ,
idEstablecimiento=@idEstablecimiento ,idEstablecimientoNOminsa
=@idEstablecimientoNOminsa ,idDiagnostico=@idDiagnostico ,
fechaVigencia=@fechaVigencia where idReceta = @idReceta
go

ALTER procedure [dbo].[RecetaCabeceraAgregar](@idReceta int output,@IdPuntoCarga


int,@FechaReceta DateTime,@idCuentaAtencion int,@idServicioReceta int,@idEstado
int,@DocumentoDespacho VarChar(20),@idComprobantePago int,
@idMedicoReceta int,@RecetaManual varchar(20),@RecetaTipo varchar(1), @Paciente
varchar(100),@dni varchar(20),@idPaciente int,@Medico varchar(100),
@idEstablecimiento int,@idEstablecimientoNOminsa int,@idDiagnostico int,
@fechaVigencia datetime,@IdUsuarioAuditoria int) as insert into RecetaCabecera (
IdPuntoCarga,FechaReceta,idCuentaAtencion,idServicioReceta,idEstado,DocumentoDespac
ho,idComprobantePago,idMedicoReceta,
RecetaManual,RecetaTipo,Paciente,dni,idPaciente,Medico,idEstablecimiento,idEstablec
imientoNOminsa,idDiagnostico,fechaVigencia ) values (
@IdPuntoCarga,@FechaReceta,@idCuentaAtencion,@idServicioReceta,@idEstado,@Documento
Despacho,@idComprobantePago,@idMedicoReceta,
@RecetaManual,@RecetaTipo,@Paciente,@dni,@idPaciente,@Medico,@idEstablecimiento,@id
EstablecimientoNOminsa,@idDiagnostico,@fechaVigencia)set @idReceta = @@identity
go

update farmMovimientoVentas set


SeDespachoBoleta =(select top 1 fechaCreacion from FarmMovimiento where
FarmMovimiento.movNumero =FarmMovimientoventas.movNumero
and FarmMovimiento.MovTipo ='S')
where SeDespachoBoleta is null
go

También podría gustarte