ALTER PROCEDURE [dbo].[sp_remGrabaHaberDescuentosMasivo]
(
	@XML AS VARCHAR(MAX),
	@TIPOCONCEPTO CHAR(1),
	@PERIODO INT,
	@MES     INT,
	@LOGING AS VARCHAR(15)
)

AS

--TABLA TEMPORAL #1 PARA LOS DATOS RELEVANTES RECIBIDOS DESDE LA APLICACION--
            DECLARE  @DATOS0   TABLE
            (
            FICHA INT,
            IDCONCEPTO INT,
            VALOR DECIMAL(18,4),
            TIPOCONCEPTO_REG VARCHAR(10) NULL
            )

--PASA LOS DATOS DEL XML A LA TABLA #DATOS0--
IF @XML <> ''
BEGIN
DECLARE @IDOC INT;
EXEC sp_xml_preparedocument @IDOC OUTPUT, @XML;

INSERT INTO @DATOS0
SELECT
        FICHA,
        IDCONCEPTO,
        CASE VALOR
        WHEN 0 THEN Null
        ELSE VALOR
        END AS VALOR,
        TIPOCONCEPTO
FROM       OPENXML (@IDOC, '/DATASET/Table1',3)
            WITH (FICHA INT,
                IDCONCEPTO INT,
                VALOR DECIMAL(18,4),
                TIPOCONCEPTO VARCHAR(10));
END


------------------------------->TEST ----> SELECT * FROM @DATOS0

--PUNTERO 1

DECLARE @FICHA INT, @IDCONCEPTO INT, @VALOR DECIMAL(18,4), @TIPO CHAR(1)

DECLARE PUNTERO1 CURSOR FOR SELECT FICHA, IDCONCEPTO, VALOR,
    CASE WHEN TIPOCONCEPTO_REG IS NOT NULL AND TIPOCONCEPTO_REG <> ''
        THEN LEFT(TIPOCONCEPTO_REG, 1)
        ELSE @TIPOCONCEPTO
    END
FROM @DATOS0
OPEN PUNTERO1
FETCH PUNTERO1 INTO @FICHA, @IDCONCEPTO, @VALOR, @TIPO
WHILE (@@FETCH_STATUS=0)
BEGIN
    IF NOT EXISTS (SELECT periodo FROM remMovimientosHD  WHERE periodo=@PERIODO AND mes=@MES AND ficha=@FICHA AND tipoConcepto=@TIPO AND idConcepto=@IDCONCEPTO)
        BEGIN
            IF @VALOR > 0
                BEGIN
                    INSERT INTO remMovimientosHD (periodo, mes,ficha,tipoConcepto,idConcepto,valor,importador,loging,logmod,fecing,fecmod)
                    VALUES (@PERIODO, @MES, @FICHA,@TIPO,@IDCONCEPTO, @VALOR,1, @LOGING, @LOGING, GETDATE(), GETDATE())
            END
        END
    ELSE
        BEGIN
            UPDATE dbo.remMovimientosHD
            SET [periodo] =@periodo
                ,[mes] = @MES
                ,[ficha] = @FICHA
                ,[tipoConcepto] = @TIPO
                ,[idConcepto] = @IDCONCEPTO
                ,[valor] = @VALOR
                ,[importador] =1
                ,[fecmod] =GETDATE()
                ,[logmod] = @LOGING
            WHERE periodo=@PERIODO AND mes=@MES AND ficha=@FICHA AND tipoConcepto=@TIPO AND  idConcepto=@IDCONCEPTO
    END
FETCH PUNTERO1 INTO @FICHA, @IDCONCEPTO, @VALOR, @TIPO
END
CLOSE PUNTERO1
DEALLOCATE PUNTERO1