--USE [TouchScreen]
--GO
/****** Object:  StoredProcedure [dbo].[Insert_Linea_Factura]    Script Date: 08/09/2015 17:18:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER   PROCEDURE [dbo].[Insert_Linea_Factura]  @id_fact      int,
			       	  	@id_arti      int,
			          	@precio_unit  money,
					@precio_neto  money,
			          	@nro_vale     varchar(10), 
			          	@orden_Plato  smallint,
			          	@silla        tinyint,
			          	@inc_cont     bit,
			       	  	@id_modi      int,
					@importe_mod  money,
					@importe_mod_neto  money,
					@id_oper_modi int,
			          	@cantidad     numeric(7,2),
			       	  	@id_turn      int,
					@id_cama      int,
			       	  	@id_oper      int,
			       	  	@pedido_a     int,
					@id_serv      int,	
					@id_motivo    int,
			       	  	@id_fali      int output,
			       	  	@id_fald      int output
AS
-- PROCEDIMIENTO QUE INSERTA UNA NUEVA LINEA DE FACTURA CON CANTIDAD, DADO TODOS SUS PARAMETROS Y 
-- DEVUELVE EL ID_FALI Y EL ID_FALD INSERTADOS

BEGIN
  SET NOCOUNT ON

  declare @lexito bit

  Select @lexito = 0

  BEGIN TRANSACTION LIN_FACT
  Insert RESTFALI (id_fact,id_arti,precio_unit,precio_neto,inc_cont,
  id_modi,importe_mod,id_oper_modi,importe_neto,dcto_neto,recargo_neto,
		   importe_mod_neto,dcto_noccasa,recargo_noccasa,importe_neto_cont) 
		  Values( @id_fact,
			  @id_arti,
			  @precio_unit,
			  @precio_neto,
			  @inc_cont,
			  @id_modi,
			  @importe_mod,
			  @id_oper_modi,
			  0,
			  0,
			  0,
			  @importe_mod_neto,
			  0,
			  0,
			  0
			 )

  if @@error = 0
   begin
      Select @id_fali = SCOPE_IDENTITY() -- @@identity

      execute Insert_Cant_Arti @id_fali , 
			       @id_turn ,
			       @cantidad   ,
			       @id_oper    ,
			       1           , -- tipo = 1
			       0   	   ,			       
			       @id_cama    ,
			       @pedido_a   ,
			       @orden_plato,
			       @nro_vale   ,	
			       @silla      ,
			       @id_motivo  ,	
			       @id_serv    ,
			       @id_fald    output


      if @@error = 0 and @id_fali is not null and @id_fald is not null
         Select @lexito = 1 

   end
   
  if @lexito = 1
    COMMIT TRANSACTION LIN_FACT
  else
    begin
      ROLLBACK TRANSACTION  LIN_FACT 
       Select @id_fali = NULL, 
	      @id_fald = NULL
    end
END

