Hola, espero me puedan orientar en lo que estoy mal.
Resulta que necesito controlar de que no se ingrese una misma factura dos veces, la forma de controlar es verificando de que la factura que se está creando, el socio de negocio en ella no exista con el mismo foliopref y folionum en la base de datos.
Mi idea fue crear tres variables en donde guardo el foliopref, folionum y cardcode de la factura que se encuentra en ventana y luego en otras variables dos cuento cuantas veces existe el foliopref en conjunto con el cardcode, lo mismo para el folionum, luego pregunto que si ambas variables contienen un número distinto a cero no deje crear la factura, porque eso quiere decir que ya existe, sin embargo si alguno es cero si deje crear la factura.
Bueno aquí está el código:
If @object_type = 18 AND @transaction_type IN ('A')
Begin
declare @NFolioBD as int --Cuenta cuantas veces existe el n°folio en la bd
declare @NFolioFC as int --Nº Folio Factura en Ventana
declare @IndicadorBD as int --Cuenta cuantas veces existe el indicador en la bd
declare @IndicadorFC as nvarchar (2) --Indicador Factura en Ventana
declare @SNegocioFC as nvarchar (15) --Socio de Negocio Factura en Ventana
Set @IndicadorFC= (select FolioPref From OPCH where @list_of_cols_val_tab_del = DocEntry)-- asigno el foliopref de la factura en ventana.
Set @NFolioFC= (Select FolioNum From OPCH Where @list_of_cols_val_tab_del = DocEntry)-- asigno el folionum de la factura en ventana.
Set @SNegocioFC= (select CardCode From OPCH where @list_of_cols_val_tab_del = DocEntry)-- asigno el cardcode de la factura en ventana.
-- Cuento cuantas veces existe el foliopref en la bd, en donde sea igual al foliopref de la factura abierta e igual al socio de negocios
Set @IndicadorBD= (Select count (FolioPref) From OPCH where FolioPref = @IndicadorFC and CardCode = @SNegocioFC)
--Cuento cuantas veces existe el folionum en la bd, en donde sea igual al folionum de la factura abierta e al igual socio de negocios
Set @NFolioBD= (Select count (FolioNum) From OPCH where FolioNum = @NFolioFC and CardCode = @SNegocioFC)
-- si alguno de los dos es 0, debe dejar de crear la factura, de lo contrario no debe permitirlo
IF (@IndicadorBD !=0 and @NFolioBD != 0 )
Begin
Set @error = 05
Set @error_message= 'Nº de Folio ya ingresado'
End
End
Desde ya muchas gracias y saludos.