cancel
Showing results for 
Search instead for 
Did you mean: 

TN Pedido Cliente Cambio de Fecha Linea Articulos

0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

felipe_loyolarodriguez
Active Contributor
0 Kudos

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

0 Kudos

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é

felipe_loyolarodriguez
Active Contributor
0 Kudos

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

0 Kudos

Buena tarde Felipe gracias por tu apoyo acabo de ejecutar la TN y cumplió el objetivo.

Answers (0)