Hola. En la empresa donde trabajo utilizamos segmentos de proyectos y varios almacenes. Ahora la cuestion. El personal de almacén quiere que coloquemos un candado, para que no se pueda generar la solicitud de traslado y el traslado de la mercancia a 2 almacenes especificos si dentro del contenido de los documentos no se agrega el codigo del proyecto. Tengo entendido que se puede llevar a cabo por medio de validaciones en el Stored Procedure, la cuestion es que no se como hacerlo ya que el codigo de estoy colocando no me permite realizar esto para los almacenes especificos.
Este es el codigo que estoy colocando.
-- Variable de lineas con proyecto
DECLARE @CONT3 INT
-- Variable de lineas de documento
DECLARE @VAR3 INT
-- Variable de lineas sin stock
DECLARE @CONT4 INT
-- Variable de almacen
DECLARE @ALM INT
IF @object_type = '1250000001' AND @transaction_type IN ('A','U')
BEGIN
SET @CONT3 = (SELECT COUNT(T0.Project) FROM WTQ1 T0 INNER JOIN OWTQ T1 ON T0.DocEntry = T1.DocEntry
WHERE T0.Project <> ' ' AND T1.DocEntry = @list_of_cols_val_tab_del)
SET @VAR3 = (SELECT COUNT(T0.LineNum) FROM WTQ1 T0 INNER JOIN OWTQ T1 ON T0.DocEntry = T1.DocEntry
WHERE T1.DocEntry = @list_of_cols_val_tab_del)
SET @CONT4 = (SELECT COUNT (T0.[OnHand]) FROM OITW T0 , WTQ1 T1 INNER JOIN OWTQ T2 ON T1.DocEntry = T2.DocEntry
WHERE T1.[ItemCode] = T0.[ItemCode] AND T1.[FromWhsCod] = T0.[WhsCode] AND T0.[OnHand] = 0 AND T1.DocEntry = @list_of_cols_val_tab_del)
IF (@CONT3 <> @VAR3) AND (@ALM = 01 OR @ALM = 04 OR @ALM = 05 OR @ALM = 06 OR @ALM = 07 OR @ALM = 08 OR @ALM = 09 OR @ALM = 10 OR @ALM = 11 OR @ALM = 12 OR @ALM = 13)
BEGIN
SELECT @error = 1
SELECT @error_message = 'Existe alguna línea del documento sin Proyecto'
END
BEGIN
SET @ALM = (SELECT COUNT(T1.WhsCode) FROM OWTQ T0 INNER JOIN WTQ1 T1 ON T0.DocEntry = T1.DocEntry WHERE T1.DocEntry = @list_of_cols_val_tab_del)
IF @ALM = 02 OR @ALM = 03 AND (@CONT3 <> @VAR3)
BEGIN
SELECT @error = 2
SELECT @error_message = 'El almacén destino necesita un proyecto especifico'
END
END
END
De antemano gracias por el apoyo.