Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 2175

Evitar duplicidad de facturas por Transaction Notification

$
0
0

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.


Viewing all articles
Browse latest Browse all 2175

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>