ALTER PROCEDURE [dbo].[sp_remGrabaResultadoMasivo]
(
   @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 TOP(1) periodo FROM remMovimientosRM  WHERE periodo=@PERIODO AND mes=@MES AND ficha=@FICHA AND tipoConcepto=@TIPO AND idConcepto=@IDCONCEPTO)
        BEGIN
            IF @VALOR > 0
                BEGIN
                    INSERT INTO remMovimientosRM (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.remMovimientosRM
            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