cancel
Showing results for 
Search instead for 
Did you mean: 

Problema fecha de Vencimiento factura de proveedores

armandomuozsule
Active Participant
0 Kudos

Buena Tarde expertos de esta comunidad estoy trabajando en un bloqueo pero no he llegado a un buen resultado, lo que necesito hacer es lo siguiente: Mientras se este creando la Factura de Proveedores , al asignarle la fecha de contabilización  logicamente se le asigna automaticamente la fecha de vencimiento en el ejemplo de la imagen que adjunto es un cliente de un dia de credito, pero se ha dado el caso que algunos empleados le cambian la fecha de vencimiento y se la prolongan o viceversa, es por ello que quiero realizar un bloqueo que no deje crear la factura de proveedores si la fecha de la factura de proveedores es la que le corresponde, ya intente de varias formas y no logro hacerlo , si alguien me pudiera ayudar con esto, estaria extremadamente agradecido.

saludos cordiales

Querys que he probado y no evita la creacion de la factura 

IF @object_type = '18' AND @transaction_type = 'U' , 'A'

     

    Begin 

     

    Declare @Log Varchar(20) 

    Declare @FechaProv Varchar(20) 

               

     

    SET @Log = (SELECT T0.Docduedate FROM ADOC T0 WHERE T0.ObjType = @object_type AND T0.DocEntry = @list_of_cols_val_tab_del AND  

               T0.LogInstanc = (SELECT TOP 1 T1.LogInstanc FROM ADOC T1 WHERE T1.DocEntry = @list_of_cols_val_tab_del AND T1.ObjType = @object_type 

                                ORDER BY T1.LogInstanc DESC)) 

                                                       

    SET @FechaProv = (SELECT T0.DocDuedate FROM OPCH T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del) 

          

     

         IF @FechaProv != @Log 

         BEGIN 

              Set @error = -00231 

              Set @error_message = 'No Puedes cambiar fecha de vencimiento' 

         END 

    END 

--Bloqueo de modificacion de fecha de vencimiento al crear factura proveedores

      IF @object_type = '18' AND @transaction_type = 'A' 

    Begin 

    Declare @userI int 

    Set @userI = (Select t3.UserSign2 FROM ORCT t3 WHERE t3.DocEntry = @list_of_cols_val_tab_del) 

       IF @userI <>1

       BEGIN 

    Set @error = -00231 

    Set @error_message = 'No tiene permiso de actualizar!! :(' 

      END 

    END

Accepted Solutions (1)

Accepted Solutions (1)

armandomuozsule
Active Participant
0 Kudos

El query que me soluciono el problema fue este :

if @object_type in ('18')and @transaction_type in ('A', 'U')

  begin

     declare @fecha1 as datetime

     declare @extramonth as int

     declare @extradays as int

SELECT @extramonth =T1.ExtraMonth,@extradays=T1.ExtraDays,@fecha1=t0.docdate

FROM  OPCH T0  INNER JOIN OCTG T1 ON T0.GroupNum = T1.GroupNum

WHERE @list_of_cols_val_tab_del= T0.DocEntry

  if

(SELECT convert(varchar,T0.DocDueDate,103)

FROM  OPCH T0  WHERE @list_of_cols_val_tab_del= T0.DocEntry)

<>(select convert(varchar, (DATEADD(m,@extramonth,@fecha1)+@extradays), 103))

begin

set @error = 11

set @error_message

= 'Fecha de vencimiento no permitida de acuerdo a las condiciones de pago con el proveedor.'

End

end

Answers (2)

Answers (2)

former_member204202
Active Participant
0 Kudos

Hola

Revisa este tema para ver si puedes acoplar el query . En un rato hare pruebas en mi base y te comento.

Saludos..

armandomuozsule
Active Participant
0 Kudos

Gracias por tu informacion, no tienes un ejemplo del query para realizarlo con la fecha de vencimiento de la factura de proveedores?

saludos cordiales

Former Member
0 Kudos

mi recomendación es que no trabajes con los log.

Deberias calcular la fecha de vencimiento basada en la condición de pago del socio de negocios y contra ese dato habría que validarlo

armandomuozsule
Active Participant
0 Kudos

Buenas tardes fernando la fecha esta calculada bajo la condicion de pago y la pone automaticamente el problema es que los usuarios la cambian y necesito una restriccion para evitar eso , gracias por responder

Former Member
0 Kudos

entiendo lo que me dices.

Pero en el transaction, debieras calcular la fecha de vencimiento basada en la del sn, y si la fecha de vencimiento calculada es menor a la que esta en el campo debieras bloquear.

Former Member
0 Kudos

esto puede ser mas o menos complejo dependiendo de que tan complejo declaran las condiciones de pago.