CREATE  TRIGGER [dbo].[Less_Anbar] ON [dbo].[Havaleh]
FOR INSERT
AS 

Declare @Sender varchar(8)
Declare @Reciver varchar(8)
Declare @KQty money
Declare @KCode varchar(20)
Declare @IdHavaleh Bigint
Declare @Tot_kharid Money
Declare @Tot_Forosh Money
Declare @Tot_Omdeh Money
Declare @Mojodi Real
Declare @Price_Kharid     Money
Declare @Avg_Price_Kharid Money
Declare @Temp             Money
Declare @AutoId           Int
Declare @Kind_Flag Char(1)

  

--             
--   -   =        
IF (Exists  (select  Sender,K_Code,Price_Kharid,Price_Forosh,Price_Omdeh  From inserted I
                 where not Exists (select A_Code,K_Code,Price_Kharid,Price_Forosh,Price_Omdeh from Anbar A
                                            where A.A_Code =I.Sender  and  A.K_Code=I.K_Code  ) and  Len(I.Sender) =  3  ) )  
Begin
     Insert Into Dbo.Anbar(A_Code ,K_Code , Price_Kharid ,Price_Forosh, Price_Omdeh)  
                            Select  Sender ,  K_Code, Price_Kharid ,Price_Forosh ,Price_Omdeh  from inserted I
                            where not Exists (select A_Code,K_Code,Price_Kharid,Price_Forosh,Price_Omdeh from Anbar A
                                                    where A.A_Code =I.Sender and  A.K_Code=I.K_Code  )  and Len(I.Sender) =  3
                            Group By  I.Sender ,  I.K_Code, I.Price_Kharid ,I.Price_Forosh ,I.Price_Omdeh  
End  

--             
--   -    =        
IF   (Exists  (select Reciver,K_Code,Price_Kharid,Price_Forosh,Price_Omdeh  from inserted I
                 where not exists (select A_Code,K_Code,Price_Kharid,Price_Forosh,Price_Omdeh from Anbar A
                                            where Cast(A.A_Code As Int) = Cast(I.Reciver As Int ) and  A.K_Code=I.K_Code  ) and Len(I.Reciver) = 3 ) )  
Begin
     Insert Into Dbo.Anbar(A_Code,K_Code,Price_Kharid,Price_Forosh,Price_Omdeh)  
                           Select  Reciver, K_Code,Price_Kharid,Price_Forosh,Price_Omdeh  from inserted I
                           where not exists (select A_Code,K_Code,Price_Kharid,Price_Forosh,Price_Omdeh from Anbar A
                                                      where A.A_Code =I.Reciver   and  A.K_Code=I.K_Code  )  and Len(I.Reciver ) =  3
                           Group By  I.Reciver ,  I.K_Code, I.Price_Kharid ,I.Price_Forosh ,I.Price_Omdeh
End  


---------------------------------------------------------------------(    )--------------------------------------------------------------
Declare Cursor_Insert Cursor For
Select  Sender, Reciver, K_Code, K_Qty1, AutoId, Kind_Flag, Price_Kharid  From Inserted
Inner Join HeadH on HeadH.Id_Havaleh = Inserted.Id_Havaleh
Open Cursor_Insert
Fetch Next From  Cursor_Insert into @Sender, @Reciver, @KCode, @KQty, @AutoId, @Kind_Flag, @Price_Kharid 
While @@Fetch_Status = 0 
Begin
	IF Len(@Sender) = 3
	Begin
		Update Anbar Set Mojodi = Mojodi - @KQty , 
		             Exit_Fa = Exit_Fa + @KQty Where K_Code = @KCode And  A_Code  = @Sender
		
	End --IF Len(@Sender) = 3   
    IF Len(@Reciver) = 3
    Begin
      Update Anbar Set Mojodi = Mojodi +  @KQty , Resive_Fa = Resive_Fa + @KQty Where K_Code = @KCode And  A_Code  = @Reciver

    End -- IF Len(@Reciver) = 3
    Fetch Next From  Cursor_Insert into @Sender, @Reciver, @KCode, @KQty, @AutoId, @Kind_Flag,@Price_Kharid 
End
Close Cursor_Insert
Deallocate Cursor_Insert


---------------------------------------------------------------------(     ѐ )--------------------------------------------------------------
   Select @IdHavaleh = Id_Havaleh  From Inserted 
   Update HeadH Set 
                Tot_Price_Kharid = T.Totkharid,  
                Tot_Price_Forosh =T.TotForosh,
                Tot_Price_Omdeh =T.TotOmdeh
  From HeadH  
  Inner Join 
   (
     Select Id_Havaleh , Sum(Round(K_Qty1 * Price_Kharid,0)) Totkharid , 
                                        Sum(Round(K_Qty1 * Price_Forosh,0))  TotForosh, 
                                        Sum(Round(K_Qty1 * Price_Omdeh,0)) TotOmdeh From Havaleh
     Where Id_Havaleh = @IdHavaleh 
     Group By Id_Havaleh
   ) As T
  On (T.Id_Havaleh = Headh.Id_Havaleh)
