IF OBJECT_ID('dbo.fco_autorizaciones_det') IS NULL
CREATE TABLE dbo.fco_autorizaciones_det 
(
	compania char(4) NOT NULL ,
	autorizacion decimal(10) NOT NULL ,
	trabajador char(10) NOT NULL ,
	valor decimal(12,2) NULL ,
    CONSTRAINT pk_fco_autorizaciones_det  PRIMARY KEY (compania, autorizacion, trabajador)
)
GO
GRANT ALL ON fco_autorizaciones_det TO PUBLIC
GO


IF OBJECT_ID('dbo.fco_autorizaciones') IS NULL
CREATE TABLE dbo.fco_autorizaciones 
(
    compania char(4) NOT NULL ,
    sucursal char(10) NULL,
    autorizacion decimal(10) NOT NULL ,
    numero varchar(15) NOT NULL ,
    tipo_incapacidad char(1) NOT NULL ,
    tipo_entidad char(1) NOT NULL ,
    cod_entidad char(10) NOT NULL ,
    fecha smalldatetime NULL ,
    periodo char(6) NOT NULL ,
    ausentismo int NULL ,
    descontar_ala char(1) NOT NULL ,
    valor_total decimal(13,2) NULL ,
    tipo_planilla char(1) NOT NULL DEFAULT 'E',
    CONSTRAINT pk_fco_autorizaciones PRIMARY KEY (compania, autorizacion)
)
GO
GRANT ALL ON fco_autorizaciones TO PUBLIC
GO


IF OBJECT_ID('dbo.sp_fco_alta_autorizaciones') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_alta_autorizaciones
GO
CREATE PROCEDURE dbo.sp_fco_alta_autorizaciones
(
  @pch_compania char(4),
  @pch_sucursal char(10),
  @pvc_numero varchar(15),
  @pch_tipo_incapacidad char(1),
  @pch_tipo_entidad char(1),
  @pch_cod_entidad char(10),
  @pdt_fecha smalldatetime,
  @pch_periodo char(6),
  @pin_ausentismo int,
  @pch_descontar_ala char(1),
  @pdc_valor_total decimal(13,2)
)
AS
BEGIN
    DECLARE @vdc_autorizacion decimal(10) ---consecutivo

	SET @vdc_autorizacion = 0;

	SELECT @vdc_autorizacion = ISNULL(Max(autorizacion),0) + 1
	FROM fco_autorizaciones
	WHERE compania = @pch_compania

	INSERT INTO fco_autorizaciones 
    (compania, sucursal, autorizacion, numero, tipo_incapacidad, tipo_entidad, 
     cod_entidad, fecha, periodo, ausentismo, descontar_ala, valor_total)
    SELECT
    @pch_compania, @pch_sucursal, @vdc_autorizacion, @pvc_numero, @pch_tipo_incapacidad, @pch_tipo_entidad,
    @pch_cod_entidad, @pdt_fecha, @pch_periodo, @pin_ausentismo, @pch_descontar_ala, @pdc_valor_total
END
GO
GRANT EXECUTE ON sp_fco_alta_autorizaciones TO PUBLIC
GO


IF OBJECT_ID('dbo.sp_fco_alta_autorizaciones_det') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_alta_autorizaciones_det
GO
CREATE PROCEDURE dbo.sp_fco_alta_autorizaciones_det
(
  @pch_compania	char(4),
  @pdc_autorizacion decimal(10),
  @pch_trabajador char(10),
  @pdc_valor decimal(12,2)
)
AS
BEGIN
	INSERT INTO fco_autorizaciones_Det (compania, autorizacion, trabajador, valor)
    SELECT @pch_compania, @pdc_autorizacion, @pch_trabajador, @pdc_valor
END
GO
GRANT EXECUTE ON sp_fco_alta_autorizaciones_det TO PUBLIC
GO

IF OBJECT_ID('dbo.sp_fco_baja_autorizaciones') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_baja_autorizaciones
GO
CREATE PROCEDURE dbo.sp_fco_baja_autorizaciones
(
  @pch_compania char(10),
  @pdc_autorizacion decimal(10)
)
AS
BEGIN
	DELETE fco_autorizaciones_det
	WHERE compania = @pch_compania
      AND autorizacion = @pdc_autorizacion

	DELETE fco_autorizaciones
	WHERE compania = @pch_compania 
      AND autorizacion = @pdc_autorizacion
END
GO
GRANT EXECUTE ON sp_fco_baja_autorizaciones TO PUBLIC
GO


IF OBJECT_ID('dbo.sp_fco_baja_autorizaciones_det') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_baja_autorizaciones_det
GO
CREATE PROCEDURE dbo.sp_fco_baja_autorizaciones_det
(
    @pch_compania char(4),
    @pdc_autorizacion decimal(10),
    @pch_trabajador char(10)
)
AS
BEGIN
    IF @pch_trabajador IS Null OR @pch_trabajador = '0'
        DELETE fco_autorizaciones_det
        WHERE compania = @pch_compania
          AND autorizacion = @pdc_autorizacion
    ELSE
        DELETE fco_autorizaciones_det
        WHERE compania = @pch_compania
          AND autorizacion = @pdc_autorizacion
          AND trabajador = @pch_trabajador
END
GO
GRANT EXECUTE ON sp_fco_baja_autorizaciones_det TO PUBLIC


