on 11-26-2013 7:55 PM
Buen día. Me presento son Nelson Mayo tengo SBO 8.82 Veracruz, México
Estoy tratando de hacer una TN para pedidos donde podamos controlar las modificaciones de las fechas a nivel partida. la condición que debe cumplir es la siguiente.
Para el Caso Creación : La Fecha no importa que ingresen puede ser actual o cualquier otra fecha
Para el Caso Modificación: La Fecha debe de ser 2 días después del actual o sea HOY.
Este proceso deberá actuar a nivel para el caso modificación así
LINEA ARTICULO CANTIDAD FECHA FECHA MOD.
Linea1 ITEM1 1 26/11/2013 26/11/2013
Linea2 ITEM2 1 26/11/2013 26/11/2013
Linea3 ITEM3 1 26/11/2013 27/11/2013
Linea4 ITEM4 1 26/11/2013 26/11/2013
la TN solo deberá ejecutarse para el caso LINEA 3 porque no cumple con 2 días después de la fecha actual o sea hoy.
Tengo una TN funcionando pero no analiza a nivel línea dejo el código que he ocupado,
IF @object_type ='17' and @transaction_type in ('a','u')
Begin
declare @validador varchar(10)
create table #ordenes (fecha date)
insert #orden(fecha) select t0.shipdate from rdr1 t0 where t0.docentry=@list_of_cols_val_tab_del and to.linestatus = 'o'
select @validador ='TRUE' from #ordenes to where to.fecha<(getdate()+1)
If @validador = 'TRUE'
Begin
SET @error =20
SET @error_message = '**La Fecha de Entrega es Invalida debe de ser mayor a 2 días del actual'
End
End
Buenos días
Prueba el siguiente codigo
if @object_type='17' and @transaction_type='U'
begin
declare @Line int
set @Line=(select top 1 T0.LineNum from RDR1 T0 where T0.LineStatus='O' and T0.DocEntry=@list_of_cols_val_tab_del and T0.ShipDate<cast(getdate()+2 as date))
if @Line is not null
begin
set @error=3456
set @error_message='La Fecha de Entrega en la linea ' + convert(nvarchar(20),@Line+1) + ' es Invalida, debe de ser mayor a 2 días del actual'
end
end
Saludos
FLR
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Buena tarde Felipe, Gracias por responder, ya realice la prueba y la TN si realiza la Validación a Nivel Linea solo que por ejemplo si Tengo 3 lineas y la linea que modifico es la segunda, la TN no deberia de permitir actualizar el documento si no es mas dos dias la linea modificada.
código que me enviastes si modifico la linea 2 me indica que la linea 1 no cumple con el incremento en fecha de mas dos días.
Estoy pensando que la validación debe de ser a nivel de numero de linea modificada del documento actual solo cuando sea modificación. pero no se como hacerle esa modificación a tu instrucción.
Saludos soy muy novato en esto pero pronto aprenderé
Buenos días
He cambiado el código para que no tome en cuenta las lineas no modificadas.
if @object_type='17' and @transaction_type='U'
begin
declare @Line int
set @Line=(select top 1 T0.LineNum from RDR1 T0 where T0.LineStatus='O' and T0.DocEntry=@list_of_cols_val_tab_del and T0.ShipDate<cast(getdate()+2 as date) and T0.ShipDate<>(select top 1 A0.ShipDate from ADO1 A0 where A0.ObjType=@object_type and A0.DocEntry=@list_of_cols_val_tab_del and A0.LineNum=T0.LineNum order by A0.LogInstanc desc))
if @Line is not null
begin
set @error=20000
set @error_message='La Fecha de Entrega en la linea ' + convert(nvarchar(20),@Line+1) + ' es Invalida, debe de ser mayor a 2 días del actual'
end
end
Saludos
FLR
User | Count |
---|---|
88 | |
7 | |
6 | |
4 | |
3 | |
3 | |
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.