ALTER PROCEDURE [dbo].[sp_remCierreMes]
(
   @periodo  int=0,
   @mes   int=0,
   @periododes   int=0,
   @mesdes   int,
   @login varchar(50)=''
)
AS
DECLARE @conceptodesde INT;
DECLARE @conceptohasta INT;
SET @conceptodesde = (select resultado from remParametros); --select al parametro
SET @conceptohasta = (select descuento from remParametros); --select al parametro


DELETE  remMovimientosHD WHERE periodo = @periododes AND  mes=@mesdes


DECLARE @message varchar(250)
BEGIN TRANSACTION
RAISERROR('DUPLICANDO TABLAS',10,25) WITH NOWAIT

--DELETE remTrabajadores WHERE periodo = @periododes AND  mes=@mesdes
--AND  NOT EXISTS ( SELECT ficha FROM remTrabajadores 
--                   WHERE ficha = remTrabajadores.ficha
--                   AND periodo  = @periododes
--                   AND mes = @mesdes)


INSERT INTO remTrabajadores 
                         (periodo, mes,  ficha, activo, rut, dv, extranjero, nombres, apePaterno, apeMaterno, fechaNac, sexo, cargo, profesion, direccion, comuna, ciudad, pais, 
                         telefonoPart, telefonoEmp, celularPart, celularEmp, correoPart, correoEmp, estadoCivil, seccion, departamento, unidadNegocios, fechaIngreso, fechaContrato, 
                         tipoContrato, fechaTermino, fechaTerminoExt, fechaFiniquito, tipoSueldo, sueldoBase, tipoJornada, cantidadHoras, tipoMovilizacion, montoMovilizacion, 
                         tipoColacion, montoColacion, rentaPromedio, formaPago, numCuenta, banco, tipoTrabajador, regimenPrevisional, idPrevision, porcPrevision, tipoAhorroAFP, 
                         montoAhorroAFP, segcesantia, idDesahucio, porcDesahucio, regimenSalud, instSalud, monedaSalud, pactadoSalud, periodosRecon, bienestar, modoBienestar, 
                         montoBienestar, idSindicato, modoSindicato, montoSindicato, servMedico, smedicoNormal, smedicoMaternal, smedicoEspecial, idApvi1, contratoApvi1, 
                         formapagoApvi1, modoApvi1, montoApvi1, idApvi2, contratoApvi2, formapagoApvi2, modoApvi2, montoApvi2, idApvi3, contratoApvi3, formapagoApvi3, modoApvi3, 
                         montoApvi3, idApvc1, contratoApvc1, modoApvc1, formapagoApvc1, montoApvc1, saldoperiodoanterior,tomadoperiodoanterior, areconocidos, moneda, montoretencionJudicial, 
                         imponiblecontrato, tramoasigfamiliar, tramoimpuesto, coment1, coment2, coment3, coment4,CargaNormal,CargaInvalida,cargamaternal,PrevisionCuenta2, imagen, loging, 
						 fecing, logmod, fecmod,fechainicioperiodo,fechainivacprog,diasprogresivostomados,InstCesantia,caja,nogratificacion, turno, tipoTurno, dirSucursal, comSucursal, ciuSucursal, codSucursal, nomSucursal)

SELECT        @periododes, @mesdes,  ficha, activo, rut, dv, extranjero, nombres, apePaterno, apeMaterno, fechaNac, sexo, cargo, profesion, direccion, comuna, ciudad, pais, 
                         telefonoPart, telefonoEmp, celularPart, celularEmp, correoPart, correoEmp, estadoCivil, seccion, departamento, unidadNegocios, fechaIngreso, fechaContrato, 
                         tipoContrato, fechaTermino, fechaTerminoExt, fechaFiniquito, tipoSueldo, sueldoBase, tipoJornada, cantidadHoras, tipoMovilizacion, montoMovilizacion, 
                         tipoColacion, montoColacion, rentaPromedio, formaPago, numCuenta, banco, tipoTrabajador, regimenPrevisional, idPrevision, porcPrevision, tipoAhorroAFP, 
                         montoAhorroAFP, segcesantia, idDesahucio, porcDesahucio, regimenSalud, instSalud, monedaSalud, pactadoSalud, periodosRecon, bienestar, modoBienestar, 
                         montoBienestar, idSindicato, modoSindicato, montoSindicato, servMedico, smedicoNormal, smedicoMaternal, smedicoEspecial, idApvi1, contratoApvi1, 
                         formapagoApvi1, modoApvi1, montoApvi1, idApvi2, contratoApvi2, formapagoApvi2, modoApvi2, montoApvi2, idApvi3, contratoApvi3, formapagoApvi3, modoApvi3, 
                         montoApvi3, idApvc1, contratoApvc1, modoApvc1, formapagoApvc1, montoApvc1, saldoperiodoanterior, tomadoperiodoanterior,areconocidos, moneda, montoretencionJudicial, 
                         imponiblecontrato, tramoasigfamiliar, tramoimpuesto, coment1, coment2, coment3, coment4, CargaNormal,CargaInvalida,Cargamaternal,PrevisionCuenta2, imagen, @login, GETDATE(),
						 @login, GETDATE(), fechainicioperiodo,fechainivacprog,diasprogresivostomados,InstCesantia,caja,nogratificacion, turno, tipoTurno, dirSucursal, comSucursal, ciuSucursal, codSucursal, nomSucursal
FROM            remTrabajadores AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
AND  NOT EXISTS ( SELECT ficha FROM remTrabajadores 
                   WHERE ORI.ficha = remTrabajadores.ficha
                   AND periodo  = @periododes
                   AND mes = @mesdes)

SET @message='DUPLICION DE FICHAS OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR FICHAS ',10,25) WITH NOWAIT
    RETURN
END
 
DELETE remClasificacionConceptos WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remClasificacionConceptos
                         (periodo, mes, tipoConcepto, idClasificacion, descripcion, fecing, loging, fecmod, logmod)
SELECT         @periododes, @mesdes, tipoConcepto, idClasificacion, descripcion, GETDATE(),@login, GETDATE(),@login
FROM            remClasificacionConceptos AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='CLASIFICACIÓN DE CONCEPTOS OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR CLASIFICACION CONCEPTOS',10,25) WITH NOWAIT
    RETURN
END


DELETE remConceptos WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remConceptos
                         (periodo, mes, tipoConcepto, idConcepto, descripcion, idResultado, libroDetalle, tributableRebaja, imponible, aLiquidacion, conCero, enCuotas, ctaContable, 
                         idclasificacion, tipodato, desde, hasta, tablavariable, tipoarastre,[decimales] , fecing, loging, fecmod, logmod, finiquito)
SELECT       @periododes, @mesdes, tipoConcepto, idConcepto, descripcion, idResultado, libroDetalle, tributableRebaja, imponible, aLiquidacion, conCero, enCuotas, 
                         ctaContable, idclasificacion, tipodato, desde, hasta, tablavariable, tipoarastre, [decimales],GETDATE(),@login, GETDATE(),@login, finiquito
FROM            remConceptos AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='CONCEPTOS OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR CONCEPTOS',10,25) WITH NOWAIT
    RETURN
END

DELETE  remDatosPlanilla WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remDatosPlanilla
                         (periodo, mes, codigo, descripcion, resultado, valor, fecing, loging, fecmod, logmod)
SELECT       @periododes, @mesdes, codigo, descripcion, resultado, valor,  GETDATE(),@login, GETDATE(),@login
FROM            remDatosPlanilla AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='DATOS PLANILLA OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR Datos remDatosPlanilla',10,25) WITH NOWAIT
    RETURN
END


DELETE  remEncFormula WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remEncFormula
                         (periodo, mes, codigo, descripcion,IdConcepto,orden,  fecing, loging, fecmod, logmod)
SELECT        @periododes, @mesdes, codigo, descripcion, IdConcepto,orden, GETDATE(),@login, GETDATE(),@login
FROM            remEncFormula AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='ENC FORMULAS OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR encFormula',10,25) WITH NOWAIT
    RETURN
END

DELETE  remDetFormulaCondicion WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remDetFormulaCondicion
                         (periodo, mes, codigoformula, linea, tipotabla, tabla, tipodato, valor, operador, loging, fecing, logmod, fecmod)
SELECT        @periododes, @mesdes, codigoformula, linea, tipotabla, tabla, tipodato, valor, operador, @login, GETDATE(), @login, GETDATE()
FROM            remDetFormulaCondicion AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='DETALLE FORMULA CONDICIÓN OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR Condicion',10,25) WITH NOWAIT
    RETURN
END

DELETE  remDetFormulaVerdadero WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remDetFormulaVerdadero
                         (periodo, mes, codigoformula, linea, tipotabla, tabla, tipodato, valor, operador, loging, fecing, logmod, fecmod)
SELECT        @periododes, @mesdes, codigoformula, linea, tipotabla, tabla, tipodato, valor, operador, @login, GETDATE(), @login, GETDATE()
FROM            remDetFormulaVerdadero AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='DETALLE FORMULA VERDADERO OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR remDetFormulaVerdadero',10,25) WITH NOWAIT
    RETURN
END



DELETE  remDetFormulaFalso WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remDetFormulaFalso
                         (periodo, mes, codigoformula, linea, tipotabla, tabla, tipodato, valor, operador, loging, fecing, logmod, fecmod)
SELECT        @periododes, @mesdes, codigoformula, linea, tipotabla, tabla, tipodato, valor, operador, @login, GETDATE(), @login, GETDATE()
FROM           remDetFormulaFalso AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='DETALLE FORMULA FALSA OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR remDetFormulaFalso',10,25) WITH NOWAIT
    RETURN
END

DELETE  remFactores WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remFactores
                         (periodo, mes, codigo, descripcion, tipodato, valor, loging, fecing, logmod, fecmod)
SELECT       @periododes, @mesdes, codigo, descripcion, tipodato, valor, 
			 @login, GETDATE(), @login, GETDATE()
FROM            remFactores AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
and codigo <> 99

INSERT INTO remFactores
                         (periodo, mes, codigo, descripcion, tipodato, valor, loging, fecing, logmod, fecmod)
SELECT       @periododes, @mesdes, codigo, descripcion, tipodato, CAST (@mesdes AS VARCHAR) + CAST (@periododes AS VARCHAR), --valor, 
			 @login, GETDATE(), @login, GETDATE()
FROM            remFactores AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
and codigo = 99

SET @message='FACTORES OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remFactores',10,25) WITH NOWAIT
    RETURN
END
SET @message='FACTORES OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remFactores',10,25) WITH NOWAIT
    RETURN
END



DELETE  remTramos WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remTramos
                         (periodo, mes, tipo, codigo, descripcion, valor_hasta, factor, rebaja, loging, fecing, logmod, fecmod)
SELECT         @periododes, @mesdes, tipo, codigo, descripcion, valor_hasta, factor, rebaja,  @login, GETDATE(), @login, GETDATE()
FROM            remTramos AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='TRAMOS OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remTramos',10,25) WITH NOWAIT
    RETURN
END


DELETE  remFamilia WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remFamilia
                         (periodo, mes, ficha, linea, rut, dv, nombres, apePaterno, apeMaterno, fechaNac, sexo, tipocarga, comentarios, loging, fecing, logmod, fecmod)
SELECT    @periododes, @mesdes, ficha, linea, rut, dv, nombres, apePaterno, apeMaterno, fechaNac, sexo, tipocarga, comentarios,  @login, GETDATE(), @login, GETDATE()
FROM            remFamilia AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='FAMILIA OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remFamilia',10,25) WITH NOWAIT
    RETURN
END



DELETE  remIsapre WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remIsapre
                         (periodo, mes, idIsapre, codprevired, descripcion, ctacontable,rut,dv ,loging, fecing, logmod, fecmod,idIsapreLibroRem)
SELECT         @periododes, @mesdes,idIsapre, codprevired, descripcion, ctacontable,rut,dv,@login, GETDATE(), @login, GETDATE(),idIsapreLibroRem
FROM            remIsapre AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='ISAPRE OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remIsapre',10,25) WITH NOWAIT
    RETURN
END

DELETE  remPrevisiones WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remPrevisiones
                         (periodo, mes, idPrevision, idRegimen, codPrevired, descripcion, cotizacion, rut, dv, desahucio, montoDesahucio, ctaContable, soloApv, loging, fecing, logmod, 
                         fecmod,idPrevisionLibroRem)
SELECT       @periododes, @mesdes,idPrevision, idRegimen, codPrevired, descripcion, cotizacion, rut, dv, desahucio, montoDesahucio, ctaContable, soloApv,@login, GETDATE(), @login, GETDATE(),idPrevisionLibroRem
FROM            remPrevisiones AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='PREVISIONES OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remPrevisiones',10,25) WITH NOWAIT
    RETURN
END


DELETE  remTablaVarDet WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remTablaVarDet
                         (periodo, mes, CodigoEnc, id, descripcion, valor, loging, fecing, logmod, fecmod)
SELECT        @periododes, @mesdes, CodigoEnc, id, descripcion, valor, @login, GETDATE(), @login, GETDATE()
FROM            remTablaVarDet AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='ENCABEZADO TABLA VARIABLE  OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remTablaVarDet',10,25) WITH NOWAIT
    RETURN
END

DELETE  remTablaVarEnc WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remTablaVarEnc
                         (periodo, mes, codigo, descripcion, tipodatos, loging, fecing, logmod, fecmod)
SELECT         @periododes, @mesdes, codigo, descripcion, tipodatos, @login, GETDATE(), @login, GETDATE()
FROM            remTablaVarEnc AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='DETALLE TABLA VARIABLE OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remTablaVarEnc',10,25) WITH NOWAIT
    RETURN
END


INSERT INTO remMovimientosHD
                         (periodo, mes, ficha, tipoConcepto, idConcepto, valor, cantcuotas, cuotaactual, numerodocumento, loging, fecing, logmod, fecmod)
SELECT        @periododes, @mesdes, ori.ficha, ori.tipoConcepto, ori.idConcepto, ori.valor, ori.cantcuotas, ori.cuotaactual + 1, ori.numerodocumento, @login, GETDATE(), @login, GETDATE()
FROM            remMovimientosHD AS ori INNER JOIN
                         remConceptos ON ori.periodo = remConceptos.periodo AND ori.mes = remConceptos.mes AND ori.tipoConcepto = remConceptos.tipoConcepto AND 
                         ori.idConcepto = remConceptos.idConcepto
WHERE        (remConceptos.tipoarastre = 3) AND  cantcuotas > cuotaactual
AND ori.periodo = @periodo  and ori.mes=@mes 
SET @message='CUOTAS OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remMovimientosHD',10,25) WITH NOWAIT
    RETURN
END

--RAISERROR('9999',10,25) WITH NOWAIT

INSERT INTO remMovimientosHD
                         (periodo, mes, ficha, tipoConcepto, idConcepto, valor, cantcuotas, cuotaactual, loging, fecing, logmod, fecmod)
SELECT        @periododes, @mesdes, ori.ficha, ori.tipoConcepto, ori.idConcepto, ori.valor, ori.cantcuotas, ori.cuotaactual,  @login, GETDATE(), @login, GETDATE()
FROM            remMovimientosHD AS ori INNER JOIN
                         remConceptos ON ori.periodo = remConceptos.periodo AND ori.mes = remConceptos.mes AND ori.tipoConcepto = remConceptos.tipoConcepto AND 
                         ori.idConcepto = remConceptos.idConcepto
WHERE        (remConceptos.tipoarastre = 2) 
AND ori.periodo = @periodo  and ori.mes=@mes 
SET @message='VALORES INDEFINIDOS OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remMovimientosHD',10,25) WITH NOWAIT
    RETURN
END





DELETE  remMovimientosRM WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remMovimientosRM
                         (periodo, mes, ficha, tipoConcepto, idConcepto, valor,loging, fecing, logmod, fecmod)
SELECT         @periododes, @mesdes, ori.ficha, ori.tipoConcepto, ori.idConcepto, ori.valor, @login, GETDATE(), @login, GETDATE()
FROM            remMovimientosRM AS ori INNER JOIN
                         remConceptos ON ori.periodo = remConceptos.periodo AND ori.mes = remConceptos.mes AND ori.tipoConcepto = remConceptos.tipoConcepto AND 
                         ori.idConcepto = remConceptos.idConcepto
WHERE        (ori.tipoConcepto = 'R') AND (remConceptos.tipoarastre = 2)
AND ori.periodo = @periodo  and ori.mes=@mes 
SET @message='RESULTADOS ARASTRABLES  OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remMovimientosHD',10,25) WITH NOWAIT
    RETURN
END

DELETE  remDatosFijosFicha WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remDatosFijosFicha
                         (periodo, mes, ficha, idconcepto, valor, loging, fecing, logmod, fecmod)
SELECT       @periododes, @mesdes, ficha, idconcepto, valor, loging, GETDATE(), logmod, GETDATE()
FROM            remDatosFijosFicha AS ori
WHERE ori.periodo = @periodo  AND ori.mes=@mes AND (ori.idconcepto NOT IN (913,914))
SET @message='DATOS FIJOS OK' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remDatosFijosFicha',10,25) WITH NOWAIT
    RETURN
END


DELETE  remEncLibroRem WHERE periodo = @periododes AND  mes=@mesdes

INSERT INTO remEncLibroRem(periodo, mes, codigo, descripcion, loging, fecing, logmod, fecmod)
SELECT       @periododes, @mesdes, codigo, descripcion,@login, GETDATE(), @login, GETDATE()
FROM            remEncLibroRem AS ori
WHERE ori.periodo = @periodo  AND ori.mes=@mes 
SET @message='ENC LIBRO REM OK' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remEncLibroRem',10,25) WITH NOWAIT
    RETURN
END




DELETE  remDetLibroRem WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remDetLibroRem
               (periodo, mes, codigo, idcolumna, tipodato, tipotabla, tabla, valor, activo, descripcion,loging, fecing, logmod, fecmod)
SELECT       @periododes, @mesdes,codigo, idcolumna, tipodato, tipotabla, tabla, valor, activo, descripcion,@login, GETDATE(), @login, GETDATE()
FROM            remDetLibroRem AS ori
WHERE ori.periodo = @periodo  AND ori.mes=@mes 
SET @message='DET LIBRO REM OK' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remdETLibroRem',10,25) WITH NOWAIT
    RETURN
END



DELETE  remDetLibroCondicion WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remDetLibroCondicion
               (periodo, mes, codigoformula, linea, tipotabla, tabla, tipodato, valor, operador, loging, fecing, logmod, fecmod)
SELECT       @periododes, @mesdes,codigoformula, linea, tipotabla, tabla, tipodato, valor, operador, @login, GETDATE(), @login, GETDATE()
FROM           remDetLibroCondicion AS ori
WHERE ori.periodo = @periodo  AND ori.mes=@mes 
SET @message='DET LIBRO REM OK' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remDetLibroCondicion',10,25) WITH NOWAIT
    RETURN
END

DELETE  remLibroRemuneraciones WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remLibroRemuneraciones
                         (periodo, mes, idColumna, concepto, tipo, valor, loging, fecing, logmod, fecmod)
SELECT         @periododes, @mesdes, idColumna, concepto, tipo, valor,  @login, GETDATE(), @login, GETDATE()
FROM            remLibroRemuneraciones AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='CONCEPTOS LIBRO REMUNERACION OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remLibroRemuneraciones',10,25) WITH NOWAIT
    RETURN
END

DELETE  remAsistenciaConceptos WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remAsistenciaConceptos
                         (periodo, mes, idColumna, concepto, tipo, periodoPago, valor, loging, fecing, logmod, fecmod)
SELECT         @periododes, @mesdes, idColumna, concepto, tipo, periodoPago, valor,  @login, GETDATE(), @login, GETDATE()
FROM            remAsistenciaConceptos AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='CONCEPTOS PANAMA OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remAsistenciaConceptos',10,25) WITH NOWAIT
    RETURN
END

DELETE  remAsistenciaConceptoAHE WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO remAsistenciaConceptoAHE
                         (periodo, mes, idColumna, concepto, tipo, valor, loging, fecing, logmod, fecmod)
SELECT         @periododes, @mesdes, idColumna, concepto, tipo, valor,  @login, GETDATE(), @login, GETDATE()
FROM            remAsistenciaConceptoAHE AS ori
WHERE ori.periodo = @periodo  and ori.mes=@mes 
SET @message='CONCEPTOS ATRASOS Y HORAS EXTRAS OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remAsistenciaConceptoAHE',10,25) WITH NOWAIT
    RETURN
END


DELETE   remCentralizacionClasificacion WHERE periodo = @periododes AND  mes=@mesdes
INSERT INTO  remCentralizacionClasificacion
                         ( periodo, mes, ficha, unidadnegocio, tipo, valor,loging, fecing, logmod, fecmod)
SELECT       @periododes, @mesdes, ficha,unidadnegocio, tipo, valor, loging, GETDATE(), logmod, GETDATE()
FROM        remCentralizacionClasificacion AS ori
WHERE ori.periodo = @periodo  AND ori.mes=@mes 
SET @message='CentralizacionClasificacion OK' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR CentralizacionClasificacion',10,25) WITH NOWAIT
    RETURN
END

--COPIA VALOR DE RESULTADO PARAMETRO A DESCUENTO PARAMETRO
INSERT INTO remMovimientosHD
(periodo, 
 mes, 
 ficha, 
 tipoConcepto, 
 idConcepto, 
 valor, 
 cantcuotas, 
 cuotaactual, 
 loging, 
 fecing, 
 logmod, 
 fecmod
)
       SELECT @periododes, 
              @mesdes, 
              ori.ficha, 
              'D', 
              @conceptohasta, 
              ori.valor, 
              0, 
              0, 
              @login, 
              GETDATE(), 
             @login, 
              GETDATE()
       FROM remMovimientosRM AS ori
            INNER JOIN remConceptos ON ori.periodo = remConceptos.periodo
                                       AND ori.mes = remConceptos.mes
                                       AND ori.tipoConcepto = remConceptos.tipoConcepto
                                       AND ori.idConcepto = remConceptos.idConcepto
       WHERE ori.idConcepto = @conceptodesde
             AND ori.periodo = @periodo
             AND ori.mes = @mes
             AND ori.tipoConcepto = 'R'
             AND ori.valor > 0;
SET @message='RESULTADO COPIADO EN DESCUENTO OK ' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remMovimientosHD',10,25) WITH NOWAIT
    RETURN
END

--Tramos

DELETE remTramosInternacionales WHERE periodo = @periododes AND mes = @mesdes

INSERT INTO remTramosInternacionales
				(periodo, mes, codigo, tramo, tramoDesde, tramoHasta,
				impuesto, pais, loging, fecing, logmod, fecmod)
SELECT @periododes, @mesdes, codigo, tramo, tramoDesde, tramoHasta,
		impuesto, pais, loging, GETDATE(), logmod, GETDATE()
FROM remTramosInternacionales
WHERE periodo = @periodo AND mes = @mes
SET @message='Tramos Internacioneles OK' + CONVERT(varchar, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remTramosInternacionales',10,25) WITH NOWAIT
    RETURN
END

--ArchivosCss

DELETE remConfiguracionArchivosCss WHERE periodo = @periododes AND mes = @mesdes

INSERT INTO remConfiguracionArchivosCss
				(periodo, mes, idColumna, concepto, tipo,
				 valor, loging, fecing, logmod, fecmod)
SELECT @periododes, @mesdes, idColumna, concepto, tipo,
	   valor, loging, fecing, logmod, fecmod
FROM remConfiguracionArchivosCss
WHERE periodo = @periodo AND mes = @mes
SET @message='Configuración Archivos Css OK' + CONVERT(VARCHAR, @@ROWCOUNT)
RAISERROR(@message,10,25) WITH NOWAIT
IF @@ERROR <> 0
 BEGIN
    ROLLBACK
	RAISERROR('ERROR DUPLICAR remConfiguracionArchivosCss',10,25) WITH NOWAIT
    RETURN
END

COMMIT