on 01-09-2014 7:54 PM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
92 | |
11 | |
11 | |
6 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.