dbo.backend_insert_mis_aportesMMM

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

9
Name Data Type Length Description
@p_cuit varchar 13
@p_cuit_empleador varchar 13
@p_pagina smallint 2
@p_periodo int 4
@p_ddjj varchar 20
@p_aportes_ss varchar 20
@p_aportes_os varchar 20
@p_contr_patronal varchar 20
@p_source_html text -1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.backend_insert_mis_aportesMMM 
 -- Add the parameters for the stored procedure here
 @p_cuit       varchar(13),
 @p_cuit_empleador    varchar(13),
 @p_pagina      smallint,
 @p_periodo      int,
 @p_ddjj       varchar(20),
 @p_aportes_ss     varchar(20),
 @p_aportes_os     varchar(20),
 @p_contr_patronal    varchar(20),
 @p_source_html     text
 


AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here
 DECLARE @rc int
 DECLARE @last_update datetime

 DECLARE @ddjj    varchar(20)
 DECLARE @aportes_ss   varchar(20)
 DECLARE @aportes_os   varchar(20)
 DECLARE @contr_patronal  varchar(20)

 DECLARE @do_insert   bit = 'false'
 return

 SET @last_update = (SELECT max(inserted) from mis_aportes 
      where cuit = @p_cuit 
      and cuit_empleador = @p_cuit_empleador 
      and periodo = @p_periodo)

 IF(@last_update IS NULL) BEGIN

  /* es nuevo registro para CUIT/Periodo */
  SET @do_insert = 'true'

 END ELSE BEGIN

  SELECT
  @ddjj = ddjj,
  @aportes_ss = aportes_ss,
  @aportes_os = aportes_os,
  @contr_patronal = contr_patronal
  FROM mis_aportes 
  WHERE cuit = @p_cuit 
  and cuit_empleador = @p_cuit_empleador
  and periodo = @p_periodo
  and inserted = @last_update

  IF NOT ( @ddjj = 'SI' AND (@aportes_ss = 'PAGO' OR @aportes_ss = '-') AND (@aportes_os = 'PAGO' OR @aportes_os = '-') AND @contr_patronal = 'PAGO' ) BEGIN
   /* el Ășltimo registro guardado NO es todo "verde" - para las columnas seg. social y obra social tambien puede tener "-" */

   /* comparo si son distintos */
   IF (@p_ddjj <> @ddjj OR @p_aportes_ss <> @aportes_ss OR @p_aportes_os <> @aportes_os OR @p_contr_patronal <> @contr_patronal) BEGIN

    SET @do_insert = 'true'

   END
  END

 END

 IF (@do_insert = 'true') BEGIN
  INSERT INTO mis_aportes
  (cuit, cuit_empleador, pagina, periodo, ddjj, aportes_ss, aportes_os, contr_patronal, source_html)
  values
  (@p_cuit, @p_cuit_empleador, @p_pagina, @p_periodo, @p_ddjj, @p_aportes_ss, @p_aportes_os, @p_contr_patronal, @p_source_html)
 END

 if (@p_ddjj !='NO PRESENTADA')
 begin
 if (@p_periodo > 200000)
     set @p_periodo = @p_periodo - 200000 -- Le saco los dos primeros digitos, porque en empleados se guarda como aamm
 if not exists (select * from empleados where cuit = @p_cuit_empleador and cuil = @p_cuit and periodo = @p_periodo)
  insert into empleados(cuil,    cuit,              periodo,    visible, created)
       values (@p_cuit, @p_cuit_empleador, @p_periodo, 1,       getdate())
 end 

 -- Si el cuit del empleado, o del empleador es contraparte de alguien, dicha contraparte se manda al queue
 
 /*insert into LN_contrapartes_queue(contraparte)
  select ln_contrapartes.contraparte 
    from ln_contrapartes 
   inner join LN_gestiones on LN_gestiones.contraparte = LN_contrapartes.contraparte 
   where ln_contrapartes.activo = 1 
     and ln_gestiones.desde <= getdate() and ln_gestiones.hasta >= getdate()
     and ln_contrapartes.id_padron in (select id_padron from padrones where identificacion in (@p_cuit, @p_cuit_empleador)) 
     and not exists (select * from LN_contrapartes_queue where contraparte = ln_contrapartes.contraparte and processed = 0)
 */

END

GO

Used By

No items found