ALTER PROCEDURE [dbo].[sp_remGrabaResultadoMasivo]

(
 @XML AS VARCHAR(MAX),
 @TIPOCONCEPTO CHAR(1),
 @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)
             )
             
--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
FROM       OPENXML (@IDOC, '/DATASET/Table1',3)  
           WITH (FICHA INT,  
                 IDCONCEPTO INT,
                 VALOR DECIMAL(18,4)); 
END


---------------->TEST --------> SELECT * FROM @DATOS0

DECLARE @PERIODO INT = (SELECT TOP(1) periodo FROM remParametros)
DECLARE @MES INT = (SELECT TOP(1) mes FROM remParametros)


--PUNTERO 1

DECLARE @FICHA INT, @IDCONCEPTO INT,@VALOR DECIMAL(18,4) 

DECLARE PUNTERO1 CURSOR FOR SELECT FICHA, IDCONCEPTO, VALOR  FROM @DATOS0
OPEN PUNTERO1
FETCH PUNTERO1 INTO @FICHA, @IDCONCEPTO, @VALOR
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=@TIPOCONCEPTO 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,@TIPOCONCEPTO,@IDCONCEPTO, @VALOR,1, @LOGING,@LOGING,GETDATE(),GETDATE())
			END
		END
	ELSE
		BEGIN
			UPDATE dbo.remMovimientosRM 
			SET [periodo] =@PERIODO
				,[mes] = @MES
				,[ficha] = @FICHA
				,[tipoConcepto] = @TIPOCONCEPTO
				,[idConcepto] = @IDCONCEPTO
				,[valor] = @VALOR
				,importador=1
				,[fecmod] =GETDATE()
				,[logmod] = @LOGING
			WHERE periodo=@PERIODO AND mes=@MES AND ficha=@FICHA AND tipoConcepto=@TIPOCONCEPTO AND  idConcepto=@IDCONCEPTO 
	END
 
FETCH PUNTERO1 INTO @FICHA, @IDCONCEPTO, @VALOR
END
CLOSE PUNTERO1
DEALLOCATE PUNTERO1