Respuesta: Guardar la informacion de un asp en mi BD Este es el SQL
ALTER PROCEDURE [dbo].[qryTraspasoAlmacen_App](
@intEmpresa INT,
@intSucursal INT,
@intAlmacenOrigen INT,
@intSubAlmacenOrigen INT,
@intAlmacenDestino INT,
@intSubAlmacenDestino INT,
@intArticulo INT,
@dblCantidad NUMERIC(18,4),
@datFecha DATETIME,
@strUsuario VARCHAR (50),
@strMaquina VARCHAR (50)
)
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION traspasoEntreAlmacenes
--Se declaran las variables para utilizar en el store procedure
--Que registra los movimientos
DECLARE @intTipoMovimiento INT,
@intMovimiento INT,
@dblCosto NUMERIC(18,2)
SET @intMovimiento = 0
SET @dblCosto = 0
-- DECLARE @strResult VARCHAR(100)
DECLARE @strDetalle VARCHAR(100)
--Se inserta el registro que indica que se hace un traspaso entre almacenes
--en la tabla tbTraspasoEntreAlmacenes
INSERT INTO tbTraspasoAlmacen(intEmpresa,intSucursal,intAlmace nOrigen,intSubAlmacenOrigen,intAlmacenDestino,
intSubAlmacenDestino,intArticulo,dblCantidad,dblCo sto,datFecha)
VALUES(@intEmpresa,@intSucursal,@intAlmacenOrigen, @intSubAlmacenOrigen,@intAlmacenDestino,@intSubAlm acenDestino,
@intArticulo,@dblCantidad,0,@datFecha)
--Ahora se empiezan a generar los registros de los movimientos
--se tienen que generar dos registros un registro de salida para el almacen origen
--y un registro de entrada para el almacen destino
--||
--\/
--Se empieza el registro de salida.
--se obtiene el id del movimiento de salida por traspaso de almacen
SELECT
@intMovimiento = intTipoMovimientoMP
FROM
tbTiposMovimientosMP
WHERE
UPPER(strNombre) LIKE UPPER('%salida%traspaso%alma%')
AND intEmpresa = @intEmpresa
--Si no se encontro el tipo de movimiento de salida por traspaso de almacen
--se manda un error para que no se haga ni un cambio
IF(@intMovimiento IS NULL OR @intMovimiento = 0)
BEGIN
RAISERROR('No se puede efectuar el traspaso de almacenes no se ha dado de alta el tipo de movimiento',16,1)
END
--Se ejecuta el movimiento de salida
EXECUTE qryRegistrosMovimientosMP_App @intEmpresa, @intSucursal, 0, @datFecha, 2,
@intMovimiento, @intAlmacenOrigen, @intSubAlmacenOrigen,
@intArticulo, @dblCantidad, 0, '', '', NULL, @strUsuario, @strMaquina
-- SET @strResult=CAST(IDENT_CURRENT('tbMovimientosMP') AS VARCHAR(12))
SET @strDetalle=CAST(IDENT_CURRENT('tbMovimientosMP') AS VARCHAR(12))
--ahora se ejecutan los movimientos de entrada por traspaso de almacenes
SET @intMovimiento = 0--se resetea el id del movimiento
--se obtiene el movimiento de entrada por traspaso de almacen
SELECT
@intMovimiento = intTipoMovimientoMP
FROM
tbTiposMovimientosMP
WHERE
UPPER(strNombre) LIKE UPPER('%entrada%traspaso%alma%')
AND intEmpresa = @intEmpresa
--Si no se encontro el tipo de movimiento de entrada por traspaso de almacen
--se manda un error para que no se haga ni un cambio
IF(@intMovimiento IS NULL OR @intMovimiento = 0)
BEGIN
RAISERROR('No se puede efectuar el traspaso de almacenes no se ha dado de alta el tipo de movimiento',16,1)
END
--Se ejecuta el movimiento de entrada
EXECUTE qryRegistrosMovimientosMP_App @intEmpresa, @intSucursal, 0, @datFecha, 1,
@intMovimiento, @intAlmacenDestino, @intSubAlmacenDestino,
@intArticulo, @dblCantidad, 0, '', '', NULL, @strUsuario, @strMaquina
-- SET @strResult=@strResult+CAST(IDENT_CURRENT('tbMovimi entosMP') AS VARCHAR(12))
SET @strDetalle=@strDetalle+CAST(IDENT_CURRENT('tbMovi mientosMP') AS VARCHAR(12))
--si lllegamos hasta aca pues se efetuo la operacion sin ni un error entonces
--se aceptan todos los cambios
COMMIT TRANSACTION traspasoEntreAlmacenes
-- SELECT @strResult
SELECT @strDetalle
END TRY
BEGIN CATCH
--COMO HAY ERROR DESHACEMOS TODOS LOS CAMBIOS HECHOS ANTERIORMENTE
ROLLBACK TRANSACTION traspasoEntreAlmacenes
--SE DECLARAN LAS VARIABLES QUE SE UTILIZARAN PARA EL ENVIO DE MENSAJE DE ERROR
DECLARE @msgError NVARCHAR(2000)
--SE ASIGNA EL MENSAJE DE ERROR QUE CONTIENE EL NÚMERO DE ERROR GENERADO
--Y EL MENSAJE DE ERROR QUE SE GENERO
SET @msgError = ' ERROR NUMBER: ' + CAST(ERROR_NUMBER() AS NVARCHAR(1000)) + CHAR(13) +
' ERROR MESSAGE: ' + ERROR_MESSAGE() + ' ALL CHANGES ROLLBACK'
--AHORA LANZAMOS EL MENSAJE DE ERROR PARA INDICAR QUE HUBO UN ERROR
RAISERROR(@msgError,16,1)
RETURN
END CATCH
END |