/****** spPNetAdminUsuarios_Datos ******/
IF EXISTS (SELECT * FROM sysobjects WHERE NAME = 'spPNetAdminUsuarios_Datos' AND TYPE = 'P') DROP PROCEDURE dbo.spPNetAdminUsuarios_Datos
GO  
CREATE PROCEDURE dbo.spPNetAdminUsuarios_Datos
	@Usuario			varchar(10),
	@Nombre				varchar(100),
	@ApellidoPaterno	varchar(100)	= NULL,
	@ApellidoMaterno	varchar(100)	= NULL,
	@Telefono			varchar(100)	= NULL,
	@Email				varchar(50)		= NULL,
	@IDRole				int,
	@DefEmpresa			varchar(5),
	@Sucursal			int,
	@Estatus			varchar(15),
	@EmpresaUsuarioD	varchar(MAX),
	@SucursalAcceso		varchar(MAX),
	@DefAlmacen			varchar(10)		= NULL,
	@DefAgente			varchar(10)		= NULL,
	@Personal			varchar(10)		= NULL,
	@GrupoTrabajo		varchar(50)		= NULL,
	@Departamento		varchar(50)		= NULL,
	@Observaciones		varchar(MAX)	= NULL,
	@Contrasena			varchar(32)		= NULL
-- WITH ENCRYPTION  
AS
BEGIN
SET NOCOUNT ON

	IF EXISTS (SELECT 1 FROM Usuario WHERE DefAgente = @DefAgente AND Usuario <> @Usuario)
	BEGIN
		--RAISERROR ('El agente ya está asignado a otro usuario.', 16, 1);
		SELECT -1 AS Ok, 'El agente ya está asignado a otro usuario' AS OkRef
		RETURN;
	END
	ELSE


	IF(@Contrasena IS NOT NULL)
	BEGIN
		SET @Contrasena = dbo.fnPassword(UPPER(@Contrasena))
	END


	IF NOT EXISTS(SELECT Usuario FROM Usuario WHERE Usuario = @Usuario)
	BEGIN
		INSERT	INTO Usuario (Usuario,			Telefono,		Email,			DefEmpresa,		Sucursal,		Estatus,				DefAlmacen,		DefAgente, 
							 Personal,			GrupoTrabajo,   Departamento,   Observaciones,  Contrasena,		ContrasenaConfirmacion,	Alta,			Nombre)
				SELECT		 UPPER(@Usuario),	@Telefono,		@Email,			@DefEmpresa,	@Sucursal,		@Estatus,				@DefAlmacen,	@DefAgente, 
							 @Personal,			@GrupoTrabajo,	@Departamento,  @Observaciones, @Contrasena,	@Contrasena,			GETDATE(),		@Nombre + ISNULL(' ' + @ApellidoPaterno, '') + ISNULL(' ' + @ApellidoMaterno, '')
	END
	ELSE
	BEGIN
		UPDATE	Usuario
		   SET	Usuario					= UPPER(@Usuario),
				Telefono				= @Telefono,
				Email					= @Email,
				DefEmpresa				= @DefEmpresa,
				Sucursal				= @Sucursal,
				Estatus					= @Estatus,
				DefAlmacen				= @DefAlmacen,
				DefAgente				= @DefAgente,
				Personal				= @Personal,
				GrupoTrabajo			= @GrupoTrabajo,
				Departamento			= @Departamento,
				Observaciones			= @Observaciones,
				Contrasena				= ISNULL(@Contrasena, Contrasena),
				ContrasenaConfirmacion	= ISNULL(@Contrasena, ContrasenaConfirmacion),
				Nombre					= @Nombre + ISNULL(' ' + @ApellidoPaterno, '') + ISNULL(' ' + @ApellidoMaterno, '')
		 WHERE	Usuario					= UPPER(@Usuario)
	END

	IF EXISTS(SELECT Usuario FROM Usuario WHERE Usuario = @Usuario)
	BEGIN
		DELETE	UsuarioD WHERE Usuario = @Usuario
		INSERT	INTO UsuarioD (Usuario, Empresa)
		SELECT	@Usuario, S.Valor
		  FROM	dbo.fnSplitTable(@EmpresaUsuarioD, ',') AS S
		  JOIN	Empresa E ON S.Valor = E.Empresa
		 WHERE	NULLIF(S.Valor, '') IS NOT NULL

		DELETE	UsuarioSucursalAcceso WHERE Usuario = @Usuario
		INSERT	INTO UsuarioSucursalAcceso (Usuario, Sucursal)
		SELECT	@Usuario, T.Valor
		  FROM	dbo.fnSplitTable(@SucursalAcceso, ',') AS T
		  JOIN	Sucursal S ON T.Valor = S.Sucursal
		 WHERE	NULLIF(T.Valor, '') IS NOT NULL

		IF EXISTS(SELECT IDRole FROM pNetRole WHERE IDUsuarioTipo = 8 AND IDRole = @IDRole)
		BEGIN
			DELETE	pNetRoleUsuario WHERE Usuario = @Usuario
			INSERT	INTO pNetRoleUsuario (IDRole, Usuario)
			VALUES (@IDRole, @Usuario)
		END
	END

	--SELECT @Usuario Usuario
	SELECT 1 AS Ok, 'Operación completada exitosamente' AS OkRef;

RETURN
SET NOCOUNT OFF
END
GO
BEGIN TRAN
--	EXEC dbo.spPNetAdminUsuarios_Datos
--		@Usuario			= 'borisous',
--		@Nombre				= 'Mauricio',
--		@ApellidoPaterno	= 'Perez',
--		@ApellidoMaterno	= 'De La Pe�a',
--		@Telefono			= '5549485766',
--		@Email				= 'mail@gmail.com',
--		@IDRole				= '13',
--		@DefEmpresa			= 'DEMO',
--		@Sucursal			= '0',
--		@Estatus			= 'ALTA',
--		@EmpresaUsuarioD	= 'DEMO,CURSO',
--		@SucursalAcceso		= '0,2',
--		@DefAlmacen			= 'AF',
--		@DefAgente			= '2',
--		@Personal			= '2',
--		@GrupoTrabajo		= 'GRUPO',
--		@Departamento		= 'DEPTO',
--		@Observaciones		= 'ES BUENO',
--		@Contrasena			= 'DEMO'

--EXEC dbo.spPNetAdminUsuarios_Datos
--	@DefAgente= 'VENTAS 2',
--	@DefAlmacen= '(TRANSITO)',
--	@DefEmpresa= 'DEMO',
--	@Departamento= 'departamento producto',
--	@Email= 'borisous@gmail.com',
--	@EmpresaUsuarioD= 'CURSO,DEMO',
--	@Estatus= 'ALTA',
--	@GrupoTrabajo= 'grupo portalnet',
--	@IDRole= 12,
--	@Nombre= 'mauricio P�rez De La Pe�a',
--	@Observaciones= 'Soy el mejor de todos',
--	@Personal= '5',
--	@Sucursal= 0,
--	@SucursalAcceso= '0,3',
--	@Telefono= '5540886983',
--	@Usuario= 'BORISOUS'


--	SELECT * FROM vwPNetAdminUsuarios_Usuario WHERE Usuario = 'borisous'
--	SELECT * FROM Usuario WHERE Usuario = 'borisous'
--	SELECT * FROM USUARIOD WHERE Usuario = 'borisous'
--	SELECT * FROM UsuarioSucursalAcceso WHERE Usuario = 'borisous'
ROLLBACK TRAN
