Bloqueo tarjetas de credito

Buenas tardes,

Necesito hacer un bloqueo para cuando se repitan las tarjetas de crédito actualmente tengo este query el cual si bloquea si se repite pero tengo un problema cuando son canceladas ya que ahí si me debe dejar ingresar así este repetido por que el documento esta cancelado les comparto el query que realicé Según revisé las tarjetas de crédito se guardan en la tabla RCT3 y se enlazan con los pagos en la tabla ORCT su ayuda por favor si estoy mal solo me falta que valide que los documentos que estén cancelados es decir que los ORCT cancelados y que pertenecen a las tarjetas de crédito deben dejar grabar por el echo de que estan cancelados:

IF :object_type =‘24’ AND (:transaction_type = ‘A’ )
THEN
DECLARE VAR1 INT;
(
SELECT COUNT(*)

    into VAR1
	
	FROM RCT3 T0
	INNER JOIN ORCT T2 ON T0."DocNum" = T2."DocEntry" 
	LEFT JOIN RCT3 T1 ON T1."DocNum"!= :list_of_cols_val_tab_del and T2."Canceled" = 'N'
	AND 
	
	T0."OwnerIdNum" = T1."OwnerIdNum" AND
	T0."VoucherNum"= T1."VoucherNum"
	
	WHERE 
	T0."DocNum"!=T1."DocNum" and
	T0."DocNum"= :list_of_cols_val_tab_del and
	T2."Canceled" = 'N'
	
	
);
	
	IF VAR1 > 0
	
	THEN 
	error := -920;
	error_message := 'SP: El Numero de Transaccion de la TC esta repetido';
END IF;

END IF;

En este ajuste, ahora se incluye la condición AND T1."Canceled" = 'Y' en la cláusula WHERE para validar que los documentos relacionados con las tarjetas de crédito canceladas se permitan grabar. Esta condición permite la repetición de documentos incluso si están relacionados con tarjetas de crédito canceladas, evitando el bloqueo en esos casos específicos.

IF :object_type = ‘24’ AND :transaction_type = ‘A’ THEN
DECLARE VAR1 INT;

SELECT COUNT(*) INTO VAR1
FROM RCT3 T0
INNER JOIN ORCT T2 ON T0."DocNum" = T2."DocEntry" 
LEFT JOIN RCT3 T1 ON T1."DocNum" != :list_of_cols_val_tab_del AND T2."Canceled" = 'N'
AND T0."OwnerIdNum" = T1."OwnerIdNum" AND T0."VoucherNum" = T1."VoucherNum"

WHERE T0."DocNum" != T1."DocNum" AND T0."DocNum" = :list_of_cols_val_tab_del AND 
T2."Canceled" = 'N' AND T1."Canceled" = 'Y';  -- Validar documentos cancelados

IF VAR1 > 0 AND :transaction_type != 'C' THEN
	error := -920;
	error_message := 'SP: El Número de Transacción de la TC está repetido';
END IF;

END IF;

Buenas hasta donde he revisado la tabla ORCT3 no tiene un estado de “CANCELADO”