--@Msg_Num=-10        
--@Msg_Num=-11
--@msg-num = -5  


--             
CREATE   PROCEDURE [dbo].[Sodor_Vajeh]  @Msg_num BigInt Output ,@Id_Cheqe BigInt,@Tmp_Id numeric(18,0),@Main_Id_Havaleh BigInt ,@Main_Id_Sanad bigint
As
set @msg_num=0
Declare @LastId_Cheqe Bigint
Declare @Nu_Sanad       Bigint
--    
IF @Main_Id_Sanad = 0 
    SELECT @Nu_Sanad=Nu_Manual FROM dbo.heads where (DateDiff(day,Tarikh_User,getdate() ) =0 ) And (Auto=1)  and (Fiexd=1 )
Else 
    SELECT @Nu_Sanad=Nu_Manual FROM dbo.heads where Fiexd=1 And Id_Sanad = @Main_Id_Sanad
iF ( @Nu_Sanad ) > 0 
begin
   Set  @msg_num= cast ('-99'+Ltrim(str(@Nu_Sanad)) as int)-- -10  --msg-num = -10     --msg-num = -10    
   RETURN   @msg_num  --@@Error
 End
------------------------
Else

 If (SELECT     Count(dbo.TmpCheqe.Id_Cheqe)
     FROM       dbo.TmpHeadC INNER JOIN
                dbo.TmpCheqe ON dbo.TmpHeadC.Id_Cheqe = dbo.TmpCheqe.Id_Cheqe
     WHERE     (dbo.TmpHeadC.Id_Cheqe = @Id_Cheqe)And (dbo.TmpCheqe.CH_Price > 0) ) > 0 Begin
   
   Begin Tran F1 
--               
   Insert Into dbo.Headc(Id_Havaleh      ,    Id_Sanad  ,Id_Manual,Kind_Flag,Items,TarikhBargeh,TotPrice,Note,Guy_Code,Guy_Bank,AccCode,Tarikh,[User_Id], Store_Code)
               Select    @Main_Id_Havaleh,@Main_Id_Sanad,Id_Manual,Kind_Flag,Items,TarikhBargeh,TotPrice,Note,Guy_Code,Guy_Bank,AccCode,Tarikh,[User_Id], Store_code
                       From TmpHeadC Where (Id_Cheqe=@Id_Cheqe) 
    IF @@Error > 0        
    Begin 
       Set  @msg_num=-5  --msg-num = -5  
       ROLLBACK TRANSACTION 
       RETURN @msg_num --@@Error -- @msg_num
    End

    Select @LastId_Cheqe=Scope_Identity()  --  Last_Id =      
   --              
    Insert Into Dbo.Cheqe (Id_Cheqe     , Ch_Note,Ch_no,Ch_Tarikh,Ch_Price,Ch_Pass,ch_pass_New,Ch_Desc,Acc_Code,Act_Code,Ch_Bank,Tmp_Main_Auto_Sanad,Guid_Cheqe, Nu_Hesab  )
      SELECT              @LastId_Cheqe, Ch_Note,Ch_no,Ch_Tarikh,Ch_Price,Ch_Pass,Ch_Pass,Ch_Desc,Acc_Code,Act_Code,Ch_Bank  ,Tmp_Main_Auto_Sanad,Guid_Cheqe, Nu_Hesab
      FROM       dbo.TmpHeadC INNER JOIN
                 dbo.TmpCheqe ON dbo.TmpHeadC.Id_Cheqe = dbo.TmpCheqe.Id_Cheqe
      WHERE     (dbo.TmpHeadC.Id_Cheqe = @Id_Cheqe) And (dbo.TmpCheqe.CH_Price > 0)

   IF @@Error > 0        
   Begin
       Set  @msg_num=-5  --msg-num = -5  
       ROLLBACK TRANSACTION 
       RETURN @msg_num --@@Error -- @msg_num
   End 
   
   --               
   Insert Into Dbo.Acc_Cheqe_Link(Guid_Cheqe,Guid_Sanad )
SELECT     dbo.TmpAcc_Cheqe_link.Guid_Cheqe, dbo.TmpAcc_Cheqe_link.Guid_Sanad
FROM         dbo.TmpAcc_Cheqe_link INNER JOIN
                      dbo.TmpCheqe ON dbo.TmpAcc_Cheqe_link.Guid_Cheqe = dbo.TmpCheqe.Guid_Cheqe
     WHERE     (dbo.TmpCheqe.Id_Cheqe =@Id_Cheqe ) 

  IF @@Error > 0       
  Begin
       Set  @msg_num=-5  --msg-num = -5  
       ROLLBACK TRANSACTION 
       RETURN @msg_num --@@Error -- @msg_num
  End
    ----------------------------------------------------------------------
--               И            
    Delete from dbo.TmpHeadc Where  Id_Cheqe=@id_Cheqe
 End --If
 Else Begin
   Set @Msg_Num=-10
   Return @Msg_Num
 End 
      
 Commit Tran F1
  Set @Msg_Num=@LastId_Cheqe
 RETURN @msg_num
