Para los escenarios que reportan una orden con servicio de instalacion que fue validada por linea de cajas y que no genero folio de instalacion.
Revisar con las siguiente consulta que tengamos resultados para cada query. En caso que no tengamos un resultado para la tabla instsol e Instsoldet se procede con el WA para generarar los folios.
/*Revisar si existe un servicio agregado para la orden*/
declare @OrderNo int = 885920
select 'OrderHeader', * from OrderHeader with (nolock) where OrderNumber = @OrderNo
select 'OrderDetail',MiscAcct, * from OrderDetail with (nolock) where OrderNumber = @OrderNo and MiscAcct = 4 /*en orderdetail debe existir el campo MiscAcct = 4*/
/*Debe existir la transaccion de validacion de la orden en Trantotal y Trandetail */
select 'TranTotal', * from TranTotal with (nolock) where DocNumber = @OrderNo
select 'TranDetail',MiscAcct, * from TranDetail with (nolock) where DocNumber = @OrderNo and MiscAcct = 4 /*en Trandetail debe existir el campo MiscAcct = 4*/
/*Si solo existe el numero de orden en el resultado de trandetail significa que en la transaccion se valido
mas de una orden por lo que debemos de actualizar el numero de orden que no genero folio en trantotal, en la siguientes
consulta validamos trantotal y trandetail con los datos de la transaccion y se aplica el update*/
select DocNumber, * from Trantotal with (nolock) where TranDate = '2024-08-04' AND RegisterID = 4 AND TranNumber = 6804
select DocNumber, * from Trandetail with (nolock) where TranDate = '2024-08-04' AND RegisterID = 4 AND TranNumber = 6804
--update Trantotal SET docnumber =947137 where TranDate = '2024-08-04' AND RegisterID = 4 AND TranNumber = 6804
/*Revisar si existe un folio para la orden*/
select 'instsol',* from instsol with (nolock) where orderno = @OrderNo
select 'instsoldet',* from instsoldet with (nolock) where solicID IN (select solicID from instsol where orderno = @OrderNo)
El query anterior nos dara un resultado como el de la siguiente imagen por lo que si no tenemos las tablas instsol e instsoldel lo que sigue es proceder con el WA para generar los folios de instalacion.

Acontinuacion vamos a usar el siguiente SP para enerar el folio de instalacion capturando el numero de orden en las variables @OrderNo y @DocNumber como datos de entrada y ejecutamos.
/*WA para generar folios de instalacion*/
DECLARE @return_value int,
@errorMessage varchar(250)
EXEC @return_value = [pdbupd].[CreateInstSol]
@OrderNo = 50928, ---- CAMBIAR DATO AQUI. *NOTA: Si es orden de tienda, colocar OH.OrderNumber; si es Ecomm, colocar OrderEcom.OrderNo
@DocNumber = 50928, ---- CAMBIAR DATO AQUI. *NOTA: Si es orden de tienda, colocar OH.OrderNumber; si es Ecomm, OrderEcom.DocNumber
@errorMessage = @errorMessage OUTPUT
SELECT @errorMessage as N'@errorMessage'
SELECT 'Return Value' = @return_value
GO
Una vez ejecutado el paso enterior tendremos el siguiente resultado donde en este momento ya contamos con los registros del folio de instalacion en las tablas instsol e instsoldet.
