CREATE Procedure FinalizarProducao @Tab11a int, @Tab11b int As Declare @Qtdade Numeric (9,3) If @Tab11b > 0 Begin Select @Qtdade = A.QtdPro - COALESCE((Select Sum(Qtdade*Indice) From Tab11c B Where B.Tab11b = A.Tab11b),0) From Tab11b A Where A.Tab11b = @tab11b and A.QtdPro > 0 If @Qtdade > 0 Exec FinalizarProducao_Item @tab11b, @Qtdade End Else Begin Declare Tab11b Cursor For Select A.Tab11b, A.QtdPro - COALESCE((Select Sum(Qtdade*Indice) From Tab11c B Where B.Tab11b = A.Tab11b),0) As Qtdade From Tab11b A Where A.Tab11a = @tab11a and A.QtdPro > 0 Open Tab11b Fetch From Tab11b Into @Tab11b, @Qtdade While (@@FETCH_STATUS = 0) Begin If @Qtdade > 0 Exec FinalizarProducao_Item @tab11b, @Qtdade Fetch Next From Tab11b Into @Tab11b, @Qtdade End Close Tab11b Deallocate Tab11b End
CREATE Procedure FinalizarProducao_Item @Tab11b int, @Qtdade Numeric (9,3) As Declare @Tab11c int Exec GerarId 'Tab11c', 1, @Tab11c output Insert Into Tab11c (Tab11c, Tab11b, Data, Qtdade, Indice) Values (@Tab11c, @Tab11b, GetDate(), @Qtdade, +1) If @@Error = 0 Return
SqlExec(1,'EXEC FinalizarProducao 1350, 0')