--Hash:4A35CEB24AF354CD648F416AE73B4FA7
SET XACT_ABORT ON
BEGIN TRANSACTION;

GO

SET DATEFORMAT mdy;

--Validar que no existan scripts que no se hayan ejecutado
--//
IF EXISTS
(
	SELECT a.NumVersion + 1 AS HuecoInicio
	FROM ZiurVersiones a
	LEFT JOIN ZiurVersiones b ON a.NumVersion + 1 = b.NumVersion
	WHERE a.NumVersion>830 AND b.NumVersion IS NULL
	AND a.NumVersion + 1 < 906
)
RAISERROR('Error : hay un script que no se ejecuto , debe ejecutarlo manualmente.', 20, -1) with log
--//

--Colocar contenido de script diferencial aqui (Ziur.Database.publish.sql)
/*
 Plantilla de script anterior a la implementación							
--------------------------------------------------------------------------------------
 Este archivo contiene instrucciones de SQL que se ejecutarán antes del script de compilación	
 Use la sintaxis de SQLCMD para incluir un archivo en el script anterior a la implementación			
 Ejemplo:      :r .\miArchivo.sql								
 Use la sintaxis de SQLCMD para hacer referencia a una variable en el script anterior a la implementación		
 Ejemplo:      :setvar TableName miTabla							
               SELECT * FROM [$(TableName)]					
--------------------------------------------------------------------------------------
*/
GO

GO
PRINT N'Altering View [dbo].[VNomina_NE_Detalles]...';


GO
ALTER VIEW [dbo].[VNomina_NE_Detalles] 
AS

SELECT NomDet.IdDetalle,
       NomDet.IdNomina,
       NomDet.IdPrefijo,
       NomDet.NumDocumento,
       NomDet.NeIdEstadoDian,
       FEEstados.NomEstado,
       NomDet.NeFechaAutorizacion,
       NomDet.NeUUID,
       NomDet.NeMensRespuesta,
       NomDet.NeIdEstadoDianElim,
       FEEstadosElim.NomEstado AS NomEstadoElim,
       NomDet.NeFechaAutorizacionElim,
       NomDet.NeUUIDElim,
       NomDet.NeMensRespuestaElim,
       CASE 
 	   WHEN NomDet.NeUUIDElim IS NOT NULL THEN FEEstadosElim.NomEstado
	   ELSE FEEstados.NomEstado
	   END AS NeEstadoTemp, 
	   CASE 
	   WHEN NomDet.NeUUIDElim IS NOT NULL THEN NomDet.NeUUIDElim
	   ELSE NomDet.NeUUID
	   END AS NeUUIDTemp,
	   CASE
	   WHEN NomDet.NeUUIDElim IS NOT NULL THEN NomDet.NeFechaAutorizacionElim
	   ELSE NomDet.NeFechaAutorizacion
	   END AS NeFechaAutorizacionTemp,
	   CASE
	   WHEN NomDet.NeUUIDElim IS NOT NULL THEN 1
 	   ELSE 0
       END AS EsEliminado,
       CliEmp.Identificacion AS EmplNumIdentificacion,
       CliEmp.DVCliente AS EmplDV,
       CliEmp.IdTipoIdent AS EmplTipoIdentificacion,
       CliEmp.Nombre1 AS EmplNombre1,
       CliEmp.Nombre2 AS EmplNombre2,
       CliEmp.Apellido1 AS EmplApellido1,
       CliEmp.Apellido2 AS EmplApellido2,
       vCliDirEmp.Direccion AS EmplDireccion,
       vCliDirEmp.CodPais AS EmplCodPais,
       vCliDirEmp.IdCiudad AS EmplCodMunicipio,
       vCliDirEmp.IdDpto AS EmplCodDepartamento,
       NomDet.IdCliente,
       NomDet.IdContrato,
       NomContr.IdTipo,
       NomContr.IdTipoCot,
       NomContr.IdSubTipoCot,
       NomContr.SueldoIni,
       NomContr.FechaIni,
       NomContr.FechaFin,
       NomContr.EsAltoRiesgo,
       Cta.Cuenta AS CtaCuenta,
       Cta.NomTipo AS CtaNomTipo,
       Cta.NomBanco AS CtaNomBanco,
       NomEnc.IdMedPago,
       MedPago.CodMedPago,
       NomDet.Dev_DiasTrabajados,
       NomDet.Dev_SueldoTrabajado,
       NomDet.DevTRANS_AuxilioTransporte,
       NomDet.DevTRANS_ViaticoManuAlojS,
       NomDet.DevTRANS_ViaticoManuAlojNS,
       NomDet.DevHED_Cantidad,
       NomDet.DevHED_Porcentaje,
       NomDet.DevHED_Valor,
       NomDet.DevHEN_Cantidad,
       NomDet.DevHEN_Porcentaje,
       NomDet.DevHEN_Valor,
       NomDet.DevHRN_Cantidad,
       NomDet.DevHRN_Porcentaje,
       NomDet.DevHRN_Valor,
       NomDet.DevHEDDF_Cantidad,
       NomDet.DevHEDDF_Porcentaje,
       NomDet.DevHEDDF_Valor,
       NomDet.DevHRDDF_Cantidad,
       NomDet.DevHRDDF_Porcentaje,
       NomDet.DevHRDDF_Valor,
       NomDet.DevHENDF_Cantidad,
       NomDet.DevHENDF_Porcentaje,
       NomDet.DevHENDF_Valor,
       NomDet.DevHRNDF_Cantidad,
       NomDet.DevHRNDF_Porcentaje,
       NomDet.DevHRNDF_Valor,
       NomDet.DevVACN_FechaInicio,
       NomDet.DevVACN_FechaFin,
       NomDet.DevVACN_Cantidad,
       NomDet.DevVACN_Pago,
       NomDet.DevVACD_Cantidad,
       NomDet.DevVACD_Pago,
       NomDet.DevPRIM_Cantidad,
       NomDet.DevPRIM_Pago,
       NomDet.DevPRIM_PagoNS,
       NomDet.DevCES_Pago,
       NomDet.DevCES_Porcentaje,
       NomDet.DevCES_PagoIntereses,
       NomDet.DevINC_FechaInicio,
       NomDet.DevINC_FechaFin,
       NomDet.DevINC_Cantidad,
       NomDet.DevINC_Tipo,
       NomDet.DevINC_Pago,
       NomDet.DevLICMP_FechaInicio,
       NomDet.DevLICMP_FechaFin,
       NomDet.DevLICMP_Cantidad,
       NomDet.DevLICMP_Pago,
       NomDet.DevLICR_FechaInicio,
       NomDet.DevLICR_FechaFin,
       NomDet.DevLICR_Cantidad,
       NomDet.DevLICR_Pago,
       NomDet.DevLICNR_FechaInicio,
       NomDet.DevLICNR_FechaFin,
       NomDet.DevLICNR_Cantidad,
       NomDet.DevLICNR_Pago,
       NomDet.DevBONIF_BonificacionS,
       NomDet.DevBONIF_BonificacionNS,
       NomDet.DevAUX_AuxilioS,
       NomDet.DevAUX_AuxilioNS,
       NomDet.DevHLG_FechaInicio,
       NomDet.DevHLG_FechaFIn,
       NomDet.DevHLG_Cantidad,
       NomDet.DevOCON_DescripcionConcepto,
       NomDet.DevOCON_ConceptoS,
       NomDet.DevOCON_ConceptoNS,
       NomDet.DevCOMP_CompensacionO,
       NomDet.DevCOMP_CompensacionE,
       NomDet.DevBONO_PagoS,
       NomDet.DevBONO_PagoNS,
       NomDet.DevBONO_PagoAlimentacionS,
       NomDet.DevBONO_PagoAlimentacionNS,
       NomDet.DevCOMIS_Comision,
       NomDet.DevPTER_PagoTercero,
       NomDet.DevANTIC_Anticipo,
       NomDet.Dev_Dotacion,
       NomDet.Dev_ApoyoSost,
       NomDet.Dev_Teletrabajo,
       NomDet.Dev_BonifRetiro,
       NomDet.Dev_Indemnizacion,
       NomDet.Dev_Reintegro,
       NomDet.DedSALUD_Porcentaje,
       NomDet.DedSALUD_Deduccion,
       NomDet.DedFPEN_Porcentaje,
       NomDet.DedFPEN_Deduccion,
       NomDet.DedFSP_Porcentaje,
       NomDet.DedFSP_DeduccionSP,
       NomDet.DedFSP_PorcentajeSub,
       NomDet.DedFSP_DeduccionSub,
       NomDet.DedSIND_Porcentaje,
       NomDet.DedSIND_Deduccion,
       NomDet.DedSANC_SancionPublic,
       NomDet.DedSANC_SancionPriv,
       NomDet.DedLIBR_Descripcion,
       NomDet.DedLIBR_Deduccion,
       NomDet.DedPTER_PagoTercero,
       NomDet.DedANTIC_Anticipo,
       NomDet.DedODED_OtraDeduccion,
       NomDet.Ded_PensionVoluntaria,
       NomDet.Ded_RetencionFuente,
       NomDet.Ded_AFC,
       NomDet.Ded_Cooperativa,
       NomDet.Ded_EmbargoFiscal,
       NomDet.Ded_PlanComplementarios,
       NomDet.Ded_Educacion,
       NomDet.Ded_Reintegro,
       NomDet.Ded_Deuda,
       NomDet.DevTOT_Total,
       NomDet.DedTOT_Total,
       vCliDirEmp.EMail
FROM dbo.Nomina_NE_Detalles AS NomDet
INNER JOIN dbo.Clientes AS CliEmp ON NomDet.IdCliente = CliEmp.IdCliente
INNER JOIN dbo.VClientesDir AS vCliDirEmp ON CliEmp.IdCliente = vCliDirEmp.IdCliente
INNER JOIN dbo.Nomina_Contratos AS NomContr ON NomDet.IdContrato = NomContr.IdContrato
INNER JOIN dbo.Nomina_NE_Encabezados AS NomEnc ON NomDet.IdNomina = NomEnc.IdNomina
LEFT OUTER JOIN dbo.FacturacionElectronica_Proveedores_Estados AS FEEstados ON NomDet.NeIdEstadoDian = FEEstados.IdEstado
LEFT OUTER JOIN dbo.FacturacionElectronica_Proveedores_Estados AS FEEstadosElim ON NomDet.NeIdEstadoDianElim = FEEstadosElim.IdEstado
LEFT OUTER JOIN dbo.VEmpleadosBancos_PorCliente AS Cta ON NomDet.IdCliente = Cta.IdCliente
LEFT OUTER JOIN dbo.FacturacionElectronica_MediosPagoContado AS MedPago ON NomEnc.IdMedPago = MedPago.IdMedPago
GO
PRINT N'Altering View [dbo].[VNomina_NE_Encabezados]...';


GO
ALTER VIEW [dbo].[VNomina_NE_Encabezados]
AS

SELECT VEnc.IdNomina,
       VEnc.CodNomina,
       VEnc.NomNomina,
       VEnc.Fecha,
       VEnc.FechaIni,
       VEnc.FechaFin,
       VEnc.IdEmpresa,
       Emp.EmpresaNombre,
       VEnc.IdPrefijo,
       Pre.NomPrefijo,
       VEnc.NumDocumento,
       VEnc.IdTipo,
       Tip.CodTipo,
       Tip.NomTipo,
       VEnc.IdPeriodo,
       Per.NomPeriodo,
       Mon.Abrev,
       VEnc.ValorTRM,
       VEnc.FechaPago,
       VEnc.IdMedPago,
       MPago.CodMedPago,
       MPago.NomMedPago,
       VEnc.IdFormaPago,
       FPago.NomFormaPago,
       VEnc.NeIdVersion,
       Emp.NeTokenDian,
       Emp.NeTokenPassword,
       Emp.NeVersion AS EmprNeVersion,
       CliEmp.Identificacion AS EmprNumIdentificacion,
       CliEmp.DVCliente AS EmprDV,
       CliEmp.IdTipoIdent AS EmprTipoIdentificacion,
       CliEmp.Nombre1 AS EmprNombre1,
       CliEmp.Nombre2 AS EmprNombre2,
       CliEmp.Apellido1 AS EmprApellido1,
       CliEmp.Apellido2 AS EmprApellido2,
       vCliDirEmp.Direccion AS EmprDireccion,
       vCliDirEmp.CodPais AS EmprCodPais,
       vCliDirEmp.IdCiudad AS EmprCodMunicipio,
       vCliDirEmp.IdDpto AS EmprCodDepartamento,
       FE_TipoEnvio.IdProveedor,
       FE_TipoEnvio.EsEnvioProd,
       COALESCE(VEncTot.NumEmpleados,0) AS NumEmpleados,
       COALESCE(VEncTot.NumEnviados,0) AS NumEnviados,
       COALESCE(VEncTot.NumPorEnviar,0) AS NumPorEnviar,
       COALESCE(VEncTot.NumRechazados,0) AS NumRechazados,
       vCliDirEmp.EMail
FROM dbo.Nomina_NE_Periodos AS Per
INNER JOIN dbo.Nomina_NE_Encabezados AS VEnc
INNER JOIN dbo.Empresas AS Emp ON VEnc.IdEmpresa = Emp.IdEmpresa ON Per.IdPeriodo = VEnc.IdPeriodo
INNER JOIN dbo.Nomina_NE_Tipos AS Tip ON VEnc.IdTipo = Tip.IdTipo
LEFT OUTER JOIN dbo.VNomina_NE_Detalles_Totales AS VEncTot ON VEnc.IdNomina = VEncTot.IdNomina
LEFT OUTER JOIN dbo.FormasPago AS FPago ON VEnc.IdFormaPago = FPago.IdFormaPago
LEFT OUTER JOIN dbo.FacturacionElectronica_MediosPagoContado AS MPago ON VEnc.IdMedPago = MPago.IdMedPago
LEFT OUTER JOIN dbo.FacturacionElectronica_TipoEnvio AS FE_TipoEnvio ON VEnc.NeIdVersion = FE_TipoEnvio.IdTipoEnvio
LEFT OUTER JOIN dbo.VClientesDir AS vCliDirEmp
RIGHT OUTER JOIN dbo.Clientes AS CliEmp ON vCliDirEmp.IdCliente = CliEmp.IdCliente ON Emp.IdCliente = CliEmp.IdCliente
LEFT OUTER JOIN dbo.Prefijos AS Pre ON VEnc.IdPrefijo = Pre.IdPrefijo
LEFT OUTER JOIN dbo.Monedas AS Mon ON COALESCE (VEnc.IdMoneda,1) = Mon.IdMoneda
GO


--Actualizacion de datos de la 890 a 900
--**********************************************************

--894
--//
update Nomina_TiposContratos set NomTipo = 'Término Indefinido', EsSistema = 1 where IdTipo=2
GO

update dbo.Nomina_Tipos_Cotizantes 
set 
NomTipoCot = N'Estudiantes de prácticas laborales en el sector público', 
Nota = N'Estudiantes de prácticas laborales en el sector público',
EsActivo = 1
where IdTipoCot = 58
GO
--//

--895
--//
update [Clientes_TiposIdent] 
set 
[DescripTipoIdent] = 'NIT de otro país'
WHERE [IdTipoIdent] = 50
GO
--//

--897
--//
update ZiurVersiones set 
Descripcion = N'Cambios de Nómina Electrónica y Performance'
where IdVersion = 307
GO
--//
--**********************************************************

--Actualizar datos de la version
INSERT INTO ZiurVersiones (IdVersion, NumVersion, Descripcion)
VALUES (316,906,'Modificaciones Nómina Electrónica')
GO

COMMIT
GO
