Compare commits

...

4 Commits

Author SHA1 Message Date
Jorge Luis caudillo esparza
50f1ced127 update documentos 2026-10-03 23:48:31 -07:00
Jorge Luis caudillo esparza
72d0e6a589 delete documentos 2026-10-03 23:48:06 -07:00
Jorge Luis caudillo esparza
58954219c8 delete documentos 2026-10-03 23:47:43 -07:00
Jorge Luis caudillo esparza
0776ed8c59 Cambios en Gis lotes 2026-10-03 14:43:42 -07:00
119 changed files with 13052 additions and 1543 deletions

2
.gitignore vendored
View File

@@ -76,4 +76,4 @@ coverage/
*.secrets.json
Web.local.config
appsettings.local.json
/SIG.Web/Documentos/Clientes/4/Etapas/1028
/SIG.Web/Documentos/**

View File

@@ -1,4 +1,4 @@
# AGENTS_MANTENIMIENTO_PROYECTO.md
# AGENTS_MANTENIMIENTO_PROYECTO.md
These rules complement `AGENTS.md` and are mandatory whenever the task involves commands, security, error handling, user feedback, grids, PDF migration, file delivery, verification, or project evolution.
@@ -74,6 +74,8 @@ Controlled outcomes and technical failures must use different logs.
## Grid display rules
- Los valores numéricos de negocio (hectáreas, superficies, avances, porcentajes, cantidades, importes y saldos) deben alinearse a la derecha tanto en los campos de captura como en las celdas y resúmenes donde se muestran. Usar las clases visuales existentes o la alineación del control; esta regla no convierte claves, folios ni códigos en cantidades.
- Every new or modified `asp:GridView` must declare `GridLines="None"`.
- Its `CssClass` must include the exact utility class `Widthall` so the grid uses the full available width.
- Do not add `table-bordered` to a GridView. Existing visual classes such as `table`, `table-striped`, and `table-hover` may be retained when appropriate.

View File

@@ -0,0 +1,649 @@
/*
Preparado a partir de las definiciones instaladas; no ejecutado.
Instalar junto con la aplicación. No modifica conceptos, recibos ni pagos.
CveSolicitud se conserva únicamente como referencia histórica.
Los convenios históricos sin una solicitud conservan CveTipoTramite NULL:
su asignación requiere una decisión de negocio; no se elige un trámite arbitrario.
*/
SET NOCOUNT ON;
IF COL_LENGTH('dbo.Convenios', 'CveTipoTramite') IS NULL
ALTER TABLE dbo.Convenios ADD CveTipoTramite int NULL;
GO
UPDATE C
SET CveTipoTramite = S.CveTipoTramite
FROM dbo.Convenios AS C
INNER JOIN dbo.Tra_Solicitudes AS S ON S.CveSolicitud = C.CveSolicitud
WHERE C.CveTipoTramite IS NULL;
IF NOT EXISTS
(
SELECT 1
FROM sys.foreign_keys
WHERE name = 'FK_Convenios_TipoTramite'
)
ALTER TABLE dbo.Convenios WITH CHECK
ADD CONSTRAINT FK_Convenios_TipoTramite
FOREIGN KEY (CveTipoTramite)
REFERENCES dbo.Tra_TiposTramite (CveTipoTramite);
IF NOT EXISTS
(
SELECT 1
FROM sys.indexes
WHERE object_id = OBJECT_ID('dbo.Convenios')
AND name = 'IX_Convenios_Etapa_TipoTramite'
)
CREATE INDEX IX_Convenios_Etapa_TipoTramite
ON dbo.Convenios (CveFraccionamientoEtapa, CveTipoTramite);
DECLARE @QuitarRelacion nvarchar(max) = N'';
SELECT @QuitarRelacion = @QuitarRelacion
+ N'ALTER TABLE dbo.Convenios DROP CONSTRAINT ' + QUOTENAME(F.name) + N';'
FROM sys.foreign_keys AS F
WHERE F.parent_object_id = OBJECT_ID('dbo.Convenios')
AND F.referenced_object_id = OBJECT_ID('dbo.Tra_Solicitudes');
IF @QuitarRelacion <> N''
EXEC sys.sp_executesql @QuitarRelacion;
-- Resultado de diagnóstico; no cambia la clasificación de estos convenios.
SELECT CveConvenio, NumeroConvenio, CveFraccionamientoEtapa
FROM dbo.Convenios
WHERE CveTipoTramite IS NULL;
GO
CREATE OR ALTER PROCEDURE dbo.PA_Tra_ConvenioAdd
@CveCliente int,
@CveFraccionamientoEtapa int,
@CveTipoTramite int,
@NumeroConvenio varchar(100),
@NumeroOficio varchar(100) = NULL,
@ViviendasAutorizadas int = NULL,
@ViviendasEnConvenio int,
@ViviendasPendientes int = NULL,
@ViviendasContratadas int = NULL,
@FechaConvenio date,
@Observaciones varchar(1000) = NULL,
@ConceptosXml xml,
@CveUsuarioEjecuta int,
@ErrorMostrar varchar(max) OUTPUT,
@ErrorTipo int OUTPUT,
@Return bit OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT
@ErrorMostrar = NULL,
@ErrorTipo = 0,
@Return = 0;
BEGIN TRY
SET @NumeroConvenio = NULLIF(LTRIM(RTRIM(@NumeroConvenio)), '');
SET @NumeroOficio = NULLIF(LTRIM(RTRIM(@NumeroOficio)), '');
SET @Observaciones = NULLIF(LTRIM(RTRIM(@Observaciones)), '');
IF @CveCliente <= 0
BEGIN
SET @ErrorMostrar = 'Seleccione el desarrollador del convenio.';
SET @ErrorTipo = 2;
RETURN;
END;
IF @CveFraccionamientoEtapa <= 0
BEGIN
SET @ErrorMostrar = 'Seleccione el fraccionamiento y etapa del convenio.';
SET @ErrorTipo = 2;
RETURN;
END;
IF ISNULL(@CveTipoTramite, 0) <= 0
BEGIN
SET @ErrorMostrar = 'Seleccione el tipo de trámite del convenio.';
SET @ErrorTipo = 2;
RETURN;
END;
IF @NumeroConvenio IS NULL
BEGIN
SET @ErrorMostrar = 'Capture el número de convenio.';
SET @ErrorTipo = 2;
RETURN;
END;
IF @ViviendasEnConvenio < 0
OR ISNULL(@ViviendasAutorizadas, 0) < 0
OR ISNULL(@ViviendasPendientes, 0) < 0
OR ISNULL(@ViviendasContratadas, 0) < 0
BEGIN
SET @ErrorMostrar = 'Las cantidades de viviendas no son válidas.';
SET @ErrorTipo = 2;
RETURN;
END;
IF NOT EXISTS
(
SELECT 1
FROM dbo.FraccionamientosEtapas AS E
INNER JOIN dbo.Fraccionamientos AS F ON F.CveFraccionamiento = E.CveFraccionamiento
WHERE E.CveFraccionamientoEtapa = @CveFraccionamientoEtapa
AND F.CveCliente = @CveCliente
)
BEGIN
SET @ErrorMostrar = 'La etapa seleccionada no pertenece al desarrollador indicado.';
SET @ErrorTipo = 2;
RETURN;
END;
IF EXISTS
(
SELECT 1
FROM dbo.Convenios AS C
WHERE C.NumeroConvenio = @NumeroConvenio
)
BEGIN
SET @ErrorMostrar = 'Ya existe un convenio con ese número.';
SET @ErrorTipo = 2;
RETURN;
END;
DECLARE @Conceptos TABLE
(
Orden int NOT NULL PRIMARY KEY,
CveConvenioConcepto int NOT NULL,
Importe decimal(18,6) NOT NULL,
Tipo varchar(20) NOT NULL,
NumeroPagos int NOT NULL
);
DECLARE @Recibos TABLE
(
OrdenConcepto int NOT NULL,
Orden int NOT NULL,
Importe decimal(18,6) NOT NULL,
FechaVencimiento date NOT NULL,
Estatus varchar(30) NOT NULL,
PRIMARY KEY (OrdenConcepto, Orden)
);
IF @ConceptosXml IS NOT NULL
BEGIN
INSERT INTO @Conceptos
(
Orden,
CveConvenioConcepto,
Importe,
Tipo,
NumeroPagos
)
SELECT
C.value('@Orden', 'int'),
C.value('@CveConvenioConcepto', 'int'),
C.value('@Importe', 'decimal(18,6)'),
C.value('@Tipo', 'varchar(20)'),
C.value('@NumeroPagos', 'int')
FROM @ConceptosXml.nodes('/Conceptos/Concepto') AS X(C);
INSERT INTO @Recibos
(
OrdenConcepto,
Orden,
Importe,
FechaVencimiento,
Estatus
)
SELECT
C.value('@Orden', 'int'),
R.value('@Orden', 'int'),
R.value('@Importe', 'decimal(18,6)'),
R.value('@FechaVencimiento', 'date'),
COALESCE(
NULLIF(R.value('@Estatus', 'varchar(30)'), ''),
'PENDIENTE'
)
FROM @ConceptosXml.nodes('/Conceptos/Concepto') AS CX(C)
CROSS APPLY C.nodes('Recibos/Recibo') AS RX(R);
END;
IF NOT EXISTS (SELECT 1 FROM @Conceptos)
BEGIN
SET @ErrorMostrar = 'Agregue al menos un concepto al convenio.';
SET @ErrorTipo = 2;
RETURN;
END;
IF EXISTS
(
SELECT 1
FROM @Conceptos AS C
LEFT JOIN dbo.ConveniosConceptos AS CC ON CC.CveConvenioConcepto = C.CveConvenioConcepto
AND CC.EsActivo = 1
WHERE CC.CveConvenioConcepto IS NULL
OR C.Importe <= 0
OR NULLIF(LTRIM(RTRIM(C.Tipo)), '') IS NULL
OR C.NumeroPagos NOT BETWEEN 1 AND 12
)
BEGIN
SET @ErrorMostrar = 'Uno de los conceptos del convenio no es válido.';
SET @ErrorTipo = 2;
RETURN;
END;
IF EXISTS
(
SELECT 1
FROM @Recibos AS R
WHERE R.Importe <= 0
OR R.FechaVencimiento IS NULL
)
BEGIN
SET @ErrorMostrar = 'Todas las parcialidades deben tener importe y vencimiento válidos.';
SET @ErrorTipo = 2;
RETURN;
END;
IF EXISTS
(
SELECT 1
FROM @Conceptos AS C
OUTER APPLY
(
SELECT
COUNT(*) AS NumeroRecibos,
SUM(R.Importe) AS ImporteRecibos
FROM @Recibos AS R
WHERE R.OrdenConcepto = C.Orden
) AS R
WHERE ISNULL(R.NumeroRecibos, 0) <> C.NumeroPagos
OR ISNULL(R.ImporteRecibos, 0) <> C.Importe
)
BEGIN
SET @ErrorMostrar =
'La cantidad y suma de las parcialidades debe coincidir con cada concepto.';
SET @ErrorTipo = 2;
RETURN;
END;
INSERT INTO dbo.Convenios
(
CveCliente,
NumeroConvenio,
NumeroOficio,
CveFraccionamientoEtapa,
CveTipoTramite,
ViviendasAutorizadas,
ViviendasEnConvenio,
ViviendasPendientes,
ViviendasContratadas,
FechaConvenio,
Observaciones,
Estatus,
CveConvenioOrigen,
CveUsuario
)
VALUES
(
@CveCliente,
@NumeroConvenio,
@NumeroOficio,
@CveFraccionamientoEtapa,
@CveTipoTramite,
@ViviendasAutorizadas,
@ViviendasEnConvenio,
@ViviendasPendientes,
@ViviendasContratadas,
@FechaConvenio,
@Observaciones,
'ACTIVO',
NULL,
@CveUsuarioEjecuta
);
DECLARE @CveConvenio int = CONVERT(int, SCOPE_IDENTITY());
DECLARE @OrdenConcepto int = 0;
DECLARE @CveConvenioConcepto int;
DECLARE @ImporteConcepto decimal(18,6);
DECLARE @Tipo varchar(20);
DECLARE @NumeroPagos int;
DECLARE @CveConvenioDetalle int;
WHILE EXISTS
(
SELECT 1
FROM @Conceptos
WHERE Orden > @OrdenConcepto
)
BEGIN
SELECT TOP (1)
@OrdenConcepto = C.Orden,
@CveConvenioConcepto = C.CveConvenioConcepto,
@ImporteConcepto = C.Importe,
@Tipo = C.Tipo,
@NumeroPagos = C.NumeroPagos
FROM @Conceptos AS C
WHERE C.Orden > @OrdenConcepto
ORDER BY C.Orden;
INSERT INTO dbo.ConveniosDetalle
(
CveConvenio,
CveConvenioConcepto,
Importe,
Tipo,
NumeroPagos,
Observaciones
)
VALUES
(
@CveConvenio,
@CveConvenioConcepto,
@ImporteConcepto,
@Tipo,
@NumeroPagos,
NULL
);
SET @CveConvenioDetalle = CONVERT(int, SCOPE_IDENTITY());
INSERT INTO dbo.ConveniosRecibos
(
CveConvenioDetalle,
NumeroRecibo,
Importe,
FechaVencimiento,
Estatus
)
SELECT
@CveConvenioDetalle,
CONCAT(
'RD',
CONVERT(char(8), GETDATE(), 112),
@CveConvenio,
'-',
RIGHT('000' + CONVERT(varchar(3), @OrdenConcepto), 3),
'-',
RIGHT('000' + CONVERT(varchar(3), R.Orden), 3)
),
R.Importe,
R.FechaVencimiento,
R.Estatus
FROM @Recibos AS R
WHERE R.OrdenConcepto = @OrdenConcepto
ORDER BY R.Orden;
END;
SELECT @CveConvenio AS CveConvenio;
SET @Return = 1;
END TRY
BEGIN CATCH
SET @ErrorMostrar =
'Ocurrió un error al guardar el convenio; favor de contactar a Sistemas.';
SET @ErrorTipo = 1;
SET @Return = 0;
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
'Número: ', ERROR_NUMBER(),
'; Procedimiento: ', COALESCE(
ERROR_PROCEDURE(),
'PA_Tra_ConvenioAdd'
),
'; Línea: ', ERROR_LINE(),
'; Detalle: ', ERROR_MESSAGE()
);
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
END CATCH;
END;
GO
/*
Se vuelven a definir List/Get únicamente para alinear la salida
con Clientes.Nombre y devolver el encabezado completo del modal.
*/
CREATE OR ALTER PROCEDURE dbo.PA_Tra_ConvenioList
@CveTipoTramite int = NULL,
@CveCliente int = NULL,
@CveFraccionamiento int = NULL,
@CveFraccionamientoEtapa int = NULL,
@Estatus varchar(30) = NULL,
@ConSaldoPendiente bit = NULL,
@CveUsuarioEjecuta int,
@ErrorMostrar varchar(max) OUTPUT,
@ErrorTipo int OUTPUT,
@Return bit OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT
@ErrorMostrar = NULL,
@ErrorTipo = 0,
@Return = 0;
BEGIN TRY
;WITH PagadoRecibo AS
(
SELECT
PR.CveConvenioRecibo,
SUM(PR.ImporteAplicado) AS ImportePagado
FROM dbo.ConveniosPagosRecibos AS PR
GROUP BY PR.CveConvenioRecibo
),
Totales AS
(
SELECT
D.CveConvenio,
SUM(R.Importe) AS ImporteConvenio,
SUM(ISNULL(P.ImportePagado, 0)) AS ImportePagado,
SUM(R.Importe - ISNULL(P.ImportePagado, 0)) AS SaldoPendiente,
MAX(CASE WHEN P.CveConvenioRecibo IS NULL THEN 0 ELSE 1 END) AS TienePagos
FROM dbo.ConveniosDetalle AS D
LEFT JOIN dbo.ConveniosRecibos AS R ON R.CveConvenioDetalle = D.CveConvenioDetalle
LEFT JOIN PagadoRecibo AS P ON P.CveConvenioRecibo = R.CveConvenioRecibo
GROUP BY D.CveConvenio
)
SELECT
C.CveConvenio,
C.CveTipoTramite,
TT.TipoTramite,
C.CveCliente,
CL.Nombre AS Cliente,
F.CveFraccionamiento,
F.Fraccionamiento,
FE.CveFraccionamientoEtapa,
FE.Etapa,
C.NumeroConvenio,
C.NumeroOficio,
C.Estatus,
C.FechaConvenio,
ISNULL(T.ImporteConvenio, 0) AS ImporteConvenio,
ISNULL(T.ImportePagado, 0) AS ImportePagado,
ISNULL(T.SaldoPendiente, 0) AS SaldoPendiente,
CONVERT(bit, ISNULL(T.TienePagos, 0)) AS TienePagos
FROM dbo.Convenios AS C
LEFT JOIN dbo.Tra_TiposTramite AS TT ON TT.CveTipoTramite = C.CveTipoTramite
INNER JOIN dbo.FraccionamientosEtapas AS FE ON FE.CveFraccionamientoEtapa = C.CveFraccionamientoEtapa
INNER JOIN dbo.Fraccionamientos AS F ON F.CveFraccionamiento = FE.CveFraccionamiento
INNER JOIN dbo.Clientes AS CL ON CL.CveCliente = C.CveCliente
LEFT JOIN Totales AS T ON T.CveConvenio = C.CveConvenio
WHERE (@CveCliente IS NULL OR C.CveCliente = @CveCliente)
AND (@CveTipoTramite IS NULL OR C.CveTipoTramite = @CveTipoTramite)
AND (@CveFraccionamiento IS NULL OR F.CveFraccionamiento = @CveFraccionamiento)
AND (@CveFraccionamientoEtapa IS NULL OR C.CveFraccionamientoEtapa = @CveFraccionamientoEtapa)
AND (NULLIF(@Estatus, '') IS NULL OR C.Estatus = @Estatus)
AND
(
@ConSaldoPendiente IS NULL
OR @ConSaldoPendiente = CASE
WHEN ISNULL(T.SaldoPendiente, 0) > 0 THEN 1
ELSE 0
END
)
ORDER BY
C.FechaConvenio DESC,
C.CveConvenio DESC;
SET @Return = 1;
END TRY
BEGIN CATCH
SET @ErrorMostrar =
'Ocurrió un error al consultar los convenios; favor de contactar a Sistemas.';
SET @ErrorTipo = 1;
SET @Return = 0;
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
'Número: ', ERROR_NUMBER(),
'; Procedimiento: ', COALESCE(
ERROR_PROCEDURE(),
'PA_Tra_ConvenioList'
),
'; Línea: ', ERROR_LINE(),
'; Detalle: ', ERROR_MESSAGE()
);
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
END CATCH;
END;
GO
CREATE OR ALTER PROCEDURE dbo.PA_Tra_ConvenioGet
@CveConvenio int,
@CveUsuarioEjecuta int,
@ErrorMostrar varchar(max) OUTPUT,
@ErrorTipo int OUTPUT,
@Return bit OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT
@ErrorMostrar = NULL,
@ErrorTipo = 0,
@Return = 0;
BEGIN TRY
IF NOT EXISTS
(
SELECT 1
FROM dbo.Convenios
WHERE CveConvenio = @CveConvenio
)
BEGIN
SET @ErrorMostrar = 'No se encontró el convenio solicitado.';
SET @ErrorTipo = 2;
RETURN;
END;
;WITH PagadoRecibo AS
(
SELECT
PR.CveConvenioRecibo,
SUM(PR.ImporteAplicado) AS ImportePagado
FROM dbo.ConveniosPagosRecibos AS PR
GROUP BY PR.CveConvenioRecibo
),
Totales AS
(
SELECT
D.CveConvenio,
SUM(R.Importe) AS ImporteConvenio,
SUM(ISNULL(P.ImportePagado, 0)) AS ImportePagado,
SUM(R.Importe - ISNULL(P.ImportePagado, 0)) AS SaldoPendiente
FROM dbo.ConveniosDetalle AS D
LEFT JOIN dbo.ConveniosRecibos AS R ON R.CveConvenioDetalle = D.CveConvenioDetalle
LEFT JOIN PagadoRecibo AS P ON P.CveConvenioRecibo = R.CveConvenioRecibo
GROUP BY D.CveConvenio
)
SELECT
C.CveConvenio,
C.CveTipoTramite,
TT.TipoTramite,
C.CveCliente,
C.CveFraccionamientoEtapa,
C.NumeroConvenio,
C.NumeroOficio,
CL.Nombre AS Cliente,
F.Fraccionamiento,
FE.Etapa,
C.Estatus,
C.FechaConvenio,
C.ViviendasAutorizadas,
C.ViviendasEnConvenio,
C.ViviendasPendientes,
C.ViviendasContratadas,
C.Observaciones,
ISNULL(T.ImporteConvenio, 0) AS ImporteConvenio,
ISNULL(T.ImportePagado, 0) AS ImportePagado,
ISNULL(T.SaldoPendiente, 0) AS SaldoPendiente
FROM dbo.Convenios AS C
LEFT JOIN dbo.Tra_TiposTramite AS TT ON TT.CveTipoTramite = C.CveTipoTramite
INNER JOIN dbo.FraccionamientosEtapas AS FE ON FE.CveFraccionamientoEtapa = C.CveFraccionamientoEtapa
INNER JOIN dbo.Fraccionamientos AS F ON F.CveFraccionamiento = FE.CveFraccionamiento
INNER JOIN dbo.Clientes AS CL ON CL.CveCliente = C.CveCliente
LEFT JOIN Totales AS T ON T.CveConvenio = C.CveConvenio
WHERE C.CveConvenio = @CveConvenio;
SELECT
D.CveConvenioDetalle,
D.CveConvenioConcepto,
CC.Concepto,
D.Importe,
D.Tipo,
D.NumeroPagos
FROM dbo.ConveniosDetalle AS D
INNER JOIN dbo.ConveniosConceptos AS CC ON CC.CveConvenioConcepto = D.CveConvenioConcepto
WHERE D.CveConvenio = @CveConvenio
ORDER BY D.CveConvenioDetalle;
;WITH Pagado AS
(
SELECT
PR.CveConvenioRecibo,
SUM(PR.ImporteAplicado) AS ImportePagado
FROM dbo.ConveniosPagosRecibos AS PR
GROUP BY PR.CveConvenioRecibo
)
SELECT
R.CveConvenioRecibo,
R.CveConvenioDetalle,
R.NumeroRecibo,
R.Importe,
ISNULL(P.ImportePagado, 0) AS ImportePagado,
R.Importe - ISNULL(P.ImportePagado, 0) AS SaldoPendiente,
R.FechaVencimiento,
R.Estatus
FROM dbo.ConveniosRecibos AS R
INNER JOIN dbo.ConveniosDetalle AS D ON D.CveConvenioDetalle = R.CveConvenioDetalle
LEFT JOIN Pagado AS P ON P.CveConvenioRecibo = R.CveConvenioRecibo
WHERE D.CveConvenio = @CveConvenio
ORDER BY
R.CveConvenioDetalle,
R.FechaVencimiento,
R.CveConvenioRecibo;
SET @Return = 1;
END TRY
BEGIN CATCH
SET @ErrorMostrar =
'Ocurrió un error al consultar el detalle del convenio; favor de contactar a Sistemas.';
SET @ErrorTipo = 1;
SET @Return = 0;
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
'Número: ', ERROR_NUMBER(),
'; Procedimiento: ', COALESCE(
ERROR_PROCEDURE(),
'PA_Tra_ConvenioGet'
),
'; Línea: ', ERROR_LINE(),
'; Detalle: ', ERROR_MESSAGE()
);
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
END CATCH;
END;
GO

View File

@@ -0,0 +1,146 @@
/*
Consolidación de documentos compartidos por etapa y tipo de documento.
Preparado para revisión; no ejecutado.
Requiere la migración Etapa_TipoTramite_20261002 ya instalada.
Ejecutar estructura y procedimientos en la misma transacción de instalación,
detenerse ante errores y confirmar sólo tras verificar los resultados.
No borra archivos ni filas históricas de documentos.
Las copias idénticas quedan como versiones históricas; se conserva una vigente.
Las configuraciones particulares idénticas se consolidan en una por etapa.
Si hubo ediciones diferentes por trámite, se detiene para no elegir una
aprobación, nota o marca de requerido arbitraria.
Convenios no se modifican.
*/
SET NOCOUNT ON;
IF @@TRANCOUNT = 0
THROW 51000, 'Abrir una transacción de instalación antes de ejecutar y revertirla ante cualquier error.', 1;
IF EXISTS
(
SELECT 1
FROM dbo.Tra_DocumentosSolicitud AS D
INNER JOIN dbo.Tra_DocumentosSolicitud AS O ON O.CveFraccionamientoEtapa = D.CveFraccionamientoEtapa
AND O.CveTipoDocumento = D.CveTipoDocumento
AND O.CveDocumentoSolicitud < D.CveDocumentoSolicitud
WHERE D.EsActivo = 1
AND O.EsActivo = 1
AND EXISTS
(
SELECT D.NombreArchivo, D.NombreArchivoFisico, D.RutaArchivo,
D.ContentType, D.TamanoBytes, D.ComentarioCliente,
D.ComentarioAdministrativo, D.EsAprobado, D.CveUsuarioCarga,
D.CveUsuarioRevisa, D.FechaRevision, D.FechaAlta, D.UltimaNota,
D.FechaDocumento, D.FechaVencimiento, D.Vencido
EXCEPT
SELECT O.NombreArchivo, O.NombreArchivoFisico, O.RutaArchivo,
O.ContentType, O.TamanoBytes, O.ComentarioCliente,
O.ComentarioAdministrativo, O.EsAprobado, O.CveUsuarioCarga,
O.CveUsuarioRevisa, O.FechaRevision, O.FechaAlta, O.UltimaNota,
O.FechaDocumento, O.FechaVencimiento, O.Vencido
)
)
THROW 51000, 'Hay versiones vigentes con datos distintos por trámite. Revisarlas antes de consolidar; no se eliminaron documentos.', 1;
IF EXISTS
(
SELECT 1
FROM dbo.Tra_SolicitudDocumentoConfiguracion
GROUP BY CveFraccionamientoEtapa, CveTipoDocumento
HAVING MIN(CONVERT(int, EsRequerido)) <> MAX(CONVERT(int, EsRequerido))
OR MIN(CONVERT(int, EsCliente)) <> MAX(CONVERT(int, EsCliente))
OR MIN(CONVERT(int, TieneVigencia)) <> MAX(CONVERT(int, TieneVigencia))
OR MIN(CONVERT(int, EsActivo)) <> MAX(CONVERT(int, EsActivo))
OR MIN(Orden) <> MAX(Orden)
)
THROW 51000, 'Hay configuraciones manuales distintas por trámite. Resolverlas antes de consolidar la marca de la etapa.', 1;
IF EXISTS
(
SELECT 1 FROM sys.indexes
WHERE object_id = OBJECT_ID('dbo.Tra_DocumentosSolicitud')
AND name = 'UX_Tra_DocumentosSolicitud_Etapa_Tramite_Documento'
)
DROP INDEX UX_Tra_DocumentosSolicitud_Etapa_Tramite_Documento
ON dbo.Tra_DocumentosSolicitud;
IF EXISTS
(
SELECT 1 FROM sys.indexes
WHERE object_id = OBJECT_ID('dbo.Tra_SolicitudDocumentoConfiguracion')
AND name = 'UX_Tra_ConfiguracionDocumento_Etapa_Tramite_Documento'
)
DROP INDEX UX_Tra_ConfiguracionDocumento_Etapa_Tramite_Documento
ON dbo.Tra_SolicitudDocumentoConfiguracion;
-- Las columnas se conservan por compatibilidad de esquema; ya no son propietarias.
ALTER TABLE dbo.Tra_DocumentosSolicitud ALTER COLUMN CveTipoTramite int NULL;
ALTER TABLE dbo.Tra_SolicitudDocumentoConfiguracion ALTER COLUMN CveTipoTramite int NULL;
;WITH Versiones AS
(
SELECT
CveDocumentoSolicitud,
ROW_NUMBER() OVER
(
PARTITION BY CveFraccionamientoEtapa, CveTipoDocumento
ORDER BY CveDocumentoSolicitud
) AS NumeroVersion
FROM dbo.Tra_DocumentosSolicitud
WHERE EsActivo = 1
)
UPDATE D
SET EsActivo = 0
FROM dbo.Tra_DocumentosSolicitud AS D
INNER JOIN Versiones AS V ON V.CveDocumentoSolicitud = D.CveDocumentoSolicitud
WHERE V.NumeroVersion > 1;
-- Sólo se retiran copias de configuración cuyos valores son idénticos.
;WITH Configuraciones AS
(
SELECT
CveConfiguracionDocumento,
ROW_NUMBER() OVER
(
PARTITION BY CveFraccionamientoEtapa, CveTipoDocumento
ORDER BY CveConfiguracionDocumento
) AS NumeroConfiguracion
FROM dbo.Tra_SolicitudDocumentoConfiguracion
)
DELETE C
FROM dbo.Tra_SolicitudDocumentoConfiguracion AS C
INNER JOIN Configuraciones AS O ON O.CveConfiguracionDocumento = C.CveConfiguracionDocumento
WHERE O.NumeroConfiguracion > 1;
UPDATE dbo.Tra_DocumentosSolicitud
SET CveTipoTramite = NULL
WHERE CveTipoTramite IS NOT NULL;
UPDATE dbo.Tra_SolicitudDocumentoConfiguracion
SET CveTipoTramite = NULL
WHERE CveTipoTramite IS NOT NULL;
IF NOT EXISTS
(
SELECT 1 FROM sys.indexes
WHERE object_id = OBJECT_ID('dbo.Tra_DocumentosSolicitud')
AND name = 'UX_Tra_DocumentosSolicitud_Etapa_TipoDocumento'
)
CREATE UNIQUE INDEX UX_Tra_DocumentosSolicitud_Etapa_TipoDocumento
ON dbo.Tra_DocumentosSolicitud (CveFraccionamientoEtapa, CveTipoDocumento)
WHERE EsActivo = 1;
IF NOT EXISTS
(
SELECT 1 FROM sys.indexes
WHERE object_id = OBJECT_ID('dbo.Tra_SolicitudDocumentoConfiguracion')
AND name = 'UX_Tra_ConfiguracionDocumento_Etapa_Documento'
)
CREATE UNIQUE INDEX UX_Tra_ConfiguracionDocumento_Etapa_Documento
ON dbo.Tra_SolicitudDocumentoConfiguracion (CveFraccionamientoEtapa, CveTipoDocumento);
IF EXISTS (SELECT 1 FROM sys.foreign_keys WHERE name = 'FK_Tra_DocumentosSolicitud_TipoTramite')
ALTER TABLE dbo.Tra_DocumentosSolicitud DROP CONSTRAINT FK_Tra_DocumentosSolicitud_TipoTramite;
IF EXISTS (SELECT 1 FROM sys.foreign_keys WHERE name = 'FK_Tra_ConfiguracionDocumento_TipoTramite')
ALTER TABLE dbo.Tra_SolicitudDocumentoConfiguracion DROP CONSTRAINT FK_Tra_ConfiguracionDocumento_TipoTramite;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,340 @@
/*
Preparación únicamente; no ejecutado.
Requiere Documentos_Etapa_Estructura_20260927.sql ya instalado.
Instalar estructura, procedimientos y aplicación en una ventana coordinada.
El ejecutor debe abrir una transacción, detenerse y revertir ante cualquier
error, y confirmar sólo después de instalar y verificar todos los scripts.
Los registros sin solicitud se conservan en todos los tipos activos aplicables.
Se duplica únicamente la metadata: archivos, fechas, revisiones y versiones
conservan su contenido. El identificador original queda en el menor tipo;
no significa que ese tipo tenga prioridad funcional.
GIS histórico 2 se normaliza al documento configurado 1016 / trámite 12.
Las asignaciones directas existentes no vuelven a expandirse al reinstalar.
*/
SET NOCOUNT ON;
IF @@TRANCOUNT = 0
THROW 51000, 'Abrir una transacción de instalación antes de ejecutar este script y revertirla ante cualquier error.', 1;
SELECT
D.CveDocumentoSolicitud,
D.CveFraccionamientoEtapa,
CASE WHEN D.CveTipoDocumento = 2 THEN 1016 ELSE D.CveTipoDocumento END AS CveTipoDocumento,
S.CveTipoTramite AS TipoSolicitud,
CONVERT(int, NULL) AS TipoDirecto
INTO #OrigenDocumentos
FROM dbo.Tra_DocumentosSolicitud AS D
LEFT JOIN dbo.Tra_Solicitudes AS S ON S.CveSolicitud = D.CveSolicitud;
IF COL_LENGTH('dbo.Tra_DocumentosSolicitud', 'CveTipoTramite') IS NOT NULL
EXEC sys.sp_executesql N'
UPDATE O
SET TipoDirecto = D.CveTipoTramite,
CveTipoDocumento = D.CveTipoDocumento
FROM #OrigenDocumentos AS O
INNER JOIN dbo.Tra_DocumentosSolicitud AS D ON D.CveDocumentoSolicitud = O.CveDocumentoSolicitud
WHERE D.CveTipoTramite IS NOT NULL;';
SELECT DISTINCT
O.CveDocumentoSolicitud,
O.CveFraccionamientoEtapa,
O.CveTipoDocumento,
COALESCE(O.TipoDirecto, O.TipoSolicitud, T.CveTipoTramite) AS CveTipoTramite
INTO #TiposDocumentos
FROM #OrigenDocumentos AS O
LEFT JOIN dbo.Tra_TiposTramiteDocumento AS T ON T.CveTipoDocumento = O.CveTipoDocumento
AND T.EsActivo = 1
AND O.TipoDirecto IS NULL
AND O.TipoSolicitud IS NULL;
IF EXISTS (SELECT 1 FROM #TiposDocumentos WHERE CveTipoTramite IS NULL)
BEGIN
SELECT *
FROM #TiposDocumentos
WHERE CveTipoTramite IS NULL;
THROW 51000, 'Hay documentos sin tipo de trámite aplicable. Resolver su correspondencia y revertir la instalación.', 1;
END;
SELECT
D.CveConfiguracionDocumento,
D.CveFraccionamientoEtapa,
CASE WHEN D.CveTipoDocumento = 2 THEN 1016 ELSE D.CveTipoDocumento END AS CveTipoDocumento,
S.CveTipoTramite AS TipoSolicitud,
CONVERT(int, NULL) AS TipoDirecto
INTO #OrigenConfiguraciones
FROM dbo.Tra_SolicitudDocumentoConfiguracion AS D
LEFT JOIN dbo.Tra_Solicitudes AS S ON S.CveSolicitud = D.CveSolicitud;
IF COL_LENGTH('dbo.Tra_SolicitudDocumentoConfiguracion', 'CveTipoTramite') IS NOT NULL
EXEC sys.sp_executesql N'
UPDATE O
SET TipoDirecto = D.CveTipoTramite,
CveTipoDocumento = D.CveTipoDocumento
FROM #OrigenConfiguraciones AS O
INNER JOIN dbo.Tra_SolicitudDocumentoConfiguracion AS D ON D.CveConfiguracionDocumento = O.CveConfiguracionDocumento
WHERE D.CveTipoTramite IS NOT NULL;';
SELECT DISTINCT
O.CveConfiguracionDocumento,
O.CveFraccionamientoEtapa,
O.CveTipoDocumento,
COALESCE(O.TipoDirecto, O.TipoSolicitud, T.CveTipoTramite) AS CveTipoTramite
INTO #TiposConfiguraciones
FROM #OrigenConfiguraciones AS O
LEFT JOIN dbo.Tra_TiposTramiteDocumento AS T ON T.CveTipoDocumento = O.CveTipoDocumento
AND T.EsActivo = 1
AND O.TipoDirecto IS NULL
AND O.TipoSolicitud IS NULL;
IF EXISTS (SELECT 1 FROM #TiposConfiguraciones WHERE CveTipoTramite IS NULL)
BEGIN
SELECT *
FROM #TiposConfiguraciones
WHERE CveTipoTramite IS NULL;
THROW 51000, 'Hay configuraciones sin tipo de trámite aplicable. Resolver su correspondencia y revertir la instalación.', 1;
END;
-- Nunca reemplazar una configuración específica con otra compartida.
IF EXISTS
(
SELECT 1
FROM #TiposConfiguraciones
GROUP BY CveFraccionamientoEtapa, CveTipoTramite, CveTipoDocumento
HAVING COUNT(*) > 1
)
BEGIN
SELECT CveFraccionamientoEtapa, CveTipoTramite, CveTipoDocumento
FROM #TiposConfiguraciones
GROUP BY CveFraccionamientoEtapa, CveTipoTramite, CveTipoDocumento
HAVING COUNT(*) > 1;
THROW 51000, 'Hay configuraciones que convergen al mismo destino. Resolverlas conservando sus valores antes de instalar.', 1;
END;
IF EXISTS
(
SELECT 1
FROM #TiposDocumentos AS T
INNER JOIN dbo.Tra_DocumentosSolicitud AS D ON D.CveDocumentoSolicitud = T.CveDocumentoSolicitud
WHERE D.EsActivo = 1
GROUP BY T.CveFraccionamientoEtapa, T.CveTipoTramite, T.CveTipoDocumento
HAVING COUNT(*) > 1
)
THROW 51000, 'Hay versiones vigentes que convergen al mismo destino. Resolver su vigencia antes de instalar.', 1;
IF EXISTS
(
SELECT 1
FROM sys.indexes
WHERE object_id = OBJECT_ID('dbo.Tra_DocumentosSolicitud')
AND name = 'UX_Tra_DocumentosSolicitud_Etapa_TipoDocumento'
)
DROP INDEX UX_Tra_DocumentosSolicitud_Etapa_TipoDocumento ON dbo.Tra_DocumentosSolicitud;
IF EXISTS
(
SELECT 1
FROM sys.indexes
WHERE object_id = OBJECT_ID('dbo.Tra_SolicitudDocumentoConfiguracion')
AND name = 'UX_Tra_ConfiguracionDocumento_Solicitud'
)
DROP INDEX UX_Tra_ConfiguracionDocumento_Solicitud ON dbo.Tra_SolicitudDocumentoConfiguracion;
IF EXISTS
(
SELECT 1
FROM sys.indexes
WHERE object_id = OBJECT_ID('dbo.Tra_SolicitudDocumentoConfiguracion')
AND name = 'UX_Tra_ConfiguracionDocumento_Etapa'
)
DROP INDEX UX_Tra_ConfiguracionDocumento_Etapa ON dbo.Tra_SolicitudDocumentoConfiguracion;
IF COL_LENGTH('dbo.Tra_DocumentosSolicitud', 'CveTipoTramite') IS NULL
ALTER TABLE dbo.Tra_DocumentosSolicitud ADD CveTipoTramite int NULL;
-- El SQL dinámico compila después de agregar la columna.
EXEC sys.sp_executesql N'
;WITH DestinoOriginal AS
(
SELECT CveDocumentoSolicitud, MIN(CveTipoTramite) AS CveTipoTramite
FROM #TiposDocumentos
GROUP BY CveDocumentoSolicitud
)
UPDATE D
SET CveTipoTramite = T.CveTipoTramite,
CveTipoDocumento = T.CveTipoDocumento
FROM dbo.Tra_DocumentosSolicitud AS D
INNER JOIN DestinoOriginal AS O ON O.CveDocumentoSolicitud = D.CveDocumentoSolicitud
INNER JOIN #TiposDocumentos AS T ON T.CveDocumentoSolicitud = O.CveDocumentoSolicitud
AND T.CveTipoTramite = O.CveTipoTramite;
INSERT INTO dbo.Tra_DocumentosSolicitud
(
CveFraccionamientoEtapa,
CveTipoDocumento,
CveTipoTramite,
CveSolicitud,
NombreArchivo,
NombreArchivoFisico,
RutaArchivo,
ContentType,
TamanoBytes,
ComentarioCliente,
ComentarioAdministrativo,
EsAprobado,
CveUsuarioCarga,
CveUsuarioRevisa,
FechaRevision,
FechaAlta,
UltimaNota,
FechaDocumento,
FechaVencimiento,
EsActivo,
Vencido
)
SELECT
T.CveFraccionamientoEtapa,
T.CveTipoDocumento,
T.CveTipoTramite,
D.CveSolicitud,
D.NombreArchivo,
D.NombreArchivoFisico,
D.RutaArchivo,
D.ContentType,
D.TamanoBytes,
D.ComentarioCliente,
D.ComentarioAdministrativo,
D.EsAprobado,
D.CveUsuarioCarga,
D.CveUsuarioRevisa,
D.FechaRevision,
D.FechaAlta,
D.UltimaNota,
D.FechaDocumento,
D.FechaVencimiento,
D.EsActivo,
D.Vencido
FROM dbo.Tra_DocumentosSolicitud AS D
INNER JOIN #TiposDocumentos AS T ON T.CveDocumentoSolicitud = D.CveDocumentoSolicitud
WHERE T.CveTipoTramite <> D.CveTipoTramite;
ALTER TABLE dbo.Tra_DocumentosSolicitud ALTER COLUMN CveTipoTramite int NOT NULL;';
IF COL_LENGTH('dbo.Tra_SolicitudDocumentoConfiguracion', 'CveTipoTramite') IS NULL
ALTER TABLE dbo.Tra_SolicitudDocumentoConfiguracion ADD CveTipoTramite int NULL;
-- El SQL dinámico compila después de agregar la columna.
EXEC sys.sp_executesql N'
;WITH DestinoOriginal AS
(
SELECT CveConfiguracionDocumento, MIN(CveTipoTramite) AS CveTipoTramite
FROM #TiposConfiguraciones
GROUP BY CveConfiguracionDocumento
)
UPDATE D
SET CveTipoTramite = T.CveTipoTramite,
CveTipoDocumento = T.CveTipoDocumento
FROM dbo.Tra_SolicitudDocumentoConfiguracion AS D
INNER JOIN DestinoOriginal AS O ON O.CveConfiguracionDocumento = D.CveConfiguracionDocumento
INNER JOIN #TiposConfiguraciones AS T ON T.CveConfiguracionDocumento = O.CveConfiguracionDocumento
AND T.CveTipoTramite = O.CveTipoTramite;
INSERT INTO dbo.Tra_SolicitudDocumentoConfiguracion
(
CveFraccionamientoEtapa,
CveTipoDocumento,
CveTipoTramite,
CveSolicitud,
EsRequerido,
EsCliente,
TieneVigencia,
Orden,
EsActivo
)
SELECT
T.CveFraccionamientoEtapa,
T.CveTipoDocumento,
T.CveTipoTramite,
D.CveSolicitud,
D.EsRequerido,
D.EsCliente,
D.TieneVigencia,
D.Orden,
D.EsActivo
FROM dbo.Tra_SolicitudDocumentoConfiguracion AS D
INNER JOIN #TiposConfiguraciones AS T ON T.CveConfiguracionDocumento = D.CveConfiguracionDocumento
WHERE T.CveTipoTramite <> D.CveTipoTramite;
ALTER TABLE dbo.Tra_SolicitudDocumentoConfiguracion ALTER COLUMN CveTipoTramite int NOT NULL;';
IF NOT EXISTS
(
SELECT 1
FROM sys.indexes
WHERE object_id = OBJECT_ID('dbo.Tra_DocumentosSolicitud')
AND name = 'UX_Tra_DocumentosSolicitud_Etapa_Tramite_Documento'
)
EXEC sys.sp_executesql N'
CREATE UNIQUE INDEX UX_Tra_DocumentosSolicitud_Etapa_Tramite_Documento
ON dbo.Tra_DocumentosSolicitud (CveFraccionamientoEtapa, CveTipoTramite, CveTipoDocumento)
WHERE EsActivo = 1;';
IF NOT EXISTS
(
SELECT 1
FROM sys.indexes
WHERE object_id = OBJECT_ID('dbo.Tra_SolicitudDocumentoConfiguracion')
AND name = 'UX_Tra_ConfiguracionDocumento_Etapa_Tramite_Documento'
)
EXEC sys.sp_executesql N'
CREATE UNIQUE INDEX UX_Tra_ConfiguracionDocumento_Etapa_Tramite_Documento
ON dbo.Tra_SolicitudDocumentoConfiguracion
(CveFraccionamientoEtapa, CveTipoTramite, CveTipoDocumento);';
IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE name = 'FK_Tra_DocumentosSolicitud_TipoTramite')
EXEC sys.sp_executesql N'
ALTER TABLE dbo.Tra_DocumentosSolicitud WITH CHECK
ADD CONSTRAINT FK_Tra_DocumentosSolicitud_TipoTramite
FOREIGN KEY (CveTipoTramite) REFERENCES dbo.Tra_TiposTramite (CveTipoTramite);';
IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE name = 'FK_Tra_ConfiguracionDocumento_TipoTramite')
EXEC sys.sp_executesql N'
ALTER TABLE dbo.Tra_SolicitudDocumentoConfiguracion WITH CHECK
ADD CONSTRAINT FK_Tra_ConfiguracionDocumento_TipoTramite
FOREIGN KEY (CveTipoTramite) REFERENCES dbo.Tra_TiposTramite (CveTipoTramite);';
-- CveSolicitud se conserva sólo como referencia histórica, sin dependencia relacional.
DECLARE @QuitarRelaciones nvarchar(max) = N'';
SELECT @QuitarRelaciones = @QuitarRelaciones
+ N'ALTER TABLE ' + QUOTENAME(OBJECT_SCHEMA_NAME(F.parent_object_id))
+ N'.' + QUOTENAME(OBJECT_NAME(F.parent_object_id))
+ N' DROP CONSTRAINT ' + QUOTENAME(F.name) + N';'
FROM sys.foreign_keys AS F
WHERE F.parent_object_id IN
(OBJECT_ID('dbo.Tra_DocumentosSolicitud'), OBJECT_ID('dbo.Tra_SolicitudDocumentoConfiguracion'))
AND F.referenced_object_id = OBJECT_ID('dbo.Tra_Solicitudes');
IF @QuitarRelaciones <> N''
EXEC sys.sp_executesql @QuitarRelaciones;
INSERT INTO dbo.Bit_Campos
(CveTabla, NombreCampoSQL, NombreMostrar, MostrarEnBitacora, TipoDatoSQL, Activo)
SELECT
T.CveTabla,
'CveTipoTramite',
'Tipo de trámite',
1,
'int',
1
FROM dbo.Bit_Tablas AS T
WHERE T.NombreTablaSQL IN ('Tra_DocumentosSolicitud', 'Tra_SolicitudDocumentoConfiguracion')
AND NOT EXISTS
(
SELECT 1
FROM dbo.Bit_Campos AS C
WHERE C.CveTabla = T.CveTabla
AND C.NombreCampoSQL = 'CveTipoTramite'
);
DROP TABLE #TiposDocumentos;
DROP TABLE #OrigenDocumentos;
DROP TABLE #TiposConfiguraciones;
DROP TABLE #OrigenConfiguraciones;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,110 @@
-- Preparado para revisión. La instalación requiere autorización independiente.
-- La configuración se conserva por etapa y nombre de capa del archivo original.
IF OBJECT_ID(N'dbo.FraccionamientosEtapasGISCapas', N'U') IS NULL
BEGIN
CREATE TABLE dbo.FraccionamientosEtapasGISCapas
(
CveFraccionamientoEtapa int NOT NULL,
NombreCapa nvarchar(250) COLLATE Modern_Spanish_CS_AS NOT NULL,
TipoCapa nvarchar(20) COLLATE Modern_Spanish_CS_AS NOT NULL,
Color nvarchar(7) COLLATE Modern_Spanish_CS_AS NOT NULL,
EsVisible bit NOT NULL,
CveUsuarioModifica int NOT NULL,
FechaModificacion datetime2 NOT NULL,
CONSTRAINT PK_FraccionamientosEtapasGISCapas
PRIMARY KEY (CveFraccionamientoEtapa, NombreCapa),
CONSTRAINT FK_FraccionamientosEtapasGISCapas_Etapa
FOREIGN KEY (CveFraccionamientoEtapa)
REFERENCES dbo.FraccionamientosEtapas (CveFraccionamientoEtapa),
CONSTRAINT CK_FraccionamientosEtapasGISCapas_Tipo
CHECK (TipoCapa IN (N'Agua', N'Drenaje', N'Lotificacion', N'Pozos', N'Otros')),
CONSTRAINT CK_FraccionamientosEtapasGISCapas_Color
CHECK (LEN(Color) = 7 AND Color COLLATE Latin1_General_BIN2
LIKE N'#[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]')
);
END;
GO
CREATE OR ALTER PROCEDURE dbo.PA_Fraccionamientos_EtapaGISCapasList
@CveFraccionamientoEtapa int,
@CveUsuarioEjecuta int,
@ErrorMostrar varchar(max) OUTPUT,
@ErrorTipo int OUTPUT,
@Return bit OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
BEGIN TRY
SELECT NombreCapa, TipoCapa, Color, EsVisible
FROM dbo.FraccionamientosEtapasGISCapas
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa;
SET @Return = 1;
END TRY
BEGIN CATCH
SELECT
@ErrorMostrar = 'No fue posible consultar la configuración de capas GIS.',
@ErrorTipo = 1,
@Return = 0;
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
'Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(),
'; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
END CATCH;
END;
GO
CREATE OR ALTER PROCEDURE dbo.PA_Fraccionamientos_EtapaGISCapasSave
@CveFraccionamientoEtapa int,
@NombreCapa nvarchar(250),
@TipoCapa nvarchar(20),
@Color nvarchar(7),
@EsVisible bit,
@CveUsuarioEjecuta int,
@ErrorMostrar varchar(max) OUTPUT,
@ErrorTipo int OUTPUT,
@Return bit OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
BEGIN TRY
-- El servicio mantiene la transacción ambiental para proteger este upsert.
UPDATE dbo.FraccionamientosEtapasGISCapas WITH (UPDLOCK, HOLDLOCK)
SET TipoCapa = @TipoCapa,
Color = @Color,
EsVisible = @EsVisible,
CveUsuarioModifica = @CveUsuarioEjecuta,
FechaModificacion = SYSDATETIME()
WHERE CveFraccionamientoEtapa = @CveFraccionamientoEtapa
AND NombreCapa = @NombreCapa;
IF @@ROWCOUNT = 0
BEGIN
INSERT INTO dbo.FraccionamientosEtapasGISCapas
(
CveFraccionamientoEtapa, NombreCapa, TipoCapa, Color,
EsVisible, CveUsuarioModifica, FechaModificacion
)
VALUES
(
@CveFraccionamientoEtapa, @NombreCapa, @TipoCapa, @Color,
@EsVisible, @CveUsuarioEjecuta, SYSDATETIME()
);
END;
SET @Return = 1;
END TRY
BEGIN CATCH
SELECT
@ErrorMostrar = 'No fue posible guardar la configuración de la capa GIS.',
@ErrorTipo = 1,
@Return = 0;
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
'Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(),
'; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
END CATCH;
END;
GO

View File

@@ -0,0 +1,142 @@
"CveDocumentoSolicitud","CveFraccionamientoEtapa","CveTipoDocumento","EsActivo","NombreArchivo","NombreAnterior","RutaAnterior","NombreNuevo","RutaNueva","TamanoBytes","SHA256"
"3","1022","1040","True","VL103M user manual 20230921.pdf","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","1146632","3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F"
"4","1022","1045","True","BORRADOR EDISA.docx","doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb.bin","Clientes/1006/Etapas/1022/doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb.bin","doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb-BORRADOR EDISA.docx","Clientes/1006/Etapas/1022/doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb-BORRADOR EDISA.docx","16889","3074B0379B55A18B47EB06A4BAE47985B155CAC0583DE78B651988C7599A3C77"
"5","1022","1046","True","ACTIVIDADES LETYYYY.docx","doc-1022-1046-c3b1e27e553449a7b5a4545222b63b0b.bin","Clientes/1006/Etapas/1022/doc-1022-1046-c3b1e27e553449a7b5a4545222b63b0b.bin","doc-1022-1046-c3b1e27e553449a7b5a4545222b63b0b-ACTIVIDADES LETYYYY.docx","Clientes/1006/Etapas/1022/doc-1022-1046-c3b1e27e553449a7b5a4545222b63b0b-ACTIVIDADES LETYYYY.docx","19908","8A139074FE52426D3FE0DCE395CCEDB031A03FB33462E2C989F695F14481C11D"
"6","1022","1051","True","Recibo-Ago (1).pdf","doc-1022-1051-b0ea49a4b15241e5a6010a8b890b9791.bin","Clientes/1006/Etapas/1022/doc-1022-1051-b0ea49a4b15241e5a6010a8b890b9791.bin","doc-1022-1051-b0ea49a4b15241e5a6010a8b890b9791-Recibo-Ago (1).pdf","Clientes/1006/Etapas/1022/doc-1022-1051-b0ea49a4b15241e5a6010a8b890b9791-Recibo-Ago (1).pdf","814619","86017314865C2064DDBA15CBC1318643BC2F2E0C254A3D274CEE3C17B81E9094"
"7","1022","1057","True","65007.jpeg","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","128129","0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081"
"8","1022","1053","True","Etapa1_10_lotes.gis","doc-1022-1053-53864978166e40c2b3c7e06dd7c6333c.bin","Clientes/1006/Etapas/1022/doc-1022-1053-53864978166e40c2b3c7e06dd7c6333c.bin","doc-1022-1053-53864978166e40c2b3c7e06dd7c6333c-Etapa1_10_lotes.gis","Clientes/1006/Etapas/1022/doc-1022-1053-53864978166e40c2b3c7e06dd7c6333c-Etapa1_10_lotes.gis","8256","5271A9F0C57CF648101CFCDC4CB6635CB28FA2C637DECD4C60195751E8959EEF"
"9","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin","Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin","doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"10","1024","1053","False","02_Copia_escrituras.pdf","doc-1024-1053-4026eac60fde4d57aca2ed30325c7aa7.bin","Clientes/4/Etapas/1024/doc-1024-1053-4026eac60fde4d57aca2ed30325c7aa7.bin","doc-1024-1053-4026eac60fde4d57aca2ed30325c7aa7-02_Copia_escrituras.pdf","Clientes/4/Etapas/1024/doc-1024-1053-4026eac60fde4d57aca2ed30325c7aa7-02_Copia_escrituras.pdf","44497","DE63A4F755D5199D1EB98A024C03627B1AB698403481CE8C6BC5D92E7E8746CC"
"11","1024","1046","False","04_Dictamen_uso_suelo.pdf","doc-1024-1046-168182c76cb843cbb3a2aff986bff057.bin","Clientes/4/Etapas/1024/doc-1024-1046-168182c76cb843cbb3a2aff986bff057.bin","doc-1024-1046-168182c76cb843cbb3a2aff986bff057-04_Dictamen_uso_suelo.pdf","Clientes/4/Etapas/1024/doc-1024-1046-168182c76cb843cbb3a2aff986bff057-04_Dictamen_uso_suelo.pdf","44359","AE0069AEC8DDBE09071581126BEA3272BC37A4D758A764BF8A05D58755F4BC28"
"12","1024","1069","False","05_Carta_poder_representante_legal.pdf","doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin","Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin","doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"13","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"14","1024","1079","False","08_Constancia_no_adeudo_Agua_Hermosillo.pdf","doc-1024-1079-b838d1c6a81948a0ad275d93dca3b0f5.bin","Clientes/4/Etapas/1024/doc-1024-1079-b838d1c6a81948a0ad275d93dca3b0f5.bin","doc-1024-1079-b838d1c6a81948a0ad275d93dca3b0f5-08_Constancia_no_adeudo_Agua_Hermosillo.pdf","Clientes/4/Etapas/1024/doc-1024-1079-b838d1c6a81948a0ad275d93dca3b0f5-08_Constancia_no_adeudo_Agua_Hermosillo.pdf","44351","04CD6B0F2739837F7BD711819D031FB73BACD7675B752906EFE283F46A7C3006"
"15","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin","Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin","doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"16","1024","1037","False","10_Comprobante_domicilio.pdf","doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin","Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin","doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"17","1024","1053","True","02_Copia_escrituras.pdf","doc-1024-1053-393eb44b58d24c128d4b5cc5090cc117.bin","Clientes/4/Etapas/1024/doc-1024-1053-393eb44b58d24c128d4b5cc5090cc117.bin","doc-1024-1053-393eb44b58d24c128d4b5cc5090cc117-02_Copia_escrituras.pdf","Clientes/4/Etapas/1024/doc-1024-1053-393eb44b58d24c128d4b5cc5090cc117-02_Copia_escrituras.pdf","44497","DE63A4F755D5199D1EB98A024C03627B1AB698403481CE8C6BC5D92E7E8746CC"
"18","1024","1046","True","04_Dictamen_uso_suelo.pdf","doc-1024-1046-746dbd30e6f343338537a9e5e0b3ee59.bin","Clientes/4/Etapas/1024/doc-1024-1046-746dbd30e6f343338537a9e5e0b3ee59.bin","doc-1024-1046-746dbd30e6f343338537a9e5e0b3ee59-04_Dictamen_uso_suelo.pdf","Clientes/4/Etapas/1024/doc-1024-1046-746dbd30e6f343338537a9e5e0b3ee59-04_Dictamen_uso_suelo.pdf","44359","AE0069AEC8DDBE09071581126BEA3272BC37A4D758A764BF8A05D58755F4BC28"
"19","1024","1069","True","05_Carta_poder_representante_legal.pdf","doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin","Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin","doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"20","1024","1040","True","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"21","1024","1079","True","08_Constancia_no_adeudo_Agua_Hermosillo.pdf","doc-1024-1079-b25d1e7c30b0443cb66423c56c45c46c.bin","Clientes/4/Etapas/1024/doc-1024-1079-b25d1e7c30b0443cb66423c56c45c46c.bin","doc-1024-1079-b25d1e7c30b0443cb66423c56c45c46c-08_Constancia_no_adeudo_Agua_Hermosillo.pdf","Clientes/4/Etapas/1024/doc-1024-1079-b25d1e7c30b0443cb66423c56c45c46c-08_Constancia_no_adeudo_Agua_Hermosillo.pdf","44351","04CD6B0F2739837F7BD711819D031FB73BACD7675B752906EFE283F46A7C3006"
"22","1024","1034","True","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin","Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin","doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"23","1024","1037","True","10_Comprobante_domicilio.pdf","doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin","Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin","doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"24","1024","1082","False","11_Cedula_RFC.pdf","doc-1024-1082-02f16c7d84fb4781ae5f7e5280422788.bin","Clientes/4/Etapas/1024/doc-1024-1082-02f16c7d84fb4781ae5f7e5280422788.bin","doc-1024-1082-02f16c7d84fb4781ae5f7e5280422788-11_Cedula_RFC.pdf","Clientes/4/Etapas/1024/doc-1024-1082-02f16c7d84fb4781ae5f7e5280422788-11_Cedula_RFC.pdf","44347","75D97258546FDD49567B605CA676CD5DF97F539A7134F9A977BE14D9FA48F912"
"25","1024","1080","False","12_Autorizaciones_CIDUE.pdf","doc-1024-1080-2337d1e8ab91435891a9332b5fd58262.bin","Clientes/4/Etapas/1024/doc-1024-1080-2337d1e8ab91435891a9332b5fd58262.bin","doc-1024-1080-2337d1e8ab91435891a9332b5fd58262-12_Autorizaciones_CIDUE.pdf","Clientes/4/Etapas/1024/doc-1024-1080-2337d1e8ab91435891a9332b5fd58262-12_Autorizaciones_CIDUE.pdf","44232","B68667D2A258EC28F3445017A42014A1CDEC4AD6686AE5FB4AD15B275B1D4E7E"
"26","1024","1045","False","Croquis.png","doc-1024-1045-d447e83e74d14977957ca05ed2465c28.bin","Clientes/4/Etapas/1024/doc-1024-1045-d447e83e74d14977957ca05ed2465c28.bin","doc-1024-1045-d447e83e74d14977957ca05ed2465c28-Croquis.png","Clientes/4/Etapas/1024/doc-1024-1045-d447e83e74d14977957ca05ed2465c28-Croquis.png","984403","3A507595006CDBB8A59830E0B9634D11DCB85A4CBED1F2A5F35023043947E632"
"27","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"28","1024","1082","True","11_Cedula_RFC.pdf","doc-1024-1082-d9c8ba3f888249ae918d7dffbbf6764c.bin","Clientes/4/Etapas/1024/doc-1024-1082-d9c8ba3f888249ae918d7dffbbf6764c.bin","doc-1024-1082-d9c8ba3f888249ae918d7dffbbf6764c-11_Cedula_RFC.pdf","Clientes/4/Etapas/1024/doc-1024-1082-d9c8ba3f888249ae918d7dffbbf6764c-11_Cedula_RFC.pdf","44347","75D97258546FDD49567B605CA676CD5DF97F539A7134F9A977BE14D9FA48F912"
"29","1024","1080","True","12_Autorizaciones_CIDUE.pdf","doc-1024-1080-f691bac55afb4c6084d21a7d2ab8f3a2.bin","Clientes/4/Etapas/1024/doc-1024-1080-f691bac55afb4c6084d21a7d2ab8f3a2.bin","doc-1024-1080-f691bac55afb4c6084d21a7d2ab8f3a2-12_Autorizaciones_CIDUE.pdf","Clientes/4/Etapas/1024/doc-1024-1080-f691bac55afb4c6084d21a7d2ab8f3a2-12_Autorizaciones_CIDUE.pdf","44232","B68667D2A258EC28F3445017A42014A1CDEC4AD6686AE5FB4AD15B275B1D4E7E"
"30","1024","1045","True","Croquis.png","doc-1024-1045-61379c693d6241898e7cf30cffd8658a.bin","Clientes/4/Etapas/1024/doc-1024-1045-61379c693d6241898e7cf30cffd8658a.bin","doc-1024-1045-61379c693d6241898e7cf30cffd8658a-Croquis.png","Clientes/4/Etapas/1024/doc-1024-1045-61379c693d6241898e7cf30cffd8658a-Croquis.png","984403","3A507595006CDBB8A59830E0B9634D11DCB85A4CBED1F2A5F35023043947E632"
"31","1024","1057","True","Identificación Oficial.jpg","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"32","1024","1051","True","01_Oficio_solicitud_obras_necesarias.pdf","doc-1024-1051-4037762f536045d59be5d818e2de6481.bin","Clientes/4/Etapas/1024/doc-1024-1051-4037762f536045d59be5d818e2de6481.bin","doc-1024-1051-4037762f536045d59be5d818e2de6481-01_Oficio_solicitud_obras_necesarias.pdf","Clientes/4/Etapas/1024/doc-1024-1051-4037762f536045d59be5d818e2de6481-01_Oficio_solicitud_obras_necesarias.pdf","44555","DDBDF6829D3A8F8587E42A768C32EF08AEE89848001C4E9B19EEE24480B75AB8"
"33","1028","1053","True","02_Copia_escrituras.pdf","doc-1028-1053-c2b0275d99924d3784d7aec44c0b8beb.bin","Clientes/4/Etapas/1028/doc-1028-1053-c2b0275d99924d3784d7aec44c0b8beb.bin","doc-1028-1053-c2b0275d99924d3784d7aec44c0b8beb-02_Copia_escrituras.pdf","Clientes/4/Etapas/1028/doc-1028-1053-c2b0275d99924d3784d7aec44c0b8beb-02_Copia_escrituras.pdf","44497","DE63A4F755D5199D1EB98A024C03627B1AB698403481CE8C6BC5D92E7E8746CC"
"34","1028","1046","True","04_Dictamen_uso_suelo.pdf","doc-1028-1046-c98e40e90f3b41cdb810222241f3fc9a.bin","Clientes/4/Etapas/1028/doc-1028-1046-c98e40e90f3b41cdb810222241f3fc9a.bin","doc-1028-1046-c98e40e90f3b41cdb810222241f3fc9a-04_Dictamen_uso_suelo.pdf","Clientes/4/Etapas/1028/doc-1028-1046-c98e40e90f3b41cdb810222241f3fc9a-04_Dictamen_uso_suelo.pdf","44359","AE0069AEC8DDBE09071581126BEA3272BC37A4D758A764BF8A05D58755F4BC28"
"35","1028","1069","True","05_Carta_poder_representante_legal.pdf","doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin","Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin","doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"36","1028","1040","True","06_Constancia_no_adeudo_tesoreria.pdf","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"37","1028","1079","True","08_Constancia_no_adeudo_Agua_Hermosillo.pdf","doc-1028-1079-9be2156047bc4828b3e43b67fe3f6733.bin","Clientes/4/Etapas/1028/doc-1028-1079-9be2156047bc4828b3e43b67fe3f6733.bin","doc-1028-1079-9be2156047bc4828b3e43b67fe3f6733-08_Constancia_no_adeudo_Agua_Hermosillo.pdf","Clientes/4/Etapas/1028/doc-1028-1079-9be2156047bc4828b3e43b67fe3f6733-08_Constancia_no_adeudo_Agua_Hermosillo.pdf","44351","04CD6B0F2739837F7BD711819D031FB73BACD7675B752906EFE283F46A7C3006"
"38","1028","1034","True","09_Acta_Constitutiva_empresa.pdf","doc-1028-1034-583b7009cab246ed8287200ce7082495.bin","Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin","doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"39","1028","1037","True","10_Comprobante_domicilio.pdf","doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin","Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin","doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"40","1028","1082","True","11_Cedula_RFC.pdf","doc-1028-1082-a21ee3513b5a4fe3b1f5f8f237ddc338.bin","Clientes/4/Etapas/1028/doc-1028-1082-a21ee3513b5a4fe3b1f5f8f237ddc338.bin","doc-1028-1082-a21ee3513b5a4fe3b1f5f8f237ddc338-11_Cedula_RFC.pdf","Clientes/4/Etapas/1028/doc-1028-1082-a21ee3513b5a4fe3b1f5f8f237ddc338-11_Cedula_RFC.pdf","44347","75D97258546FDD49567B605CA676CD5DF97F539A7134F9A977BE14D9FA48F912"
"41","1028","1080","True","12_Autorizaciones_CIDUE.pdf","doc-1028-1080-2fb84cc84de24223a9fcdeaf1fcd2470.bin","Clientes/4/Etapas/1028/doc-1028-1080-2fb84cc84de24223a9fcdeaf1fcd2470.bin","doc-1028-1080-2fb84cc84de24223a9fcdeaf1fcd2470-12_Autorizaciones_CIDUE.pdf","Clientes/4/Etapas/1028/doc-1028-1080-2fb84cc84de24223a9fcdeaf1fcd2470-12_Autorizaciones_CIDUE.pdf","44232","B68667D2A258EC28F3445017A42014A1CDEC4AD6686AE5FB4AD15B275B1D4E7E"
"42","1028","1045","True","Croquis.png","doc-1028-1045-7f4784759eaf43f09e2a6433309008df.bin","Clientes/4/Etapas/1028/doc-1028-1045-7f4784759eaf43f09e2a6433309008df.bin","doc-1028-1045-7f4784759eaf43f09e2a6433309008df-Croquis.png","Clientes/4/Etapas/1028/doc-1028-1045-7f4784759eaf43f09e2a6433309008df-Croquis.png","984403","3A507595006CDBB8A59830E0B9634D11DCB85A4CBED1F2A5F35023043947E632"
"43","1028","1057","True","Identificación Oficial.jpg","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"44","1028","1051","True","01_Oficio_solicitud_obras_necesarias.pdf","doc-1028-1051-90d0c12832f9428abb0ac645be0c7156.bin","Clientes/4/Etapas/1028/doc-1028-1051-90d0c12832f9428abb0ac645be0c7156.bin","doc-1028-1051-90d0c12832f9428abb0ac645be0c7156-01_Oficio_solicitud_obras_necesarias.pdf","Clientes/4/Etapas/1028/doc-1028-1051-90d0c12832f9428abb0ac645be0c7156-01_Oficio_solicitud_obras_necesarias.pdf","44555","DDBDF6829D3A8F8587E42A768C32EF08AEE89848001C4E9B19EEE24480B75AB8"
"45","1022","1040","False","VL103M user manual 20230921.pdf","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","1146632","3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F"
"46","1022","1040","False","VL103M user manual 20230921.pdf","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","1146632","3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F"
"47","1022","1040","False","VL103M user manual 20230921.pdf","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","1146632","3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F"
"48","1022","1040","False","VL103M user manual 20230921.pdf","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","1146632","3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F"
"49","1022","1040","False","VL103M user manual 20230921.pdf","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","1146632","3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F"
"50","1022","1040","False","VL103M user manual 20230921.pdf","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin","doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf","1146632","3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F"
"51","1022","1045","False","BORRADOR EDISA.docx","doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb.bin","Clientes/1006/Etapas/1022/doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb.bin","doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb-BORRADOR EDISA.docx","Clientes/1006/Etapas/1022/doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb-BORRADOR EDISA.docx","16889","3074B0379B55A18B47EB06A4BAE47985B155CAC0583DE78B651988C7599A3C77"
"52","1022","1057","False","65007.jpeg","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","128129","0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081"
"53","1022","1057","False","65007.jpeg","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","128129","0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081"
"54","1022","1057","False","65007.jpeg","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","128129","0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081"
"55","1022","1057","False","65007.jpeg","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","128129","0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081"
"56","1022","1057","False","65007.jpeg","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","128129","0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081"
"57","1022","1057","False","65007.jpeg","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","128129","0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081"
"58","1022","1057","False","65007.jpeg","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin","doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg","128129","0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081"
"59","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin","Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin","doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"60","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin","Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin","doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"61","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin","Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin","doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"62","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin","Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin","doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"63","1024","1069","False","05_Carta_poder_representante_legal.pdf","doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin","Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin","doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"64","1024","1069","False","05_Carta_poder_representante_legal.pdf","doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin","Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin","doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"65","1024","1069","False","05_Carta_poder_representante_legal.pdf","doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin","Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin","doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"66","1024","1069","False","05_Carta_poder_representante_legal.pdf","doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin","Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin","doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"67","1024","1069","False","05_Carta_poder_representante_legal.pdf","doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin","Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin","doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"68","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"69","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"70","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"71","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"72","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"73","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin","doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"74","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin","Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin","doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"75","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin","Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin","doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"76","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin","Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin","doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"77","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin","Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin","doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"78","1024","1037","False","10_Comprobante_domicilio.pdf","doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin","Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin","doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"79","1024","1037","False","10_Comprobante_domicilio.pdf","doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin","Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin","doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"80","1024","1037","False","10_Comprobante_domicilio.pdf","doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin","Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin","doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"81","1024","1037","False","10_Comprobante_domicilio.pdf","doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin","Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin","doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"82","1024","1069","False","05_Carta_poder_representante_legal.pdf","doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin","Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin","doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"83","1024","1069","False","05_Carta_poder_representante_legal.pdf","doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin","Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin","doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"84","1024","1069","False","05_Carta_poder_representante_legal.pdf","doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin","Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin","doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"85","1024","1069","False","05_Carta_poder_representante_legal.pdf","doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin","Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin","doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"86","1024","1069","False","05_Carta_poder_representante_legal.pdf","doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin","Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin","doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"87","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"88","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"89","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"90","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"91","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"92","1024","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin","doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"93","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin","Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin","doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"94","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin","Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin","doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"95","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin","Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin","doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"96","1024","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin","Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin","doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"97","1024","1037","False","10_Comprobante_domicilio.pdf","doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin","Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin","doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"98","1024","1037","False","10_Comprobante_domicilio.pdf","doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin","Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin","doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"99","1024","1037","False","10_Comprobante_domicilio.pdf","doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin","Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin","doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"100","1024","1037","False","10_Comprobante_domicilio.pdf","doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin","Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin","doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"101","1024","1045","False","Croquis.png","doc-1024-1045-d447e83e74d14977957ca05ed2465c28.bin","Clientes/4/Etapas/1024/doc-1024-1045-d447e83e74d14977957ca05ed2465c28.bin","doc-1024-1045-d447e83e74d14977957ca05ed2465c28-Croquis.png","Clientes/4/Etapas/1024/doc-1024-1045-d447e83e74d14977957ca05ed2465c28-Croquis.png","984403","3A507595006CDBB8A59830E0B9634D11DCB85A4CBED1F2A5F35023043947E632"
"102","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"103","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"104","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"105","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"106","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"107","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"108","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin","doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"109","1024","1045","False","Croquis.png","doc-1024-1045-61379c693d6241898e7cf30cffd8658a.bin","Clientes/4/Etapas/1024/doc-1024-1045-61379c693d6241898e7cf30cffd8658a.bin","doc-1024-1045-61379c693d6241898e7cf30cffd8658a-Croquis.png","Clientes/4/Etapas/1024/doc-1024-1045-61379c693d6241898e7cf30cffd8658a-Croquis.png","984403","3A507595006CDBB8A59830E0B9634D11DCB85A4CBED1F2A5F35023043947E632"
"110","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"111","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"112","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"113","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"114","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"115","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"116","1024","1057","False","Identificación Oficial.jpg","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin","doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"117","1028","1069","False","05_Carta_poder_representante_legal.pdf","doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin","Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin","doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"118","1028","1069","False","05_Carta_poder_representante_legal.pdf","doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin","Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin","doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"119","1028","1069","False","05_Carta_poder_representante_legal.pdf","doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin","Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin","doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"120","1028","1069","False","05_Carta_poder_representante_legal.pdf","doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin","Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin","doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"121","1028","1069","False","05_Carta_poder_representante_legal.pdf","doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin","Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin","doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf","Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf","44650","A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1"
"122","1028","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"123","1028","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"124","1028","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"125","1028","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"126","1028","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"127","1028","1040","False","06_Constancia_no_adeudo_tesoreria.pdf","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin","doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf","44515","4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F"
"128","1028","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1028-1034-583b7009cab246ed8287200ce7082495.bin","Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin","doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"129","1028","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1028-1034-583b7009cab246ed8287200ce7082495.bin","Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin","doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"130","1028","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1028-1034-583b7009cab246ed8287200ce7082495.bin","Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin","doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"131","1028","1034","False","09_Acta_Constitutiva_empresa.pdf","doc-1028-1034-583b7009cab246ed8287200ce7082495.bin","Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin","doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf","Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf","44281","4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3"
"132","1028","1037","False","10_Comprobante_domicilio.pdf","doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin","Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin","doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"133","1028","1037","False","10_Comprobante_domicilio.pdf","doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin","Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin","doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"134","1028","1037","False","10_Comprobante_domicilio.pdf","doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin","Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin","doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"135","1028","1037","False","10_Comprobante_domicilio.pdf","doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin","Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin","doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf","Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf","44184","0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0"
"136","1028","1045","False","Croquis.png","doc-1028-1045-7f4784759eaf43f09e2a6433309008df.bin","Clientes/4/Etapas/1028/doc-1028-1045-7f4784759eaf43f09e2a6433309008df.bin","doc-1028-1045-7f4784759eaf43f09e2a6433309008df-Croquis.png","Clientes/4/Etapas/1028/doc-1028-1045-7f4784759eaf43f09e2a6433309008df-Croquis.png","984403","3A507595006CDBB8A59830E0B9634D11DCB85A4CBED1F2A5F35023043947E632"
"137","1028","1057","False","Identificación Oficial.jpg","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"138","1028","1057","False","Identificación Oficial.jpg","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"139","1028","1057","False","Identificación Oficial.jpg","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"140","1028","1057","False","Identificación Oficial.jpg","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"141","1028","1057","False","Identificación Oficial.jpg","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"142","1028","1057","False","Identificación Oficial.jpg","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
"143","1028","1057","False","Identificación Oficial.jpg","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin","doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg","55724","A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076"
1 CveDocumentoSolicitud CveFraccionamientoEtapa CveTipoDocumento EsActivo NombreArchivo NombreAnterior RutaAnterior NombreNuevo RutaNueva TamanoBytes SHA256
2 3 1022 1040 True VL103M user manual 20230921.pdf doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf 1146632 3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F
3 4 1022 1045 True BORRADOR EDISA.docx doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb.bin Clientes/1006/Etapas/1022/doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb.bin doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb-BORRADOR EDISA.docx Clientes/1006/Etapas/1022/doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb-BORRADOR EDISA.docx 16889 3074B0379B55A18B47EB06A4BAE47985B155CAC0583DE78B651988C7599A3C77
4 5 1022 1046 True ACTIVIDADES LETYYYY.docx doc-1022-1046-c3b1e27e553449a7b5a4545222b63b0b.bin Clientes/1006/Etapas/1022/doc-1022-1046-c3b1e27e553449a7b5a4545222b63b0b.bin doc-1022-1046-c3b1e27e553449a7b5a4545222b63b0b-ACTIVIDADES LETYYYY.docx Clientes/1006/Etapas/1022/doc-1022-1046-c3b1e27e553449a7b5a4545222b63b0b-ACTIVIDADES LETYYYY.docx 19908 8A139074FE52426D3FE0DCE395CCEDB031A03FB33462E2C989F695F14481C11D
5 6 1022 1051 True Recibo-Ago (1).pdf doc-1022-1051-b0ea49a4b15241e5a6010a8b890b9791.bin Clientes/1006/Etapas/1022/doc-1022-1051-b0ea49a4b15241e5a6010a8b890b9791.bin doc-1022-1051-b0ea49a4b15241e5a6010a8b890b9791-Recibo-Ago (1).pdf Clientes/1006/Etapas/1022/doc-1022-1051-b0ea49a4b15241e5a6010a8b890b9791-Recibo-Ago (1).pdf 814619 86017314865C2064DDBA15CBC1318643BC2F2E0C254A3D274CEE3C17B81E9094
6 7 1022 1057 True 65007.jpeg doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg 128129 0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081
7 8 1022 1053 True Etapa1_10_lotes.gis doc-1022-1053-53864978166e40c2b3c7e06dd7c6333c.bin Clientes/1006/Etapas/1022/doc-1022-1053-53864978166e40c2b3c7e06dd7c6333c.bin doc-1022-1053-53864978166e40c2b3c7e06dd7c6333c-Etapa1_10_lotes.gis Clientes/1006/Etapas/1022/doc-1022-1053-53864978166e40c2b3c7e06dd7c6333c-Etapa1_10_lotes.gis 8256 5271A9F0C57CF648101CFCDC4CB6635CB28FA2C637DECD4C60195751E8959EEF
8 9 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
9 10 1024 1053 False 02_Copia_escrituras.pdf doc-1024-1053-4026eac60fde4d57aca2ed30325c7aa7.bin Clientes/4/Etapas/1024/doc-1024-1053-4026eac60fde4d57aca2ed30325c7aa7.bin doc-1024-1053-4026eac60fde4d57aca2ed30325c7aa7-02_Copia_escrituras.pdf Clientes/4/Etapas/1024/doc-1024-1053-4026eac60fde4d57aca2ed30325c7aa7-02_Copia_escrituras.pdf 44497 DE63A4F755D5199D1EB98A024C03627B1AB698403481CE8C6BC5D92E7E8746CC
10 11 1024 1046 False 04_Dictamen_uso_suelo.pdf doc-1024-1046-168182c76cb843cbb3a2aff986bff057.bin Clientes/4/Etapas/1024/doc-1024-1046-168182c76cb843cbb3a2aff986bff057.bin doc-1024-1046-168182c76cb843cbb3a2aff986bff057-04_Dictamen_uso_suelo.pdf Clientes/4/Etapas/1024/doc-1024-1046-168182c76cb843cbb3a2aff986bff057-04_Dictamen_uso_suelo.pdf 44359 AE0069AEC8DDBE09071581126BEA3272BC37A4D758A764BF8A05D58755F4BC28
11 12 1024 1069 False 05_Carta_poder_representante_legal.pdf doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
12 13 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
13 14 1024 1079 False 08_Constancia_no_adeudo_Agua_Hermosillo.pdf doc-1024-1079-b838d1c6a81948a0ad275d93dca3b0f5.bin Clientes/4/Etapas/1024/doc-1024-1079-b838d1c6a81948a0ad275d93dca3b0f5.bin doc-1024-1079-b838d1c6a81948a0ad275d93dca3b0f5-08_Constancia_no_adeudo_Agua_Hermosillo.pdf Clientes/4/Etapas/1024/doc-1024-1079-b838d1c6a81948a0ad275d93dca3b0f5-08_Constancia_no_adeudo_Agua_Hermosillo.pdf 44351 04CD6B0F2739837F7BD711819D031FB73BACD7675B752906EFE283F46A7C3006
14 15 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
15 16 1024 1037 False 10_Comprobante_domicilio.pdf doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
16 17 1024 1053 True 02_Copia_escrituras.pdf doc-1024-1053-393eb44b58d24c128d4b5cc5090cc117.bin Clientes/4/Etapas/1024/doc-1024-1053-393eb44b58d24c128d4b5cc5090cc117.bin doc-1024-1053-393eb44b58d24c128d4b5cc5090cc117-02_Copia_escrituras.pdf Clientes/4/Etapas/1024/doc-1024-1053-393eb44b58d24c128d4b5cc5090cc117-02_Copia_escrituras.pdf 44497 DE63A4F755D5199D1EB98A024C03627B1AB698403481CE8C6BC5D92E7E8746CC
17 18 1024 1046 True 04_Dictamen_uso_suelo.pdf doc-1024-1046-746dbd30e6f343338537a9e5e0b3ee59.bin Clientes/4/Etapas/1024/doc-1024-1046-746dbd30e6f343338537a9e5e0b3ee59.bin doc-1024-1046-746dbd30e6f343338537a9e5e0b3ee59-04_Dictamen_uso_suelo.pdf Clientes/4/Etapas/1024/doc-1024-1046-746dbd30e6f343338537a9e5e0b3ee59-04_Dictamen_uso_suelo.pdf 44359 AE0069AEC8DDBE09071581126BEA3272BC37A4D758A764BF8A05D58755F4BC28
18 19 1024 1069 True 05_Carta_poder_representante_legal.pdf doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
19 20 1024 1040 True 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
20 21 1024 1079 True 08_Constancia_no_adeudo_Agua_Hermosillo.pdf doc-1024-1079-b25d1e7c30b0443cb66423c56c45c46c.bin Clientes/4/Etapas/1024/doc-1024-1079-b25d1e7c30b0443cb66423c56c45c46c.bin doc-1024-1079-b25d1e7c30b0443cb66423c56c45c46c-08_Constancia_no_adeudo_Agua_Hermosillo.pdf Clientes/4/Etapas/1024/doc-1024-1079-b25d1e7c30b0443cb66423c56c45c46c-08_Constancia_no_adeudo_Agua_Hermosillo.pdf 44351 04CD6B0F2739837F7BD711819D031FB73BACD7675B752906EFE283F46A7C3006
21 22 1024 1034 True 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
22 23 1024 1037 True 10_Comprobante_domicilio.pdf doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
23 24 1024 1082 False 11_Cedula_RFC.pdf doc-1024-1082-02f16c7d84fb4781ae5f7e5280422788.bin Clientes/4/Etapas/1024/doc-1024-1082-02f16c7d84fb4781ae5f7e5280422788.bin doc-1024-1082-02f16c7d84fb4781ae5f7e5280422788-11_Cedula_RFC.pdf Clientes/4/Etapas/1024/doc-1024-1082-02f16c7d84fb4781ae5f7e5280422788-11_Cedula_RFC.pdf 44347 75D97258546FDD49567B605CA676CD5DF97F539A7134F9A977BE14D9FA48F912
24 25 1024 1080 False 12_Autorizaciones_CIDUE.pdf doc-1024-1080-2337d1e8ab91435891a9332b5fd58262.bin Clientes/4/Etapas/1024/doc-1024-1080-2337d1e8ab91435891a9332b5fd58262.bin doc-1024-1080-2337d1e8ab91435891a9332b5fd58262-12_Autorizaciones_CIDUE.pdf Clientes/4/Etapas/1024/doc-1024-1080-2337d1e8ab91435891a9332b5fd58262-12_Autorizaciones_CIDUE.pdf 44232 B68667D2A258EC28F3445017A42014A1CDEC4AD6686AE5FB4AD15B275B1D4E7E
25 26 1024 1045 False Croquis.png doc-1024-1045-d447e83e74d14977957ca05ed2465c28.bin Clientes/4/Etapas/1024/doc-1024-1045-d447e83e74d14977957ca05ed2465c28.bin doc-1024-1045-d447e83e74d14977957ca05ed2465c28-Croquis.png Clientes/4/Etapas/1024/doc-1024-1045-d447e83e74d14977957ca05ed2465c28-Croquis.png 984403 3A507595006CDBB8A59830E0B9634D11DCB85A4CBED1F2A5F35023043947E632
26 27 1024 1057 False Identificación Oficial.jpg doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
27 28 1024 1082 True 11_Cedula_RFC.pdf doc-1024-1082-d9c8ba3f888249ae918d7dffbbf6764c.bin Clientes/4/Etapas/1024/doc-1024-1082-d9c8ba3f888249ae918d7dffbbf6764c.bin doc-1024-1082-d9c8ba3f888249ae918d7dffbbf6764c-11_Cedula_RFC.pdf Clientes/4/Etapas/1024/doc-1024-1082-d9c8ba3f888249ae918d7dffbbf6764c-11_Cedula_RFC.pdf 44347 75D97258546FDD49567B605CA676CD5DF97F539A7134F9A977BE14D9FA48F912
28 29 1024 1080 True 12_Autorizaciones_CIDUE.pdf doc-1024-1080-f691bac55afb4c6084d21a7d2ab8f3a2.bin Clientes/4/Etapas/1024/doc-1024-1080-f691bac55afb4c6084d21a7d2ab8f3a2.bin doc-1024-1080-f691bac55afb4c6084d21a7d2ab8f3a2-12_Autorizaciones_CIDUE.pdf Clientes/4/Etapas/1024/doc-1024-1080-f691bac55afb4c6084d21a7d2ab8f3a2-12_Autorizaciones_CIDUE.pdf 44232 B68667D2A258EC28F3445017A42014A1CDEC4AD6686AE5FB4AD15B275B1D4E7E
29 30 1024 1045 True Croquis.png doc-1024-1045-61379c693d6241898e7cf30cffd8658a.bin Clientes/4/Etapas/1024/doc-1024-1045-61379c693d6241898e7cf30cffd8658a.bin doc-1024-1045-61379c693d6241898e7cf30cffd8658a-Croquis.png Clientes/4/Etapas/1024/doc-1024-1045-61379c693d6241898e7cf30cffd8658a-Croquis.png 984403 3A507595006CDBB8A59830E0B9634D11DCB85A4CBED1F2A5F35023043947E632
30 31 1024 1057 True Identificación Oficial.jpg doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
31 32 1024 1051 True 01_Oficio_solicitud_obras_necesarias.pdf doc-1024-1051-4037762f536045d59be5d818e2de6481.bin Clientes/4/Etapas/1024/doc-1024-1051-4037762f536045d59be5d818e2de6481.bin doc-1024-1051-4037762f536045d59be5d818e2de6481-01_Oficio_solicitud_obras_necesarias.pdf Clientes/4/Etapas/1024/doc-1024-1051-4037762f536045d59be5d818e2de6481-01_Oficio_solicitud_obras_necesarias.pdf 44555 DDBDF6829D3A8F8587E42A768C32EF08AEE89848001C4E9B19EEE24480B75AB8
32 33 1028 1053 True 02_Copia_escrituras.pdf doc-1028-1053-c2b0275d99924d3784d7aec44c0b8beb.bin Clientes/4/Etapas/1028/doc-1028-1053-c2b0275d99924d3784d7aec44c0b8beb.bin doc-1028-1053-c2b0275d99924d3784d7aec44c0b8beb-02_Copia_escrituras.pdf Clientes/4/Etapas/1028/doc-1028-1053-c2b0275d99924d3784d7aec44c0b8beb-02_Copia_escrituras.pdf 44497 DE63A4F755D5199D1EB98A024C03627B1AB698403481CE8C6BC5D92E7E8746CC
33 34 1028 1046 True 04_Dictamen_uso_suelo.pdf doc-1028-1046-c98e40e90f3b41cdb810222241f3fc9a.bin Clientes/4/Etapas/1028/doc-1028-1046-c98e40e90f3b41cdb810222241f3fc9a.bin doc-1028-1046-c98e40e90f3b41cdb810222241f3fc9a-04_Dictamen_uso_suelo.pdf Clientes/4/Etapas/1028/doc-1028-1046-c98e40e90f3b41cdb810222241f3fc9a-04_Dictamen_uso_suelo.pdf 44359 AE0069AEC8DDBE09071581126BEA3272BC37A4D758A764BF8A05D58755F4BC28
34 35 1028 1069 True 05_Carta_poder_representante_legal.pdf doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
35 36 1028 1040 True 06_Constancia_no_adeudo_tesoreria.pdf doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
36 37 1028 1079 True 08_Constancia_no_adeudo_Agua_Hermosillo.pdf doc-1028-1079-9be2156047bc4828b3e43b67fe3f6733.bin Clientes/4/Etapas/1028/doc-1028-1079-9be2156047bc4828b3e43b67fe3f6733.bin doc-1028-1079-9be2156047bc4828b3e43b67fe3f6733-08_Constancia_no_adeudo_Agua_Hermosillo.pdf Clientes/4/Etapas/1028/doc-1028-1079-9be2156047bc4828b3e43b67fe3f6733-08_Constancia_no_adeudo_Agua_Hermosillo.pdf 44351 04CD6B0F2739837F7BD711819D031FB73BACD7675B752906EFE283F46A7C3006
37 38 1028 1034 True 09_Acta_Constitutiva_empresa.pdf doc-1028-1034-583b7009cab246ed8287200ce7082495.bin Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
38 39 1028 1037 True 10_Comprobante_domicilio.pdf doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
39 40 1028 1082 True 11_Cedula_RFC.pdf doc-1028-1082-a21ee3513b5a4fe3b1f5f8f237ddc338.bin Clientes/4/Etapas/1028/doc-1028-1082-a21ee3513b5a4fe3b1f5f8f237ddc338.bin doc-1028-1082-a21ee3513b5a4fe3b1f5f8f237ddc338-11_Cedula_RFC.pdf Clientes/4/Etapas/1028/doc-1028-1082-a21ee3513b5a4fe3b1f5f8f237ddc338-11_Cedula_RFC.pdf 44347 75D97258546FDD49567B605CA676CD5DF97F539A7134F9A977BE14D9FA48F912
40 41 1028 1080 True 12_Autorizaciones_CIDUE.pdf doc-1028-1080-2fb84cc84de24223a9fcdeaf1fcd2470.bin Clientes/4/Etapas/1028/doc-1028-1080-2fb84cc84de24223a9fcdeaf1fcd2470.bin doc-1028-1080-2fb84cc84de24223a9fcdeaf1fcd2470-12_Autorizaciones_CIDUE.pdf Clientes/4/Etapas/1028/doc-1028-1080-2fb84cc84de24223a9fcdeaf1fcd2470-12_Autorizaciones_CIDUE.pdf 44232 B68667D2A258EC28F3445017A42014A1CDEC4AD6686AE5FB4AD15B275B1D4E7E
41 42 1028 1045 True Croquis.png doc-1028-1045-7f4784759eaf43f09e2a6433309008df.bin Clientes/4/Etapas/1028/doc-1028-1045-7f4784759eaf43f09e2a6433309008df.bin doc-1028-1045-7f4784759eaf43f09e2a6433309008df-Croquis.png Clientes/4/Etapas/1028/doc-1028-1045-7f4784759eaf43f09e2a6433309008df-Croquis.png 984403 3A507595006CDBB8A59830E0B9634D11DCB85A4CBED1F2A5F35023043947E632
42 43 1028 1057 True Identificación Oficial.jpg doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
43 44 1028 1051 True 01_Oficio_solicitud_obras_necesarias.pdf doc-1028-1051-90d0c12832f9428abb0ac645be0c7156.bin Clientes/4/Etapas/1028/doc-1028-1051-90d0c12832f9428abb0ac645be0c7156.bin doc-1028-1051-90d0c12832f9428abb0ac645be0c7156-01_Oficio_solicitud_obras_necesarias.pdf Clientes/4/Etapas/1028/doc-1028-1051-90d0c12832f9428abb0ac645be0c7156-01_Oficio_solicitud_obras_necesarias.pdf 44555 DDBDF6829D3A8F8587E42A768C32EF08AEE89848001C4E9B19EEE24480B75AB8
44 45 1022 1040 False VL103M user manual 20230921.pdf doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf 1146632 3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F
45 46 1022 1040 False VL103M user manual 20230921.pdf doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf 1146632 3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F
46 47 1022 1040 False VL103M user manual 20230921.pdf doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf 1146632 3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F
47 48 1022 1040 False VL103M user manual 20230921.pdf doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf 1146632 3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F
48 49 1022 1040 False VL103M user manual 20230921.pdf doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf 1146632 3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F
49 50 1022 1040 False VL103M user manual 20230921.pdf doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf 1146632 3C097C53A81FE7E60ECFB07A9FBD2163E8DB5DE7444050E0EC20ADAFCB7FBA3F
50 51 1022 1045 False BORRADOR EDISA.docx doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb.bin Clientes/1006/Etapas/1022/doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb.bin doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb-BORRADOR EDISA.docx Clientes/1006/Etapas/1022/doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb-BORRADOR EDISA.docx 16889 3074B0379B55A18B47EB06A4BAE47985B155CAC0583DE78B651988C7599A3C77
51 52 1022 1057 False 65007.jpeg doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg 128129 0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081
52 53 1022 1057 False 65007.jpeg doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg 128129 0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081
53 54 1022 1057 False 65007.jpeg doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg 128129 0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081
54 55 1022 1057 False 65007.jpeg doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg 128129 0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081
55 56 1022 1057 False 65007.jpeg doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg 128129 0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081
56 57 1022 1057 False 65007.jpeg doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg 128129 0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081
57 58 1022 1057 False 65007.jpeg doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg 128129 0F80A31813107978A32D13201884611FB35347E738BFDC4538D1ECE97FAD2081
58 59 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
59 60 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
60 61 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
61 62 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
62 63 1024 1069 False 05_Carta_poder_representante_legal.pdf doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
63 64 1024 1069 False 05_Carta_poder_representante_legal.pdf doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
64 65 1024 1069 False 05_Carta_poder_representante_legal.pdf doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
65 66 1024 1069 False 05_Carta_poder_representante_legal.pdf doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
66 67 1024 1069 False 05_Carta_poder_representante_legal.pdf doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
67 68 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
68 69 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
69 70 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
70 71 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
71 72 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
72 73 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
73 74 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
74 75 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
75 76 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
76 77 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
77 78 1024 1037 False 10_Comprobante_domicilio.pdf doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
78 79 1024 1037 False 10_Comprobante_domicilio.pdf doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
79 80 1024 1037 False 10_Comprobante_domicilio.pdf doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
80 81 1024 1037 False 10_Comprobante_domicilio.pdf doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
81 82 1024 1069 False 05_Carta_poder_representante_legal.pdf doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
82 83 1024 1069 False 05_Carta_poder_representante_legal.pdf doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
83 84 1024 1069 False 05_Carta_poder_representante_legal.pdf doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
84 85 1024 1069 False 05_Carta_poder_representante_legal.pdf doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
85 86 1024 1069 False 05_Carta_poder_representante_legal.pdf doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
86 87 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
87 88 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
88 89 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
89 90 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
90 91 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
91 92 1024 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
92 93 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
93 94 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
94 95 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
95 96 1024 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
96 97 1024 1037 False 10_Comprobante_domicilio.pdf doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
97 98 1024 1037 False 10_Comprobante_domicilio.pdf doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
98 99 1024 1037 False 10_Comprobante_domicilio.pdf doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
99 100 1024 1037 False 10_Comprobante_domicilio.pdf doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
100 101 1024 1045 False Croquis.png doc-1024-1045-d447e83e74d14977957ca05ed2465c28.bin Clientes/4/Etapas/1024/doc-1024-1045-d447e83e74d14977957ca05ed2465c28.bin doc-1024-1045-d447e83e74d14977957ca05ed2465c28-Croquis.png Clientes/4/Etapas/1024/doc-1024-1045-d447e83e74d14977957ca05ed2465c28-Croquis.png 984403 3A507595006CDBB8A59830E0B9634D11DCB85A4CBED1F2A5F35023043947E632
101 102 1024 1057 False Identificación Oficial.jpg doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
102 103 1024 1057 False Identificación Oficial.jpg doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
103 104 1024 1057 False Identificación Oficial.jpg doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
104 105 1024 1057 False Identificación Oficial.jpg doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
105 106 1024 1057 False Identificación Oficial.jpg doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
106 107 1024 1057 False Identificación Oficial.jpg doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
107 108 1024 1057 False Identificación Oficial.jpg doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
108 109 1024 1045 False Croquis.png doc-1024-1045-61379c693d6241898e7cf30cffd8658a.bin Clientes/4/Etapas/1024/doc-1024-1045-61379c693d6241898e7cf30cffd8658a.bin doc-1024-1045-61379c693d6241898e7cf30cffd8658a-Croquis.png Clientes/4/Etapas/1024/doc-1024-1045-61379c693d6241898e7cf30cffd8658a-Croquis.png 984403 3A507595006CDBB8A59830E0B9634D11DCB85A4CBED1F2A5F35023043947E632
109 110 1024 1057 False Identificación Oficial.jpg doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
110 111 1024 1057 False Identificación Oficial.jpg doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
111 112 1024 1057 False Identificación Oficial.jpg doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
112 113 1024 1057 False Identificación Oficial.jpg doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
113 114 1024 1057 False Identificación Oficial.jpg doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
114 115 1024 1057 False Identificación Oficial.jpg doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
115 116 1024 1057 False Identificación Oficial.jpg doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
116 117 1028 1069 False 05_Carta_poder_representante_legal.pdf doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
117 118 1028 1069 False 05_Carta_poder_representante_legal.pdf doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
118 119 1028 1069 False 05_Carta_poder_representante_legal.pdf doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
119 120 1028 1069 False 05_Carta_poder_representante_legal.pdf doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
120 121 1028 1069 False 05_Carta_poder_representante_legal.pdf doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf 44650 A40E9C9A5FBA9E40B133993051C39288D8A498CC71EBCFB354C2C9D73FA064F1
121 122 1028 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
122 123 1028 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
123 124 1028 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
124 125 1028 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
125 126 1028 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
126 127 1028 1040 False 06_Constancia_no_adeudo_tesoreria.pdf doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf 44515 4E2ADB80E976362F5A48D6D75FB421F193E2FB30AEE76F46132DB26BAD5CBF0F
127 128 1028 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1028-1034-583b7009cab246ed8287200ce7082495.bin Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
128 129 1028 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1028-1034-583b7009cab246ed8287200ce7082495.bin Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
129 130 1028 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1028-1034-583b7009cab246ed8287200ce7082495.bin Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
130 131 1028 1034 False 09_Acta_Constitutiva_empresa.pdf doc-1028-1034-583b7009cab246ed8287200ce7082495.bin Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf 44281 4461F94E3DCBE9BCF0FB45C099E3F87B969AC59BAB62E6CD7EA97133A5CD33A3
131 132 1028 1037 False 10_Comprobante_domicilio.pdf doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
132 133 1028 1037 False 10_Comprobante_domicilio.pdf doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
133 134 1028 1037 False 10_Comprobante_domicilio.pdf doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
134 135 1028 1037 False 10_Comprobante_domicilio.pdf doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf 44184 0222D8B303F2C0DA21863CA16BC160F2564963C14238009847C52C10526917D0
135 136 1028 1045 False Croquis.png doc-1028-1045-7f4784759eaf43f09e2a6433309008df.bin Clientes/4/Etapas/1028/doc-1028-1045-7f4784759eaf43f09e2a6433309008df.bin doc-1028-1045-7f4784759eaf43f09e2a6433309008df-Croquis.png Clientes/4/Etapas/1028/doc-1028-1045-7f4784759eaf43f09e2a6433309008df-Croquis.png 984403 3A507595006CDBB8A59830E0B9634D11DCB85A4CBED1F2A5F35023043947E632
136 137 1028 1057 False Identificación Oficial.jpg doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
137 138 1028 1057 False Identificación Oficial.jpg doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
138 139 1028 1057 False Identificación Oficial.jpg doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
139 140 1028 1057 False Identificación Oficial.jpg doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
140 141 1028 1057 False Identificación Oficial.jpg doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
141 142 1028 1057 False Identificación Oficial.jpg doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076
142 143 1028 1057 False Identificación Oficial.jpg doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg 55724 A5915340A4600EE8988CEDF4080E6828ED42FCD2DE432788102A328977A83076

View File

@@ -0,0 +1,243 @@
-- Migración de nombres físicos autorizada el 2026-10-03.
-- Requiere copias verificadas con el inventario CSV antes de ejecutarse.
-- Respaldo: Respaldo_NombresDocumentos_20261003.
SET NOCOUNT ON;
SET XACT_ABORT ON;
DECLARE @Mapeo TABLE
(
CveDocumentoSolicitud int PRIMARY KEY,
NombreAnterior varchar(255) COLLATE Modern_Spanish_CS_AS NOT NULL,
RutaAnterior varchar(1000) COLLATE Modern_Spanish_CS_AS NOT NULL,
NombreNuevo varchar(255) COLLATE Modern_Spanish_CS_AS NOT NULL,
RutaNueva varchar(1000) COLLATE Modern_Spanish_CS_AS NOT NULL
);
INSERT INTO @Mapeo
(CveDocumentoSolicitud, NombreAnterior, RutaAnterior, NombreNuevo, RutaNueva)
VALUES
(3, N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf'),
(4, N'doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb.bin', N'Clientes/1006/Etapas/1022/doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb.bin', N'doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb-BORRADOR EDISA.docx', N'Clientes/1006/Etapas/1022/doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb-BORRADOR EDISA.docx'),
(5, N'doc-1022-1046-c3b1e27e553449a7b5a4545222b63b0b.bin', N'Clientes/1006/Etapas/1022/doc-1022-1046-c3b1e27e553449a7b5a4545222b63b0b.bin', N'doc-1022-1046-c3b1e27e553449a7b5a4545222b63b0b-ACTIVIDADES LETYYYY.docx', N'Clientes/1006/Etapas/1022/doc-1022-1046-c3b1e27e553449a7b5a4545222b63b0b-ACTIVIDADES LETYYYY.docx'),
(6, N'doc-1022-1051-b0ea49a4b15241e5a6010a8b890b9791.bin', N'Clientes/1006/Etapas/1022/doc-1022-1051-b0ea49a4b15241e5a6010a8b890b9791.bin', N'doc-1022-1051-b0ea49a4b15241e5a6010a8b890b9791-Recibo-Ago (1).pdf', N'Clientes/1006/Etapas/1022/doc-1022-1051-b0ea49a4b15241e5a6010a8b890b9791-Recibo-Ago (1).pdf'),
(7, N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg'),
(8, N'doc-1022-1053-53864978166e40c2b3c7e06dd7c6333c.bin', N'Clientes/1006/Etapas/1022/doc-1022-1053-53864978166e40c2b3c7e06dd7c6333c.bin', N'doc-1022-1053-53864978166e40c2b3c7e06dd7c6333c-Etapa1_10_lotes.gis', N'Clientes/1006/Etapas/1022/doc-1022-1053-53864978166e40c2b3c7e06dd7c6333c-Etapa1_10_lotes.gis'),
(9, N'doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin', N'doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf'),
(10, N'doc-1024-1053-4026eac60fde4d57aca2ed30325c7aa7.bin', N'Clientes/4/Etapas/1024/doc-1024-1053-4026eac60fde4d57aca2ed30325c7aa7.bin', N'doc-1024-1053-4026eac60fde4d57aca2ed30325c7aa7-02_Copia_escrituras.pdf', N'Clientes/4/Etapas/1024/doc-1024-1053-4026eac60fde4d57aca2ed30325c7aa7-02_Copia_escrituras.pdf'),
(11, N'doc-1024-1046-168182c76cb843cbb3a2aff986bff057.bin', N'Clientes/4/Etapas/1024/doc-1024-1046-168182c76cb843cbb3a2aff986bff057.bin', N'doc-1024-1046-168182c76cb843cbb3a2aff986bff057-04_Dictamen_uso_suelo.pdf', N'Clientes/4/Etapas/1024/doc-1024-1046-168182c76cb843cbb3a2aff986bff057-04_Dictamen_uso_suelo.pdf'),
(12, N'doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin', N'Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin', N'doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf'),
(13, N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf'),
(14, N'doc-1024-1079-b838d1c6a81948a0ad275d93dca3b0f5.bin', N'Clientes/4/Etapas/1024/doc-1024-1079-b838d1c6a81948a0ad275d93dca3b0f5.bin', N'doc-1024-1079-b838d1c6a81948a0ad275d93dca3b0f5-08_Constancia_no_adeudo_Agua_Hermosillo.pdf', N'Clientes/4/Etapas/1024/doc-1024-1079-b838d1c6a81948a0ad275d93dca3b0f5-08_Constancia_no_adeudo_Agua_Hermosillo.pdf'),
(15, N'doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin', N'doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf'),
(16, N'doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin', N'Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin', N'doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf'),
(17, N'doc-1024-1053-393eb44b58d24c128d4b5cc5090cc117.bin', N'Clientes/4/Etapas/1024/doc-1024-1053-393eb44b58d24c128d4b5cc5090cc117.bin', N'doc-1024-1053-393eb44b58d24c128d4b5cc5090cc117-02_Copia_escrituras.pdf', N'Clientes/4/Etapas/1024/doc-1024-1053-393eb44b58d24c128d4b5cc5090cc117-02_Copia_escrituras.pdf'),
(18, N'doc-1024-1046-746dbd30e6f343338537a9e5e0b3ee59.bin', N'Clientes/4/Etapas/1024/doc-1024-1046-746dbd30e6f343338537a9e5e0b3ee59.bin', N'doc-1024-1046-746dbd30e6f343338537a9e5e0b3ee59-04_Dictamen_uso_suelo.pdf', N'Clientes/4/Etapas/1024/doc-1024-1046-746dbd30e6f343338537a9e5e0b3ee59-04_Dictamen_uso_suelo.pdf'),
(19, N'doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin', N'Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin', N'doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf'),
(20, N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf'),
(21, N'doc-1024-1079-b25d1e7c30b0443cb66423c56c45c46c.bin', N'Clientes/4/Etapas/1024/doc-1024-1079-b25d1e7c30b0443cb66423c56c45c46c.bin', N'doc-1024-1079-b25d1e7c30b0443cb66423c56c45c46c-08_Constancia_no_adeudo_Agua_Hermosillo.pdf', N'Clientes/4/Etapas/1024/doc-1024-1079-b25d1e7c30b0443cb66423c56c45c46c-08_Constancia_no_adeudo_Agua_Hermosillo.pdf'),
(22, N'doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin', N'doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf'),
(23, N'doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin', N'Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin', N'doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf'),
(24, N'doc-1024-1082-02f16c7d84fb4781ae5f7e5280422788.bin', N'Clientes/4/Etapas/1024/doc-1024-1082-02f16c7d84fb4781ae5f7e5280422788.bin', N'doc-1024-1082-02f16c7d84fb4781ae5f7e5280422788-11_Cedula_RFC.pdf', N'Clientes/4/Etapas/1024/doc-1024-1082-02f16c7d84fb4781ae5f7e5280422788-11_Cedula_RFC.pdf'),
(25, N'doc-1024-1080-2337d1e8ab91435891a9332b5fd58262.bin', N'Clientes/4/Etapas/1024/doc-1024-1080-2337d1e8ab91435891a9332b5fd58262.bin', N'doc-1024-1080-2337d1e8ab91435891a9332b5fd58262-12_Autorizaciones_CIDUE.pdf', N'Clientes/4/Etapas/1024/doc-1024-1080-2337d1e8ab91435891a9332b5fd58262-12_Autorizaciones_CIDUE.pdf'),
(26, N'doc-1024-1045-d447e83e74d14977957ca05ed2465c28.bin', N'Clientes/4/Etapas/1024/doc-1024-1045-d447e83e74d14977957ca05ed2465c28.bin', N'doc-1024-1045-d447e83e74d14977957ca05ed2465c28-Croquis.png', N'Clientes/4/Etapas/1024/doc-1024-1045-d447e83e74d14977957ca05ed2465c28-Croquis.png'),
(27, N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg'),
(28, N'doc-1024-1082-d9c8ba3f888249ae918d7dffbbf6764c.bin', N'Clientes/4/Etapas/1024/doc-1024-1082-d9c8ba3f888249ae918d7dffbbf6764c.bin', N'doc-1024-1082-d9c8ba3f888249ae918d7dffbbf6764c-11_Cedula_RFC.pdf', N'Clientes/4/Etapas/1024/doc-1024-1082-d9c8ba3f888249ae918d7dffbbf6764c-11_Cedula_RFC.pdf'),
(29, N'doc-1024-1080-f691bac55afb4c6084d21a7d2ab8f3a2.bin', N'Clientes/4/Etapas/1024/doc-1024-1080-f691bac55afb4c6084d21a7d2ab8f3a2.bin', N'doc-1024-1080-f691bac55afb4c6084d21a7d2ab8f3a2-12_Autorizaciones_CIDUE.pdf', N'Clientes/4/Etapas/1024/doc-1024-1080-f691bac55afb4c6084d21a7d2ab8f3a2-12_Autorizaciones_CIDUE.pdf'),
(30, N'doc-1024-1045-61379c693d6241898e7cf30cffd8658a.bin', N'Clientes/4/Etapas/1024/doc-1024-1045-61379c693d6241898e7cf30cffd8658a.bin', N'doc-1024-1045-61379c693d6241898e7cf30cffd8658a-Croquis.png', N'Clientes/4/Etapas/1024/doc-1024-1045-61379c693d6241898e7cf30cffd8658a-Croquis.png'),
(31, N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg'),
(32, N'doc-1024-1051-4037762f536045d59be5d818e2de6481.bin', N'Clientes/4/Etapas/1024/doc-1024-1051-4037762f536045d59be5d818e2de6481.bin', N'doc-1024-1051-4037762f536045d59be5d818e2de6481-01_Oficio_solicitud_obras_necesarias.pdf', N'Clientes/4/Etapas/1024/doc-1024-1051-4037762f536045d59be5d818e2de6481-01_Oficio_solicitud_obras_necesarias.pdf'),
(33, N'doc-1028-1053-c2b0275d99924d3784d7aec44c0b8beb.bin', N'Clientes/4/Etapas/1028/doc-1028-1053-c2b0275d99924d3784d7aec44c0b8beb.bin', N'doc-1028-1053-c2b0275d99924d3784d7aec44c0b8beb-02_Copia_escrituras.pdf', N'Clientes/4/Etapas/1028/doc-1028-1053-c2b0275d99924d3784d7aec44c0b8beb-02_Copia_escrituras.pdf'),
(34, N'doc-1028-1046-c98e40e90f3b41cdb810222241f3fc9a.bin', N'Clientes/4/Etapas/1028/doc-1028-1046-c98e40e90f3b41cdb810222241f3fc9a.bin', N'doc-1028-1046-c98e40e90f3b41cdb810222241f3fc9a-04_Dictamen_uso_suelo.pdf', N'Clientes/4/Etapas/1028/doc-1028-1046-c98e40e90f3b41cdb810222241f3fc9a-04_Dictamen_uso_suelo.pdf'),
(35, N'doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin', N'Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin', N'doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf'),
(36, N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf'),
(37, N'doc-1028-1079-9be2156047bc4828b3e43b67fe3f6733.bin', N'Clientes/4/Etapas/1028/doc-1028-1079-9be2156047bc4828b3e43b67fe3f6733.bin', N'doc-1028-1079-9be2156047bc4828b3e43b67fe3f6733-08_Constancia_no_adeudo_Agua_Hermosillo.pdf', N'Clientes/4/Etapas/1028/doc-1028-1079-9be2156047bc4828b3e43b67fe3f6733-08_Constancia_no_adeudo_Agua_Hermosillo.pdf'),
(38, N'doc-1028-1034-583b7009cab246ed8287200ce7082495.bin', N'Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin', N'doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf'),
(39, N'doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin', N'Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin', N'doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf'),
(40, N'doc-1028-1082-a21ee3513b5a4fe3b1f5f8f237ddc338.bin', N'Clientes/4/Etapas/1028/doc-1028-1082-a21ee3513b5a4fe3b1f5f8f237ddc338.bin', N'doc-1028-1082-a21ee3513b5a4fe3b1f5f8f237ddc338-11_Cedula_RFC.pdf', N'Clientes/4/Etapas/1028/doc-1028-1082-a21ee3513b5a4fe3b1f5f8f237ddc338-11_Cedula_RFC.pdf'),
(41, N'doc-1028-1080-2fb84cc84de24223a9fcdeaf1fcd2470.bin', N'Clientes/4/Etapas/1028/doc-1028-1080-2fb84cc84de24223a9fcdeaf1fcd2470.bin', N'doc-1028-1080-2fb84cc84de24223a9fcdeaf1fcd2470-12_Autorizaciones_CIDUE.pdf', N'Clientes/4/Etapas/1028/doc-1028-1080-2fb84cc84de24223a9fcdeaf1fcd2470-12_Autorizaciones_CIDUE.pdf'),
(42, N'doc-1028-1045-7f4784759eaf43f09e2a6433309008df.bin', N'Clientes/4/Etapas/1028/doc-1028-1045-7f4784759eaf43f09e2a6433309008df.bin', N'doc-1028-1045-7f4784759eaf43f09e2a6433309008df-Croquis.png', N'Clientes/4/Etapas/1028/doc-1028-1045-7f4784759eaf43f09e2a6433309008df-Croquis.png'),
(43, N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg'),
(44, N'doc-1028-1051-90d0c12832f9428abb0ac645be0c7156.bin', N'Clientes/4/Etapas/1028/doc-1028-1051-90d0c12832f9428abb0ac645be0c7156.bin', N'doc-1028-1051-90d0c12832f9428abb0ac645be0c7156-01_Oficio_solicitud_obras_necesarias.pdf', N'Clientes/4/Etapas/1028/doc-1028-1051-90d0c12832f9428abb0ac645be0c7156-01_Oficio_solicitud_obras_necesarias.pdf'),
(45, N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf'),
(46, N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf'),
(47, N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf'),
(48, N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf'),
(49, N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf'),
(50, N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd.bin', N'doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf', N'Clientes/1006/Etapas/1022/doc-1022-1040-b6e404e6e7dc4597860185076b3289dd-VL103M user manual 20230921.pdf'),
(51, N'doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb.bin', N'Clientes/1006/Etapas/1022/doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb.bin', N'doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb-BORRADOR EDISA.docx', N'Clientes/1006/Etapas/1022/doc-1022-1045-b8d0648d970b4cababc65f30c58b1ccb-BORRADOR EDISA.docx'),
(52, N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg'),
(53, N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg'),
(54, N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg'),
(55, N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg'),
(56, N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg'),
(57, N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg'),
(58, N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422.bin', N'doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg', N'Clientes/1006/Etapas/1022/doc-1022-1057-626fd5ba8cc747fcae64ad2c8466f422-65007.jpeg'),
(59, N'doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin', N'doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf'),
(60, N'doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin', N'doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf'),
(61, N'doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin', N'doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf'),
(62, N'doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42.bin', N'doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-3212891ee8f847aba1e83b01fc27ef42-09_Acta_Constitutiva_empresa.pdf'),
(63, N'doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin', N'Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin', N'doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf'),
(64, N'doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin', N'Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin', N'doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf'),
(65, N'doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin', N'Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin', N'doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf'),
(66, N'doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin', N'Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin', N'doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf'),
(67, N'doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin', N'Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8.bin', N'doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1024/doc-1024-1069-1c7a3c7eb01f44acac908819648f3ca8-05_Carta_poder_representante_legal.pdf'),
(68, N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf'),
(69, N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf'),
(70, N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf'),
(71, N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf'),
(72, N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf'),
(73, N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971.bin', N'doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-cfb6478de0c64aa8933fa2df00de1971-06_Constancia_no_adeudo_tesoreria.pdf'),
(74, N'doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin', N'doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf'),
(75, N'doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin', N'doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf'),
(76, N'doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin', N'doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf'),
(77, N'doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba.bin', N'doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-703001ed04cd4768805ea52d87c496ba-09_Acta_Constitutiva_empresa.pdf'),
(78, N'doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin', N'Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin', N'doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf'),
(79, N'doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin', N'Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin', N'doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf'),
(80, N'doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin', N'Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin', N'doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf'),
(81, N'doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin', N'Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096.bin', N'doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1024/doc-1024-1037-251daa4398b44a56bb95dcd11326c096-10_Comprobante_domicilio.pdf'),
(82, N'doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin', N'Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin', N'doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf'),
(83, N'doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin', N'Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin', N'doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf'),
(84, N'doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin', N'Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin', N'doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf'),
(85, N'doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin', N'Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin', N'doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf'),
(86, N'doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin', N'Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77.bin', N'doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1024/doc-1024-1069-a126b490c1e24edbab7b044bf0549e77-05_Carta_poder_representante_legal.pdf'),
(87, N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf'),
(88, N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf'),
(89, N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf'),
(90, N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf'),
(91, N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf'),
(92, N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d.bin', N'doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1024/doc-1024-1040-52f4c0205ee1446b884f6c64f20e505d-06_Constancia_no_adeudo_tesoreria.pdf'),
(93, N'doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin', N'doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf'),
(94, N'doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin', N'doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf'),
(95, N'doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin', N'doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf'),
(96, N'doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin', N'Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5.bin', N'doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1024/doc-1024-1034-1f93d872f1c549988ab7b6f3f9b574f5-09_Acta_Constitutiva_empresa.pdf'),
(97, N'doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin', N'Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin', N'doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf'),
(98, N'doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin', N'Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin', N'doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf'),
(99, N'doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin', N'Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin', N'doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf'),
(100, N'doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin', N'Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f.bin', N'doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1024/doc-1024-1037-8ab956638dc442e49632d23459f4cb2f-10_Comprobante_domicilio.pdf'),
(101, N'doc-1024-1045-d447e83e74d14977957ca05ed2465c28.bin', N'Clientes/4/Etapas/1024/doc-1024-1045-d447e83e74d14977957ca05ed2465c28.bin', N'doc-1024-1045-d447e83e74d14977957ca05ed2465c28-Croquis.png', N'Clientes/4/Etapas/1024/doc-1024-1045-d447e83e74d14977957ca05ed2465c28-Croquis.png'),
(102, N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg'),
(103, N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg'),
(104, N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg'),
(105, N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg'),
(106, N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg'),
(107, N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg'),
(108, N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e.bin', N'doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-a00c7eb989a64e47baec43163755e90e-Identificación Oficial.jpg'),
(109, N'doc-1024-1045-61379c693d6241898e7cf30cffd8658a.bin', N'Clientes/4/Etapas/1024/doc-1024-1045-61379c693d6241898e7cf30cffd8658a.bin', N'doc-1024-1045-61379c693d6241898e7cf30cffd8658a-Croquis.png', N'Clientes/4/Etapas/1024/doc-1024-1045-61379c693d6241898e7cf30cffd8658a-Croquis.png'),
(110, N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg'),
(111, N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg'),
(112, N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg'),
(113, N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg'),
(114, N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg'),
(115, N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg'),
(116, N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3.bin', N'doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg', N'Clientes/4/Etapas/1024/doc-1024-1057-6f6f616d9d894e549d344781acf4b1f3-Identificación Oficial.jpg'),
(117, N'doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin', N'Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin', N'doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf'),
(118, N'doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin', N'Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin', N'doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf'),
(119, N'doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin', N'Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin', N'doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf'),
(120, N'doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin', N'Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin', N'doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf'),
(121, N'doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin', N'Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713.bin', N'doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf', N'Clientes/4/Etapas/1028/doc-1028-1069-320a3b0bf9294a92be5ebf802fcd4713-05_Carta_poder_representante_legal.pdf'),
(122, N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf'),
(123, N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf'),
(124, N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf'),
(125, N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf'),
(126, N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf'),
(127, N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072.bin', N'doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf', N'Clientes/4/Etapas/1028/doc-1028-1040-9bc673275f414c8d8d320e9bbf698072-06_Constancia_no_adeudo_tesoreria.pdf'),
(128, N'doc-1028-1034-583b7009cab246ed8287200ce7082495.bin', N'Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin', N'doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf'),
(129, N'doc-1028-1034-583b7009cab246ed8287200ce7082495.bin', N'Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin', N'doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf'),
(130, N'doc-1028-1034-583b7009cab246ed8287200ce7082495.bin', N'Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin', N'doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf'),
(131, N'doc-1028-1034-583b7009cab246ed8287200ce7082495.bin', N'Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495.bin', N'doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf', N'Clientes/4/Etapas/1028/doc-1028-1034-583b7009cab246ed8287200ce7082495-09_Acta_Constitutiva_empresa.pdf'),
(132, N'doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin', N'Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin', N'doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf'),
(133, N'doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin', N'Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin', N'doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf'),
(134, N'doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin', N'Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin', N'doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf'),
(135, N'doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin', N'Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915.bin', N'doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf', N'Clientes/4/Etapas/1028/doc-1028-1037-06adb9de68924cebafe0052e68b83915-10_Comprobante_domicilio.pdf'),
(136, N'doc-1028-1045-7f4784759eaf43f09e2a6433309008df.bin', N'Clientes/4/Etapas/1028/doc-1028-1045-7f4784759eaf43f09e2a6433309008df.bin', N'doc-1028-1045-7f4784759eaf43f09e2a6433309008df-Croquis.png', N'Clientes/4/Etapas/1028/doc-1028-1045-7f4784759eaf43f09e2a6433309008df-Croquis.png'),
(137, N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg'),
(138, N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg'),
(139, N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg'),
(140, N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg'),
(141, N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg'),
(142, N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg'),
(143, N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c.bin', N'doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg', N'Clientes/4/Etapas/1028/doc-1028-1057-657aeb02d955432c8a9f4a1a12042c1c-Identificación Oficial.jpg');
BEGIN TRY
BEGIN TRANSACTION;
SELECT documento.*
INTO #Antes
FROM dbo.Tra_DocumentosSolicitud AS documento WITH (TABLOCKX, HOLDLOCK);
IF EXISTS
(
SELECT 1
FROM @Mapeo AS mapeo
LEFT JOIN #Antes AS documento ON documento.CveDocumentoSolicitud = mapeo.CveDocumentoSolicitud
WHERE documento.CveDocumentoSolicitud IS NULL
OR documento.NombreArchivoFisico IS NULL
OR documento.RutaArchivo IS NULL
OR NOT
(
(documento.NombreArchivoFisico = mapeo.NombreAnterior AND documento.RutaArchivo = mapeo.RutaAnterior)
OR (documento.NombreArchivoFisico = mapeo.NombreNuevo AND documento.RutaArchivo = mapeo.RutaNueva)
)
)
THROW 51000, 'El inventario cambió. Revisar antes de migrar.', 1;
IF EXISTS
(
SELECT 1
FROM #Antes AS documento
INNER JOIN @Mapeo AS mapeo ON documento.RutaArchivo = mapeo.RutaAnterior
WHERE NOT EXISTS
(
SELECT 1
FROM @Mapeo AS conocido
WHERE conocido.CveDocumentoSolicitud = documento.CveDocumentoSolicitud
)
)
THROW 51001, 'Existen nuevas referencias a los archivos anteriores.', 1;
UPDATE documento
SET NombreArchivoFisico = mapeo.NombreNuevo,
RutaArchivo = mapeo.RutaNueva
FROM dbo.Tra_DocumentosSolicitud AS documento
INNER JOIN @Mapeo AS mapeo ON documento.CveDocumentoSolicitud = mapeo.CveDocumentoSolicitud
WHERE documento.NombreArchivoFisico = mapeo.NombreAnterior
AND documento.RutaArchivo = mapeo.RutaAnterior;
DECLARE @Actualizados int = @@ROWCOUNT;
IF EXISTS
(
SELECT [CveDocumentoSolicitud], [CveSolicitud], [CveTipoDocumento], [NombreArchivo], [ContentType], [TamanoBytes], [ComentarioCliente], [ComentarioAdministrativo], [EsAprobado], [CveUsuarioCarga], [CveUsuarioRevisa], [FechaRevision], [FechaAlta], [UltimaNota], [FechaDocumento], [FechaVencimiento], [EsActivo], [CveFraccionamientoEtapa], [Vencido], [CveTipoTramite]
FROM #Antes
EXCEPT
SELECT [CveDocumentoSolicitud], [CveSolicitud], [CveTipoDocumento], [NombreArchivo], [ContentType], [TamanoBytes], [ComentarioCliente], [ComentarioAdministrativo], [EsAprobado], [CveUsuarioCarga], [CveUsuarioRevisa], [FechaRevision], [FechaAlta], [UltimaNota], [FechaDocumento], [FechaVencimiento], [EsActivo], [CveFraccionamientoEtapa], [Vencido], [CveTipoTramite]
FROM dbo.Tra_DocumentosSolicitud
)
OR EXISTS
(
SELECT [CveDocumentoSolicitud], [CveSolicitud], [CveTipoDocumento], [NombreArchivo], [ContentType], [TamanoBytes], [ComentarioCliente], [ComentarioAdministrativo], [EsAprobado], [CveUsuarioCarga], [CveUsuarioRevisa], [FechaRevision], [FechaAlta], [UltimaNota], [FechaDocumento], [FechaVencimiento], [EsActivo], [CveFraccionamientoEtapa], [Vencido], [CveTipoTramite]
FROM dbo.Tra_DocumentosSolicitud
EXCEPT
SELECT [CveDocumentoSolicitud], [CveSolicitud], [CveTipoDocumento], [NombreArchivo], [ContentType], [TamanoBytes], [ComentarioCliente], [ComentarioAdministrativo], [EsAprobado], [CveUsuarioCarga], [CveUsuarioRevisa], [FechaRevision], [FechaAlta], [UltimaNota], [FechaDocumento], [FechaVencimiento], [EsActivo], [CveFraccionamientoEtapa], [Vencido], [CveTipoTramite]
FROM #Antes
)
THROW 51002, 'Se detectó un cambio ajeno a las rutas.', 1;
IF EXISTS
(
SELECT 1
FROM @Mapeo AS mapeo
INNER JOIN dbo.Tra_DocumentosSolicitud AS documento ON documento.CveDocumentoSolicitud = mapeo.CveDocumentoSolicitud
WHERE documento.NombreArchivoFisico <> mapeo.NombreNuevo
OR documento.RutaArchivo <> mapeo.RutaNueva
)
THROW 51003, 'No se actualizaron todas las referencias.', 1;
COMMIT TRANSACTION;
SELECT @Actualizados AS ReferenciasActualizadas;
END TRY
BEGIN CATCH
IF XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW;
END CATCH;

Binary file not shown.

After

Width:  |  Height:  |  Size: 961 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -70,6 +70,7 @@ namespace SIG.Web.AppCode.Configuration
"~/Scripts/scrollsig.js",
"~/Scripts/sig-grid-agrupado.js",
"~/Scripts/Convenios.js",
"~/Scripts/VisorGis.js",
"~/Scripts/LotesEtapa.js"
));
bundles.Add(new ScriptBundle("~/bundles/WebFormsJs").Include(
@@ -140,6 +141,7 @@ namespace SIG.Web.AppCode.Configuration
"~/Styles/scrollsig.css",
"~/Styles/sig-grid-agrupado.css",
"~/Styles/Convenios.css",
"~/Styles/VisorGis.css",
"~/Styles/LotesEtapa.css",
"~/Metronic/assets/global/plugins/bootstrap-switch/css/bootstrap-switch.min.css",
"~/Metronic/assets/global/plugins/bootstrap-toastr/toastr.min.css",

View File

@@ -8,7 +8,8 @@ namespace SIG.Web.AppCode.Contracts.Documentos
TramiteDocumentoPreparedFile Prepare(
TramiteDocumentoUploadContextModel context,
Stream source,
string previousRelativePath);
string previousRelativePath,
string nombreArchivoOriginal);
void Promote(TramiteDocumentoPreparedFile preparedFile);
void Rollback(TramiteDocumentoPreparedFile preparedFile);

View File

@@ -1,10 +1,13 @@
using System;
using System;
using System.Collections.Generic;
using SIG.Web.AppCode.Models.Common;
using SIG.Web.AppCode.Models.Documentos;
namespace SIG.Web.AppCode.Contracts.Documentos
{
// Los documentos y sus marcas particulares pertenecen a etapa y tipo de documento.
// Los parámetros de trámite en carga se conservan por compatibilidad;
// sólo los listados de requisitos utilizan el trámite como filtro.
public interface ITramiteDocumentoRepository
{
DbResult<List<SolicitudDocumentoConfiguracionModel>> ListarConfiguracionSolicitud(
@@ -12,7 +15,8 @@ namespace SIG.Web.AppCode.Contracts.Documentos
int cveSolicitud,
int cveUsuarioEjecuta,
string nombreDominio,
int? cveFraccionamientoEtapa = null);
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null);
DbResult<bool> ActualizarVencimientoEtapa(
int cveFraccionamientoEtapa,
@@ -30,7 +34,8 @@ namespace SIG.Web.AppCode.Contracts.Documentos
int cveTipoDocumento,
int cveUsuarioEjecuta,
string nombreDominio,
int? cveFraccionamientoEtapa = null);
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null);
DbResult<List<TramiteDocumentoSolicitudModel>> ListForDevelopment(
int developmentId,
@@ -52,7 +57,8 @@ namespace SIG.Web.AppCode.Contracts.Documentos
int documentTypeId,
int executingUser,
string domainName,
int? cveFraccionamientoEtapa = null);
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null);
DbResult<TramiteDocumentoUploadContextModel> GetStageUploadContext(
int stageId,
@@ -76,7 +82,8 @@ namespace SIG.Web.AppCode.Contracts.Documentos
DateTime? fechaDocumento = null,
DateTime? fechaVencimiento = null,
bool actualizarFechas = false,
int? cveFraccionamientoEtapa = null);
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null);
DbResult<TramiteDocumentoVencimientoResultModel> ActualizarFechaVencimiento(
int cveFraccionamiento,

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.IO;
using SIG.Web.AppCode.Models.Common;
@@ -7,6 +7,9 @@ using SIG.Web.AppCode.Models.Documentos;
namespace SIG.Web.AppCode.Contracts.Documentos
{
// Los documentos y sus marcas particulares pertenecen a etapa y tipo de documento.
// Los parámetros de trámite en carga se conservan por compatibilidad;
// sólo los listados de requisitos utilizan el trámite como filtro.
public interface ITramiteDocumentoService
{
DbResult<List<SolicitudDocumentoConfiguracionModel>> ListarConfiguracionSolicitud(
@@ -14,7 +17,8 @@ namespace SIG.Web.AppCode.Contracts.Documentos
int cveSolicitud,
int cveUsuarioEjecuta,
string nombreDominio,
int? cveFraccionamientoEtapa = null);
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null);
DbResult<bool> ActualizarVencimientoEtapa(
int cveFraccionamientoEtapa,
@@ -32,7 +36,8 @@ namespace SIG.Web.AppCode.Contracts.Documentos
int cveTipoDocumento,
int cveUsuarioEjecuta,
string nombreDominio,
int? cveFraccionamientoEtapa = null);
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null);
DbResult<List<TramiteDocumentoSolicitudModel>> ListForDevelopment(
int developmentId,
@@ -54,7 +59,8 @@ namespace SIG.Web.AppCode.Contracts.Documentos
int documentTypeId,
int executingUser,
string domainName,
int? cveFraccionamientoEtapa = null);
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null);
DbResult<TramiteDocumentoSaveResultModel> Upload(
int developmentId,
@@ -69,7 +75,8 @@ namespace SIG.Web.AppCode.Contracts.Documentos
string domainName,
DateTime? fechaDocumento = null,
DateTime? fechaVencimiento = null,
int? cveFraccionamientoEtapa = null);
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null);
DbResult<bool> Eliminar(
int cveFraccionamiento,

View File

@@ -8,6 +8,7 @@ namespace SIG.Web.AppCode.Contracts.Fraccionamientos
string ObtenerRutaFisica(ContextoGisFraccionamiento contexto);
bool Existe(ContextoGisFraccionamiento contexto);
void Guardar(ContextoGisFraccionamiento contexto, Stream origen);
Stream GuardarOriginalZip(ContextoGisFraccionamiento contexto, Stream origen, long longitud);
Stream AbrirLectura(ContextoGisFraccionamiento contexto);
void Eliminar(ContextoGisFraccionamiento contexto);
}

View File

@@ -6,6 +6,17 @@ namespace SIG.Web.AppCode.Contracts.Fraccionamientos
{
public interface IRepositorioGisFraccionamiento
{
DbResult<List<CapaGisFraccionamiento>> ListarCapas(
int cveFraccionamientoEtapa,
int cveUsuarioEjecuta,
string nombreDominio);
DbResult<bool> GuardarCapa(
int cveFraccionamientoEtapa,
CapaGisFraccionamiento capa,
int cveUsuarioEjecuta,
string nombreDominio);
DbResult<ContextoGisFraccionamiento> ObtenerContexto(
int cveFraccionamientoEtapa,
int cveUsuarioEjecuta,

View File

@@ -7,6 +7,31 @@ namespace SIG.Web.AppCode.Contracts.Fraccionamientos
{
public interface IServicioGisFraccionamiento
{
DbResult<ResultadoGuardadoGisFraccionamiento> DesvincularLote(
int cveFraccionamientoEtapa,
int cveFraccionamientoLote,
string clavePoligono,
int cveUsuarioEjecuta,
string nombreDominio);
DbResult<ResultadoGuardadoGisFraccionamiento> VincularLote(
int cveFraccionamientoEtapa,
int cveFraccionamientoLote,
string clavePoligono,
int cveUsuarioEjecuta,
string nombreDominio);
DbResult<List<CapaGisFraccionamiento>> ListarCapas(
int cveFraccionamientoEtapa,
int cveUsuarioEjecuta,
string nombreDominio);
DbResult<bool> GuardarCapa(
int cveFraccionamientoEtapa,
CapaGisFraccionamiento capa,
int cveUsuarioEjecuta,
string nombreDominio);
DbResult<VistaGisFraccionamiento> Obtener(
int cveFraccionamientoEtapa,
int cveUsuarioEjecuta,

View File

@@ -53,6 +53,24 @@ namespace SIG.Web.Pages.Fraccionamientos
"POST",
StringComparison.OrdinalIgnoreCase))
{
if (string.Equals(metodo, "DesvincularLote", StringComparison.OrdinalIgnoreCase))
{
DesvincularLote(contexto, actualUsuario);
return;
}
if (string.Equals(metodo, "VincularLote", StringComparison.OrdinalIgnoreCase))
{
VincularLote(contexto, actualUsuario);
return;
}
if (string.Equals(metodo, "GuardarCapa", StringComparison.OrdinalIgnoreCase))
{
GuardarCapa(contexto, actualUsuario);
return;
}
if (string.Equals(metodo, "Save", StringComparison.OrdinalIgnoreCase) ||
string.Equals(metodo, "GuardarArchivo", StringComparison.OrdinalIgnoreCase) ||
string.Equals(metodo, "GuardarVinculos", StringComparison.OrdinalIgnoreCase))
@@ -94,6 +112,21 @@ namespace SIG.Web.Pages.Fraccionamientos
return;
}
if (string.Equals(metodo, "Capas", StringComparison.OrdinalIgnoreCase))
{
DbResult<List<CapaGisFraccionamiento>> capas =
AppServices.ServicioGisFraccionamiento.ListarCapas(
cveFraccionamientoEtapa, actualUsuario.CveUsuario, actualUsuario.NombreDominio);
if (!capas.Success)
{
EscribirFalloResultado(contexto, capas, 400);
return;
}
EscribirJson(contexto, 200, new { success = true, data = capas.Data });
return;
}
if (string.Equals(metodo, "Context", StringComparison.OrdinalIgnoreCase))
{
ObtenerContexto(contexto, actualUsuario, cveFraccionamientoEtapa);
@@ -162,6 +195,86 @@ namespace SIG.Web.Pages.Fraccionamientos
});
}
private static void VincularLote(HttpContext contexto, UserSessionModel actualUsuario)
{
int etapa;
int lote;
if (!IntentarObtenerCveEtapa(contexto, out etapa) ||
!int.TryParse(contexto.Request.Form["CveFraccionamientoLote"], out lote))
{
EscribirJson(contexto, 400, new { success = false, message = "Seleccione una etapa y un lote válidos." });
return;
}
DbResult<ResultadoGuardadoGisFraccionamiento> resultado =
AppServices.ServicioGisFraccionamiento.VincularLote(
etapa, lote, contexto.Request.Form["ClavePoligono"],
actualUsuario.CveUsuario, actualUsuario.NombreDominio);
if (!resultado.Success)
{
EscribirFalloResultado(contexto, resultado, 400);
return;
}
EscribirJson(contexto, 200, new { success = true, message = "Lote vinculado correctamente." });
}
private static void DesvincularLote(HttpContext contexto, UserSessionModel actualUsuario)
{
int etapa;
int lote;
if (!IntentarObtenerCveEtapa(contexto, out etapa) ||
!int.TryParse(contexto.Request.Form["CveFraccionamientoLote"], out lote))
{
EscribirJson(contexto, 400, new { success = false, message = "Seleccione una etapa y un lote válidos." });
return;
}
var resultado = AppServices.ServicioGisFraccionamiento.DesvincularLote(
etapa, lote, contexto.Request.Form["ClavePoligono"],
actualUsuario.CveUsuario, actualUsuario.NombreDominio);
if (!resultado.Success)
{
EscribirFalloResultado(contexto, resultado, 400);
return;
}
EscribirJson(contexto, 200, new { success = true, message = "Lote desvinculado correctamente." });
}
private static void GuardarCapa(HttpContext contexto, UserSessionModel actualUsuario)
{
int etapa;
bool visible;
if (!IntentarObtenerCveEtapa(contexto, out etapa) ||
!bool.TryParse(contexto.Request.Form["EsVisible"], out visible))
{
EscribirJson(contexto, 400, new
{
success = false,
message = "Indique una etapa y configuración válidas."
});
return;
}
CapaGisFraccionamiento capa = new CapaGisFraccionamiento
{
NombreCapa = contexto.Request.Form["NombreCapa"],
TipoCapa = contexto.Request.Form["TipoCapa"],
Color = contexto.Request.Form["Color"],
EsVisible = visible
};
DbResult<bool> resultado = AppServices.ServicioGisFraccionamiento.GuardarCapa(
etapa, capa, actualUsuario.CveUsuario, actualUsuario.NombreDominio);
if (!resultado.Success)
{
EscribirFalloResultado(contexto, resultado, 400);
return;
}
EscribirJson(contexto, 200, new { success = true, message = "Capa guardada." });
}
private static void Guardar(
HttpContext contexto,
UserSessionModel actualUsuario,

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
namespace SIG.Web.AppCode.Models.Convenios
@@ -9,6 +9,7 @@ namespace SIG.Web.AppCode.Models.Convenios
public int? CveCliente { get; set; }
public int? CveFraccionamiento { get; set; }
public int? CveFraccionamientoEtapa { get; set; }
public int? CveTipoTramite { get; set; }
public string Estatus { get; set; }
public bool? ConSaldoPendiente { get; set; }
}
@@ -21,6 +22,8 @@ namespace SIG.Web.AppCode.Models.Convenios
public int CveFraccionamiento { get; set; }
public string Fraccionamiento { get; set; }
public int CveFraccionamientoEtapa { get; set; }
public int CveTipoTramite { get; set; }
public string TipoTramite { get; set; }
public string Etapa { get; set; }
public string NumeroConvenio { get; set; }
public string NumeroOficio { get; set; }
@@ -38,6 +41,8 @@ namespace SIG.Web.AppCode.Models.Convenios
public int CveConvenio { get; set; }
public int CveCliente { get; set; }
public int CveFraccionamientoEtapa { get; set; }
public int CveTipoTramite { get; set; }
public string TipoTramite { get; set; }
public string NumeroConvenio { get; set; }
public string NumeroOficio { get; set; }
public string Cliente { get; set; }
@@ -97,6 +102,8 @@ namespace SIG.Web.AppCode.Models.Convenios
{
public int CveCliente { get; set; }
public int CveFraccionamientoEtapa { get; set; }
public int CveTipoTramite { get; set; }
public string TipoTramite { get; set; }
public string NumeroConvenio { get; set; }
public string NumeroOficio { get; set; }
public int? ViviendasAutorizadas { get; set; }

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.IO;
namespace SIG.Web.AppCode.Models.Documentos
@@ -6,6 +6,7 @@ namespace SIG.Web.AppCode.Models.Documentos
[Serializable]
public sealed class SolicitudDocumentoConfiguracionModel
{
public int CveTipoTramite { get; set; }
public int CveSolicitud { get; set; }
public int CveTipoDocumento { get; set; }
public int CveCliente { get; set; }
@@ -94,6 +95,16 @@ namespace SIG.Web.AppCode.Models.Documentos
{
get { return EsRequerido && !TieneArchivo; }
}
public bool ImpideAvanzar
{
get
{
return EsRequerido &&
(!TieneArchivo || EsAprobado != true || FechaExpirada ||
(TieneVigencia && !FechaVencimiento.HasValue));
}
}
}
public sealed class TramiteDocumentoUploadContextModel

View File

@@ -4,6 +4,16 @@ using System.IO;
namespace SIG.Web.AppCode.Models.Fraccionamientos
{
public sealed class CapaGisFraccionamiento
{
public string NombreCapa { get; set; }
public string TipoCapa { get; set; }
public string Color { get; set; }
public bool EsVisible { get; set; }
public string Geometria { get; set; }
public int Elementos { get; set; }
}
public sealed class ContextoGisFraccionamiento
{
public int CveCliente { get; set; }

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Data;
using System.Globalization;
@@ -56,6 +56,11 @@ namespace SIG.Web.AppCode.Repositories.Convenios
"@CveFraccionamientoEtapa",
filtro.CveFraccionamientoEtapa,
DbType.Int32);
StoredProcedureCommand.AddInput(
comando,
"@CveTipoTramite",
filtro.CveTipoTramite,
DbType.Int32);
StoredProcedureCommand.AddInput(
comando,
"@Estatus",
@@ -150,6 +155,11 @@ namespace SIG.Web.AppCode.Repositories.Convenios
"@CveFraccionamientoEtapa",
solicitud.CveFraccionamientoEtapa,
DbType.Int32);
StoredProcedureCommand.AddInput(
comando,
"@CveTipoTramite",
solicitud.CveTipoTramite,
DbType.Int32);
StoredProcedureCommand.AddInput(
comando,
"@NumeroConvenio",

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Data;
using SIG.Web.AppCode.Contracts.Database;
@@ -22,7 +22,8 @@ namespace SIG.Web.AppCode.Repositories.Documentos
int cveSolicitud,
int cveUsuarioEjecuta,
string nombreDominio,
int? cveFraccionamientoEtapa = null)
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null)
{
return QueryList<SolicitudDocumentoConfiguracionModel>(
"dbo.PA_Tramites_SolicitudDocumentoConfiguracionList",
@@ -31,6 +32,7 @@ namespace SIG.Web.AppCode.Repositories.Documentos
comando =>
{
StoredProcedureCommand.AddInput(comando, "@CveFraccionamientoEtapa", cveFraccionamientoEtapa, DbType.Int32);
StoredProcedureCommand.AddInput(comando, "@CveTipoTramite", null, DbType.Int32);
StoredProcedureCommand.AddInput(
comando, "@CveFraccionamiento", cveFraccionamiento, DbType.Int32);
StoredProcedureCommand.AddInput(
@@ -68,6 +70,8 @@ namespace SIG.Web.AppCode.Repositories.Documentos
comando, "@CveFraccionamiento", configuracion.CveFraccionamiento, DbType.Int32);
StoredProcedureCommand.AddInput(
comando, "@CveSolicitud", configuracion.CveSolicitud, DbType.Int32);
StoredProcedureCommand.AddInput(
comando, "@CveTipoTramite", null, DbType.Int32);
StoredProcedureCommand.AddInput(
comando, "@CveTipoDocumento", configuracion.CveTipoDocumento, DbType.Int32);
StoredProcedureCommand.AddInput(
@@ -89,7 +93,8 @@ namespace SIG.Web.AppCode.Repositories.Documentos
int cveTipoDocumento,
int cveUsuarioEjecuta,
string nombreDominio,
int? cveFraccionamientoEtapa = null)
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null)
{
return Execute(
"dbo.PA_Tramites_SolicitudDocumentoConfiguracionDelete",
@@ -98,6 +103,7 @@ namespace SIG.Web.AppCode.Repositories.Documentos
comando =>
{
StoredProcedureCommand.AddInput(comando, "@CveFraccionamientoEtapa", cveFraccionamientoEtapa, DbType.Int32);
StoredProcedureCommand.AddInput(comando, "@CveTipoTramite", null, DbType.Int32);
StoredProcedureCommand.AddInput(
comando, "@CveFraccionamiento", cveFraccionamiento, DbType.Int32);
StoredProcedureCommand.AddInput(
@@ -171,7 +177,8 @@ namespace SIG.Web.AppCode.Repositories.Documentos
int documentTypeId,
int executingUser,
string domainName,
int? cveFraccionamientoEtapa = null)
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null)
{
return QueryOne<TramiteDocumentoUploadContextModel>(
"dbo.PA_Tramites_DocumentoSolicitudUploadContextGet",
@@ -180,6 +187,7 @@ namespace SIG.Web.AppCode.Repositories.Documentos
command =>
{
StoredProcedureCommand.AddInput(command, "@CveFraccionamientoEtapa", cveFraccionamientoEtapa, DbType.Int32);
StoredProcedureCommand.AddInput(command, "@CveTipoTramite", null, DbType.Int32);
StoredProcedureCommand.AddInput(
command,
"@CveFraccionamiento",
@@ -244,7 +252,8 @@ namespace SIG.Web.AppCode.Repositories.Documentos
DateTime? fechaDocumento = null,
DateTime? fechaVencimiento = null,
bool actualizarFechas = false,
int? cveFraccionamientoEtapa = null)
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null)
{
return QueryOne<TramiteDocumentoSaveResultModel>(
"dbo.PA_Tramites_DocumentoSolicitudSave",
@@ -253,6 +262,7 @@ namespace SIG.Web.AppCode.Repositories.Documentos
command =>
{
StoredProcedureCommand.AddInput(command, "@CveFraccionamientoEtapa", cveFraccionamientoEtapa, DbType.Int32);
StoredProcedureCommand.AddInput(command, "@CveTipoTramite", null, DbType.Int32);
StoredProcedureCommand.AddInput(command, "@CveFraccionamiento", developmentId, DbType.Int32);
StoredProcedureCommand.AddInput(command, "@CveSolicitud", requestId, DbType.Int32);
StoredProcedureCommand.AddInput(command, "@CveTipoDocumento", documentTypeId, DbType.Int32);

View File

@@ -18,6 +18,44 @@ namespace SIG.Web.AppCode.Repositories.Fraccionamientos
{
}
public DbResult<List<CapaGisFraccionamiento>> ListarCapas(
int cveFraccionamientoEtapa,
int cveUsuarioEjecuta,
string nombreDominio)
{
return QueryList<CapaGisFraccionamiento>(
"dbo.PA_Fraccionamientos_EtapaGISCapasList",
cveUsuarioEjecuta,
nombreDominio,
comando => StoredProcedureCommand.AddInput(
comando, "@CveFraccionamientoEtapa", cveFraccionamientoEtapa, DbType.Int32));
}
public DbResult<bool> GuardarCapa(
int cveFraccionamientoEtapa,
CapaGisFraccionamiento capa,
int cveUsuarioEjecuta,
string nombreDominio)
{
return Execute(
"dbo.PA_Fraccionamientos_EtapaGISCapasSave",
cveUsuarioEjecuta,
nombreDominio,
comando =>
{
StoredProcedureCommand.AddInput(
comando, "@CveFraccionamientoEtapa", cveFraccionamientoEtapa, DbType.Int32);
StoredProcedureCommand.AddInput(
comando, "@NombreCapa", capa.NombreCapa, DbType.String);
StoredProcedureCommand.AddInput(
comando, "@TipoCapa", capa.TipoCapa, DbType.String);
StoredProcedureCommand.AddInput(
comando, "@Color", capa.Color, DbType.String);
StoredProcedureCommand.AddInput(
comando, "@EsVisible", capa.EsVisible, DbType.Boolean);
});
}
public DbResult<ContextoGisFraccionamiento> ObtenerContexto(
int cveFraccionamientoEtapa,
int cveUsuarioEjecuta,

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Transactions;
@@ -208,6 +208,11 @@ namespace SIG.Web.AppCode.Services.Convenios
return "Seleccione el desarrollador del convenio.";
}
if (solicitud.CveTipoTramite <= 0)
{
return "Seleccione el tipo de trámite del convenio.";
}
if (solicitud.CveFraccionamientoEtapa <= 0)
{
return "Seleccione el fraccionamiento y etapa del convenio.";

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using SIG.Web.AppCode.Models.Bitacora;
using SIG.Web.AppCode.Models.Documentos;
@@ -16,16 +16,15 @@ namespace SIG.Web.AppCode.Services.Documentos
? BitacoraTipoMovimiento.Eliminado
: (anterior.EsParticular ? BitacoraTipoMovimiento.Editado : BitacoraTipoMovimiento.Agregado);
var evento = BaseEvent(
0, datos.CveSolicitud, datos.CveCliente, datos.CveFraccionamiento,
0, datos.CveTipoTramite, datos.CveCliente, datos.CveFraccionamiento,
datos.CveFraccionamientoEtapa, movimiento,
actual == null
? "Se retiró la configuración particular del documento; vuelve a aplicar la configuración general."
: "Se configuró el documento para esta solicitud.");
: "Se configuró el documento para esta etapa.");
evento.NombreTablaSQL = "Tra_SolicitudDocumentoConfiguracion";
evento.LlaveRegistro = null;
evento.LlaveRegistroTexto = datos.CveFraccionamientoEtapa.ToString(System.Globalization.CultureInfo.InvariantCulture) + "|" +
datos.CveSolicitud.ToString(System.Globalization.CultureInfo.InvariantCulture) +
"|" + datos.CveTipoDocumento.ToString(System.Globalization.CultureInfo.InvariantCulture);
datos.CveTipoDocumento.ToString(System.Globalization.CultureInfo.InvariantCulture);
evento.Relaciones.RemoveAt(0);
evento.Relaciones.Add(Relation(
BitacoraTipoRelacion.Directa, evento.NombreTablaSQL, "CveFraccionamientoEtapa",
@@ -36,7 +35,6 @@ namespace SIG.Web.AppCode.Services.Documentos
evento.Campos = new List<BitacoraCampoEventoModel>
{
Field("CveFraccionamientoEtapa", anterior.CveFraccionamientoEtapa, actual == null ? null : (object)actual.CveFraccionamientoEtapa),
Field("CveSolicitud", anterior.CveSolicitud, actual == null ? null : (object)actual.CveSolicitud),
Field("CveTipoDocumento", anterior.CveTipoDocumento, actual == null ? null : (object)actual.CveTipoDocumento),
Field("EsRequerido", anterior.EsRequerido, actual == null ? null : (object)actual.EsRequerido),
Field("EsCliente", anterior.EsCliente, actual == null ? null : (object)actual.EsCliente),
@@ -57,7 +55,7 @@ namespace SIG.Web.AppCode.Services.Documentos
var auditEvent = BaseEvent(
change.CveDocumentoSolicitud,
change.CveSolicitud,
change.CveTipoTramite,
change.CveCliente,
change.CveFraccionamiento,
change.CveFraccionamientoEtapa,
@@ -67,8 +65,6 @@ namespace SIG.Web.AppCode.Services.Documentos
auditEvent.DiscriminarCamposSinCambios = false;
auditEvent.Campos = new List<BitacoraCampoEventoModel>
{
Field("CveSolicitud", change.EsNuevo || change.CveSolicitud == 0 ? null : (object)change.CveSolicitud,
change.CveSolicitud == 0 ? null : (object)change.CveSolicitud),
Field("CveTipoDocumento", change.EsNuevo ? null : (object)change.CveTipoDocumento, change.CveTipoDocumento),
Field("NombreArchivo", change.NombreArchivoAnterior, change.NombreArchivo),
Field("NombreArchivoFisico", change.NombreArchivoFisicoAnterior, change.NombreArchivoFisico),
@@ -96,7 +92,7 @@ namespace SIG.Web.AppCode.Services.Documentos
var auditEvent = BaseEvent(
change.CveDocumentoSolicitud,
change.CveSolicitud,
change.CveTipoTramite,
change.CveCliente,
change.CveFraccionamiento,
change.CveFraccionamientoEtapa,
@@ -121,7 +117,7 @@ namespace SIG.Web.AppCode.Services.Documentos
{
ModeloRegistroBitacora evento = BaseEvent(
cambio.CveDocumentoSolicitud,
cambio.CveSolicitud,
cambio.CveTipoTramite,
cambio.CveCliente,
cambio.CveFraccionamiento,
cambio.CveFraccionamientoEtapa,
@@ -145,7 +141,7 @@ namespace SIG.Web.AppCode.Services.Documentos
{
ModeloRegistroBitacora evento = BaseEvent(
cambio.CveDocumentoSolicitud,
cambio.CveSolicitud,
cambio.CveTipoTramite,
cambio.CveCliente,
cambio.CveFraccionamiento,
cambio.CveFraccionamientoEtapa,
@@ -169,7 +165,7 @@ namespace SIG.Web.AppCode.Services.Documentos
{
return BaseEvent(
change.CveDocumentoSolicitud,
change.CveSolicitud,
change.CveTipoTramite,
change.CveCliente,
change.CveFraccionamiento,
change.CveFraccionamientoEtapa,
@@ -203,7 +199,7 @@ namespace SIG.Web.AppCode.Services.Documentos
private static ModeloRegistroBitacora BaseEvent(
int documentRequestId,
int requestId,
int cveTipoTramite,
int clientId,
int developmentId,
int stageId,
@@ -225,38 +221,28 @@ namespace SIG.Web.AppCode.Services.Documentos
"Tra_DocumentosSolicitud",
"CveDocumentoSolicitud",
documentRequestId,
"Documento de la solicitud."));
if (requestId > 0)
{
auditEvent.Relaciones.Add(
Relation(
BitacoraTipoRelacion.Relacionada,
"Tra_Solicitudes",
"CveSolicitud",
requestId,
"Solicitud del documento."));
}
"Documento de la etapa."));
auditEvent.Relaciones.Add(
Relation(
BitacoraTipoRelacion.Relacionada,
"Clientes",
"CveCliente",
clientId,
"Cliente propietario de la solicitud."));
"Cliente propietario de la etapa."));
auditEvent.Relaciones.Add(
Relation(
BitacoraTipoRelacion.Relacionada,
"Fraccionamientos",
"CveFraccionamiento",
developmentId,
"Fraccionamiento de la solicitud."));
"Fraccionamiento de la etapa."));
auditEvent.Relaciones.Add(
Relation(
BitacoraTipoRelacion.Relacionada,
"FraccionamientosEtapas",
"CveFraccionamientoEtapa",
stageId,
"Etapa de la solicitud."));
"Etapa de la etapa."));
return auditEvent;
}

View File

@@ -1,8 +1,10 @@
using System;
using System.Globalization;
using System.IO;
using System.Text;
using System.Web.Hosting;
using SIG.Web.AppCode.Contracts.Documentos;
using SIG.Web.AppCode.Infrastructure;
using SIG.Web.AppCode.Models.Documentos;
namespace SIG.Web.AppCode.Services.Documentos
@@ -13,7 +15,8 @@ namespace SIG.Web.AppCode.Services.Documentos
public TramiteDocumentoPreparedFile Prepare(
TramiteDocumentoUploadContextModel context,
Stream source,
string previousRelativePath)
string previousRelativePath,
string nombreArchivoOriginal)
{
if (context == null)
{
@@ -37,19 +40,30 @@ namespace SIG.Web.AppCode.Services.Documentos
string physicalFileName = string.Format(
CultureInfo.InvariantCulture,
"doc-{0}-{1}-{2}.bin",
"doc-{0}-{1}-{2}-{3}",
context.CveFraccionamientoEtapa,
context.CveTipoDocumento,
Guid.NewGuid().ToString("N"));
Guid.NewGuid().ToString("N"),
ObtenerNombreOriginalSeguro(nombreArchivoOriginal));
string relativePath = Path.Combine(
relativeDirectory,
physicalFileName);
string finalPath = SafeResolve(relativePath);
string finalPath = Path.Combine(directory, physicalFileName);
string temporaryPath = Path.Combine(
directory,
"." + physicalFileName + "." +
Guid.NewGuid().ToString("N") + ".tmp");
// También se valida el temporal, cuyo nombre es más largo que el definitivo.
if (physicalFileName.Length > 255 || Path.GetFileName(temporaryPath).Length > 255 ||
finalPath.Length >= 260 || temporaryPath.Length >= 260)
{
throw new ControlledApplicationException(
"El nombre del archivo es demasiado largo. Acórtelo conservando su extensión.");
}
finalPath = SafeResolve(relativePath);
if (source.CanSeek)
{
source.Position = 0;
@@ -76,6 +90,53 @@ namespace SIG.Web.AppCode.Services.Documentos
};
}
internal static string ObtenerNombreOriginalSeguro(string nombreArchivoOriginal)
{
string rutaNombre = nombreArchivoOriginal ?? string.Empty;
// Algunas configuraciones de .NET Framework validan antes de extraer el nombre.
// Los separadores se conservan aquí para que GetFileName descarte la ruta completa.
foreach (char caracter in Path.GetInvalidFileNameChars())
{
if (caracter != Path.DirectorySeparatorChar && caracter != Path.AltDirectorySeparatorChar)
{
rutaNombre = rutaNombre.Replace(caracter, '_');
}
}
string nombre = Path.GetFileName(rutaNombre);
nombre = nombre.TrimEnd(' ', '.');
string extension = Path.GetExtension(nombre);
string baseNombre = Path.GetFileNameWithoutExtension(nombre);
while (baseNombre.Contains(".."))
{
baseNombre = baseNombre.Replace("..", "_");
}
baseNombre = baseNombre.TrimEnd(' ', '.');
if (string.IsNullOrWhiteSpace(baseNombre) || baseNombre == "." ||
string.IsNullOrWhiteSpace(extension))
{
throw new ControlledApplicationException(
"Indique un nombre de archivo con nombre y extensión válidos.");
}
nombre = baseNombre + extension;
// Las columnas de nombre físico y ruta usan varchar con Modern_Spanish_CS_AS.
// Evita guardar una ruta que SQL sustituiría por signos de interrogación.
try
{
Encoding.GetEncoding(1252, EncoderFallback.ExceptionFallback,
DecoderFallback.ExceptionFallback).GetBytes(nombre);
}
catch (EncoderFallbackException)
{
throw new ControlledApplicationException(
"El nombre contiene caracteres que no admite el almacenamiento actual. Renombre el archivo conservando su extensión.");
}
return nombre;
}
public void Promote(TramiteDocumentoPreparedFile preparedFile)
{
ValidatePrepared(preparedFile);

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -8,6 +8,7 @@ using SIG.Web.AppCode.Contracts.Documentos;
using SIG.Web.AppCode.Contracts.Tramites;
using SIG.Web.AppCode.Contracts.Security;
using SIG.Web.AppCode.Session;
using SIG.Web.AppCode.Infrastructure;
using SIG.Web.AppCode.Infrastructure.Transactions;
using SIG.Web.AppCode.Models.Bitacora;
using SIG.Web.AppCode.Models.Common;
@@ -20,7 +21,7 @@ namespace SIG.Web.AppCode.Services.Documentos
public sealed class TramiteDocumentoService
: ITramiteDocumentoService
{
private const int GisDocumentTypeId = 2;
private const int GisDocumentTypeId = 1016;
private readonly ITramiteDocumentoRepository _repository;
private readonly ITramiteSolicitudRepository _repositorioSolicitud;
@@ -65,7 +66,8 @@ namespace SIG.Web.AppCode.Services.Documentos
int cveSolicitud,
int cveUsuarioEjecuta,
string nombreDominio,
int? cveFraccionamientoEtapa = null)
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null)
{
UserSessionModel usuario = _contextoUsuario.GetCurrentUser();
if (usuario == null || usuario.CveUsuario != cveUsuarioEjecuta)
@@ -94,7 +96,7 @@ namespace SIG.Web.AppCode.Services.Documentos
}
return _repository.ListarConfiguracionSolicitud(
cveFraccionamiento, cveSolicitud, cveUsuarioEjecuta, nombreDominio, cveFraccionamientoEtapa);
cveFraccionamiento, cveSolicitud, cveUsuarioEjecuta, nombreDominio, cveFraccionamientoEtapa, cveTipoTramite);
}
public DbResult<bool> GuardarConfiguracionSolicitud(
@@ -114,7 +116,8 @@ namespace SIG.Web.AppCode.Services.Documentos
configuracion.CveSolicitud,
cveUsuarioEjecuta,
nombreDominio,
configuracion.CveFraccionamientoEtapa == 0 ? (int?)null : configuracion.CveFraccionamientoEtapa);
configuracion.CveFraccionamientoEtapa == 0 ? (int?)null : configuracion.CveFraccionamientoEtapa,
configuracion.CveTipoTramite);
if (!consulta.Success)
{
return CopyFailure<List<SolicitudDocumentoConfiguracionModel>, bool>(
@@ -128,6 +131,8 @@ namespace SIG.Web.AppCode.Services.Documentos
return Fail<bool>("El tipo de documento ya no está disponible.");
}
configuracion.CveTipoTramite = 0;
var resultado = _repository.GuardarConfiguracionSolicitud(
configuracion, cveUsuarioEjecuta, nombreDominio);
if (!resultado.Success)
@@ -170,12 +175,13 @@ namespace SIG.Web.AppCode.Services.Documentos
int cveTipoDocumento,
int cveUsuarioEjecuta,
string nombreDominio,
int? cveFraccionamientoEtapa = null)
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null)
{
using (var transaccion = new TransactionLogic(IsolationLevel.Serializable))
{
var consulta = ListarConfiguracionSolicitud(
cveFraccionamiento, cveSolicitud, cveUsuarioEjecuta, nombreDominio, cveFraccionamientoEtapa);
cveFraccionamiento, cveSolicitud, cveUsuarioEjecuta, nombreDominio, cveFraccionamientoEtapa, cveTipoTramite);
if (!consulta.Success)
{
return CopyFailure<List<SolicitudDocumentoConfiguracionModel>, bool>(
@@ -190,7 +196,7 @@ namespace SIG.Web.AppCode.Services.Documentos
}
var resultado = _repository.EliminarConfiguracionSolicitud(
cveFraccionamiento, cveSolicitud, cveTipoDocumento, cveUsuarioEjecuta, nombreDominio, cveFraccionamientoEtapa);
cveFraccionamiento, cveSolicitud, cveTipoDocumento, cveUsuarioEjecuta, nombreDominio, cveFraccionamientoEtapa, cveTipoTramite);
if (!resultado.Success)
{
return resultado;
@@ -291,7 +297,7 @@ namespace SIG.Web.AppCode.Services.Documentos
foreach (TramiteDocumentoSolicitudModel documento in documentos)
{
documento.PuedeActualizarArchivo =
!documento.EsGis && (esAdministrador || !documento.EsFinalSolicitud);
!documento.EsGis;
documento.PuedeRevisar = esAdministrador && documento.TieneArchivo;
}
@@ -313,11 +319,6 @@ namespace SIG.Web.AppCode.Services.Documentos
return "El documento corresponde al administrador.";
}
if (documento.EsFinalSolicitud && usuario.EsDesarrollador)
{
return "La solicitud ya está finalizada; no es posible modificar sus documentos.";
}
return null;
}
@@ -327,7 +328,8 @@ namespace SIG.Web.AppCode.Services.Documentos
int documentTypeId,
int executingUser,
string domainName,
int? cveFraccionamientoEtapa = null)
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null)
{
if (developmentId <= 0 || (requestId <= 0 && !cveFraccionamientoEtapa.HasValue) || documentTypeId <= 0)
{
@@ -348,7 +350,8 @@ namespace SIG.Web.AppCode.Services.Documentos
documentTypeId,
executingUser,
domainName,
cveFraccionamientoEtapa);
cveFraccionamientoEtapa,
cveTipoTramite);
if (!resultado.Success || resultado.Data == null)
{
return resultado;
@@ -373,7 +376,8 @@ namespace SIG.Web.AppCode.Services.Documentos
string domainName,
DateTime? fechaDocumento = null,
DateTime? fechaVencimiento = null,
int? cveFraccionamientoEtapa = null)
int? cveFraccionamientoEtapa = null,
int? cveTipoTramite = null)
{
if (content == null || contentLength <= 0)
{
@@ -388,7 +392,8 @@ namespace SIG.Web.AppCode.Services.Documentos
documentTypeId,
executingUser,
domainName,
cveFraccionamientoEtapa);
cveFraccionamientoEtapa,
cveTipoTramite);
if (!contextResult.Success || contextResult.Data == null)
{
@@ -433,7 +438,8 @@ namespace SIG.Web.AppCode.Services.Documentos
preparedFile = _fileStore.Prepare(
uploadContext,
content,
uploadContext.RutaArchivoAnterior);
uploadContext.RutaArchivoAnterior,
originalFileName);
DbResult<TramiteDocumentoSaveResultModel> saveResult;
@@ -441,7 +447,7 @@ namespace SIG.Web.AppCode.Services.Documentos
{
DbResult<TramiteDocumentoUploadContextModel> contextoActual =
GetUploadContext(
developmentId, requestId, documentTypeId, executingUser, domainName, cveFraccionamientoEtapa);
developmentId, requestId, documentTypeId, executingUser, domainName, cveFraccionamientoEtapa, cveTipoTramite);
if (!contextoActual.Success || contextoActual.Data == null)
{
_fileStore.Rollback(preparedFile);
@@ -463,7 +469,8 @@ namespace SIG.Web.AppCode.Services.Documentos
fechaDocumento,
fechaVencimiento,
true,
uploadContext.CveFraccionamientoEtapa);
uploadContext.CveFraccionamientoEtapa,
uploadContext.CveTipoTramite);
if (!saveResult.Success || saveResult.Data == null)
{
@@ -526,8 +533,9 @@ namespace SIG.Web.AppCode.Services.Documentos
"No fue posible restaurar el archivo después de un error.");
}
const string message =
"No fue posible guardar el documento; favor de contactar a Sistemas.";
string message = ex is ControlledApplicationException
? ex.Message
: "No fue posible guardar el documento; favor de contactar a Sistemas.";
ExceptionLogger.Log(
ex,
@@ -960,7 +968,7 @@ namespace SIG.Web.AppCode.Services.Documentos
DbResult<TramiteDocumentoUploadContextModel> contextResult =
_repository.GetStageUploadContext(
stageId,
procedureTypeId,
0,
documentTypeId,
executingUser,
domainName);
@@ -969,7 +977,7 @@ namespace SIG.Web.AppCode.Services.Documentos
{
return CopyFailure<TramiteDocumentoUploadContextModel, TramiteDocumentoSaveResultModel>(
contextResult,
"No fue posible obtener la solicitud asociada a la etapa.");
"No fue posible obtener el contexto de documentos de la etapa.");
}
string mensajeValidacion = ValidarCarga(contextResult.Data, executingUser);
@@ -981,6 +989,14 @@ namespace SIG.Web.AppCode.Services.Documentos
TramiteDocumentoUploadContextModel uploadContext =
contextResult.Data;
if (documentTypeId == GisDocumentTypeId &&
uploadContext.CveDocumentoSolicitud > 0 &&
uploadContext.EsAprobadoAnterior == true)
{
return Fail<TramiteDocumentoSaveResultModel>(
"El archivo GIS de la etapa ya fue aprobado y no puede reemplazarse.");
}
using (var transaction = new TransactionLogic())
{
DbResult<TramiteDocumentoSaveResultModel> result =
@@ -996,7 +1012,8 @@ namespace SIG.Web.AppCode.Services.Documentos
null,
executingUser,
domainName,
cveFraccionamientoEtapa: stageId);
cveFraccionamientoEtapa: stageId,
cveTipoTramite: null);
if (!result.Success || result.Data == null)
{
@@ -1049,7 +1066,7 @@ namespace SIG.Web.AppCode.Services.Documentos
DbResult<TramiteDocumentoUploadContextModel> contextResult =
_repository.GetStageUploadContext(
stageId,
procedureTypeId,
0,
documentTypeId,
executingUser,
domainName);
@@ -1058,7 +1075,7 @@ namespace SIG.Web.AppCode.Services.Documentos
{
return CopyFailure<TramiteDocumentoUploadContextModel, bool>(
contextResult,
"No fue posible obtener la solicitud asociada a la etapa.");
"No fue posible obtener el contexto de documentos de la etapa.");
}
string mensajeValidacion = ValidarCarga(contextResult.Data, executingUser);
@@ -1067,6 +1084,14 @@ namespace SIG.Web.AppCode.Services.Documentos
return Fail<bool>(mensajeValidacion);
}
if (documentTypeId == GisDocumentTypeId &&
contextResult.Data.CveDocumentoSolicitud > 0 &&
contextResult.Data.EsAprobadoAnterior == true)
{
return Fail<bool>(
"El archivo GIS de la etapa ya fue aprobado y no puede eliminarse.");
}
if (contextResult.Data.CveDocumentoSolicitud <= 0)
{
return DbResult<bool>.Ok(true);

View File

@@ -96,6 +96,69 @@ namespace SIG.Web.AppCode.Services.Fraccionamientos
}
}
public Stream GuardarOriginalZip(
ContextoGisFraccionamiento contexto,
Stream origen,
long longitud)
{
const long limite = 30L * 1024 * 1024;
if (origen == null)
{
throw new ArgumentNullException("origen");
}
if (longitud <= 0 || longitud > limite)
{
throw new InvalidDataException("El ZIP debe contener datos y no exceder 30 MB.");
}
string directorio = Path.Combine(
Path.GetDirectoryName(ObtenerRutaFisica(contexto)),
"Etapas",
contexto.CveFraccionamientoEtapa.ToString(System.Globalization.CultureInfo.InvariantCulture),
"OriginalesGIS");
Directory.CreateDirectory(directorio);
string ruta = Path.Combine(directorio, "original-" + Guid.NewGuid().ToString("N") + ".zip");
string temporal = ruta + ".tmp";
try
{
if (origen.CanSeek)
{
origen.Position = 0;
}
using (var destino = new FileStream(temporal, FileMode.CreateNew, FileAccess.Write, FileShare.None))
{
byte[] buffer = new byte[81920];
long total = 0;
int leidos;
while ((leidos = origen.Read(buffer, 0, buffer.Length)) > 0)
{
total += leidos;
if (total > longitud || total > limite)
{
throw new InvalidDataException("El tamaño recibido del ZIP no coincide con el indicado.");
}
destino.Write(buffer, 0, leidos);
}
if (total != longitud)
{
throw new InvalidDataException("La carga del ZIP está incompleta.");
}
destino.Flush(true);
}
File.Move(temporal, ruta);
// El original permanece incluso si la conversión o el registro posterior fallan.
return new FileStream(ruta, FileMode.Open, FileAccess.Read, FileShare.Read);
}
finally
{
if (File.Exists(temporal))
{
File.Delete(temporal);
}
}
}
public Stream AbrirLectura(ContextoGisFraccionamiento contexto)
{
return new FileStream(

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,9 @@
using System;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using Newtonsoft.Json.Linq;
using SIG.Web.AppCode.Contracts.Bitacora;
using SIG.Web.AppCode.Contracts.Documentos;
using SIG.Web.AppCode.Contracts.Fraccionamientos;
@@ -16,6 +18,8 @@ namespace SIG.Web.AppCode.Services.Fraccionamientos
public sealed class ServicioGisFraccionamiento : IServicioGisFraccionamiento
{
private const string ExtensionGis = ".gis";
private const string ExtensionGeoJson = ".geojson";
private const string ExtensionZip = ".zip";
private const string TipoContenidoGis = "application/json";
private const long TamanoMaximoArchivo = 30L * 1024L * 1024L;
@@ -56,6 +60,317 @@ namespace SIG.Web.AppCode.Services.Fraccionamientos
_servicioDocumentoTramite = tramiteDocumentoServicio;
}
public DbResult<ResultadoGuardadoGisFraccionamiento> VincularLote(
int cveFraccionamientoEtapa,
int cveFraccionamientoLote,
string clavePoligono,
int cveUsuarioEjecuta,
string nombreDominio)
{
if (cveFraccionamientoLote <= 0 || string.IsNullOrWhiteSpace(clavePoligono) ||
clavePoligono.Length > 100)
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>("Seleccione un lote y un polígono válidos.");
}
DbResult<ArchivoGisFraccionamiento> archivo = AbrirArchivo(
cveFraccionamientoEtapa, cveUsuarioEjecuta, nombreDominio);
if (!archivo.Success)
{
return CopiarFallo<ArchivoGisFraccionamiento, ResultadoGuardadoGisFraccionamiento>(
archivo, "No fue posible consultar el GIS de la etapa.");
}
try
{
JObject geometria;
using (StreamReader lector = new StreamReader(archivo.Data.Contenido))
{
geometria = JObject.Parse(lector.ReadToEnd());
}
List<JToken> coincidencias = (geometria["features"] ?? new JArray())
.Where(figura => figura is JObject && figura["id"] != null &&
"id:" + (((string)figura["id"]) ?? string.Empty).Trim() == clavePoligono)
.ToList();
if (coincidencias.Count != 1)
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>(
"El polígono no tiene una clave única en el GIS actual. Actualice el visor.");
}
JToken seleccion = coincidencias[0];
string tipo = (string)seleccion.SelectToken("geometry.type");
if (tipo != "Polygon" && tipo != "MultiPolygon")
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>("Sólo puede vincular polígonos con lotes.");
}
DbResult<List<CapaGisFraccionamiento>> capas = ListarCapas(
cveFraccionamientoEtapa, cveUsuarioEjecuta, nombreDominio);
if (!capas.Success)
{
return CopiarFallo<List<CapaGisFraccionamiento>, ResultadoGuardadoGisFraccionamiento>(
capas, "No fue posible consultar el tipo de capa.");
}
JToken propiedades = seleccion["properties"];
string nombreCapa = (string)(propiedades == null ? null :
propiedades["_sigCapa"] ?? propiedades["Capa"] ?? propiedades["capa"]);
nombreCapa = string.IsNullOrWhiteSpace(nombreCapa) ? "GIS" : nombreCapa.Trim();
if (!capas.Data.Any(capa => capa.NombreCapa == nombreCapa && capa.TipoCapa == "Lotificacion"))
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>(
"Configure la capa como Lotificación antes de vincular sus polígonos.");
}
// La lectura y combinación se protegen juntas para no sobrescribir otros vínculos.
using (var transaccion = new TransactionLogic(System.Transactions.IsolationLevel.Serializable))
{
DbResult<VistaGisFraccionamiento> contexto = Obtener(
cveFraccionamientoEtapa, cveUsuarioEjecuta, nombreDominio);
if (!contexto.Success)
{
return CopiarFallo<VistaGisFraccionamiento, ResultadoGuardadoGisFraccionamiento>(
contexto, "No fue posible consultar los lotes de la etapa.");
}
List<VinculoLoteGisFraccionamiento> lotes = contexto.Data.Lotes;
VinculoLoteGisFraccionamiento lote = lotes.FirstOrDefault(
elemento => elemento.CveFraccionamientoLote == cveFraccionamientoLote && elemento.EsActivo);
if (lote == null)
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>(
"Seleccione un lote activo de esta etapa.");
}
if ((!string.IsNullOrWhiteSpace(lote.GISPoligonoClave) && lote.GISPoligonoClave != clavePoligono) ||
lotes.Any(elemento => elemento.GISPoligonoClave == clavePoligono &&
elemento.CveFraccionamientoLote != cveFraccionamientoLote))
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>(
"El lote o el polígono ya está vinculado. Actualice la selección.");
}
lote.GISPoligonoClave = clavePoligono;
List<VinculoLoteGisFraccionamiento> vinculos = lotes
.Where(elemento => !string.IsNullOrWhiteSpace(elemento.GISPoligonoClave)).ToList();
DbResult<ResultadoGuardadoGisFraccionamiento> resultado = Guardar(
cveFraccionamientoEtapa, null, null, 0, vinculos, cveUsuarioEjecuta, nombreDominio);
if (resultado.Success)
{
transaccion.Commit();
}
return resultado;
}
}
catch (Exception ex)
{
const string mensaje = "No fue posible vincular el lote. Actualice el visor e inténtelo nuevamente.";
ExceptionLogger.Log(ex, "ServicioGisFraccionamiento.VincularLote", mensaje);
return DbResult<ResultadoGuardadoGisFraccionamiento>.Fail(mensaje, ex.Message, ex);
}
}
public DbResult<ResultadoGuardadoGisFraccionamiento> DesvincularLote(
int cveFraccionamientoEtapa,
int cveFraccionamientoLote,
string clavePoligono,
int cveUsuarioEjecuta,
string nombreDominio)
{
if (cveFraccionamientoLote <= 0 || string.IsNullOrWhiteSpace(clavePoligono) ||
clavePoligono.Length > 100)
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>("Seleccione un vínculo válido.");
}
try
{
using (var transaccion = new TransactionLogic(System.Transactions.IsolationLevel.Serializable))
{
var contexto = Obtener(cveFraccionamientoEtapa, cveUsuarioEjecuta, nombreDominio);
if (!contexto.Success)
{
return CopiarFallo<VistaGisFraccionamiento, ResultadoGuardadoGisFraccionamiento>(
contexto, "No fue posible consultar los lotes de la etapa.");
}
var lote = contexto.Data.Lotes.FirstOrDefault(elemento =>
elemento.CveFraccionamientoLote == cveFraccionamientoLote && elemento.EsActivo);
if (lote == null || lote.GISPoligonoClave != clavePoligono)
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>(
"El vínculo cambió. Actualice el visor antes de desvincular.");
}
var restantes = contexto.Data.Lotes.Where(elemento =>
elemento.CveFraccionamientoLote != cveFraccionamientoLote &&
!string.IsNullOrWhiteSpace(elemento.GISPoligonoClave)).ToList();
var resultado = Guardar(cveFraccionamientoEtapa, null, null, 0,
restantes, cveUsuarioEjecuta, nombreDominio);
if (resultado.Success)
{
transaccion.Commit();
}
return resultado;
}
}
catch (Exception excepcion)
{
const string mensaje = "No fue posible desvincular el lote. Actualice el visor e inténtelo nuevamente.";
ExceptionLogger.Log(excepcion, "ServicioGisFraccionamiento.DesvincularLote", mensaje);
return DbResult<ResultadoGuardadoGisFraccionamiento>.Fail(mensaje, excepcion.Message, excepcion);
}
}
public DbResult<List<CapaGisFraccionamiento>> ListarCapas(
int cveFraccionamientoEtapa,
int cveUsuarioEjecuta,
string nombreDominio)
{
DbResult<List<CapaGisFraccionamiento>> inventario = LeerCapasArchivo(
cveFraccionamientoEtapa, cveUsuarioEjecuta, nombreDominio);
if (!inventario.Success)
{
return inventario;
}
DbResult<List<CapaGisFraccionamiento>> configuracion = _repositorio.ListarCapas(
cveFraccionamientoEtapa, cveUsuarioEjecuta, nombreDominio);
if (!configuracion.Success)
{
return configuracion;
}
foreach (CapaGisFraccionamiento capa in inventario.Data)
{
CapaGisFraccionamiento guardada = configuracion.Data.FirstOrDefault(
elemento => string.Equals(elemento.NombreCapa, capa.NombreCapa, StringComparison.Ordinal));
if (guardada != null)
{
capa.TipoCapa = guardada.TipoCapa;
capa.Color = guardada.Color;
capa.EsVisible = guardada.EsVisible;
}
}
return inventario;
}
public DbResult<bool> GuardarCapa(
int cveFraccionamientoEtapa,
CapaGisFraccionamiento capa,
int cveUsuarioEjecuta,
string nombreDominio)
{
string[] tipos = { "Agua", "Drenaje", "Lotificacion", "Pozos", "Otros" };
if (capa == null || string.IsNullOrWhiteSpace(capa.NombreCapa) ||
capa.NombreCapa.Length > 250 || !tipos.Contains(capa.TipoCapa) ||
!Regex.IsMatch(capa.Color ?? string.Empty, @"\A#[0-9a-fA-F]{6}\z"))
{
return CrearFallo<bool>("Indique una capa, tipo y color válidos.");
}
DbResult<List<CapaGisFraccionamiento>> inventario = LeerCapasArchivo(
cveFraccionamientoEtapa, cveUsuarioEjecuta, nombreDominio);
if (!inventario.Success)
{
return CopiarFallo<List<CapaGisFraccionamiento>, bool>(
inventario, "No fue posible consultar las capas de la etapa.");
}
if (!inventario.Data.Any(elemento =>
string.Equals(elemento.NombreCapa, capa.NombreCapa, StringComparison.Ordinal)))
{
return CrearFallo<bool>("La capa ya no existe en el GIS de esta etapa. Actualice el visor.");
}
using (TransactionLogic transaccion = new TransactionLogic())
{
DbResult<bool> resultado = _repositorio.GuardarCapa(
cveFraccionamientoEtapa, capa, cveUsuarioEjecuta, nombreDominio);
if (resultado.Success)
{
transaccion.Commit();
}
return resultado;
}
}
private DbResult<List<CapaGisFraccionamiento>> LeerCapasArchivo(
int cveFraccionamientoEtapa,
int cveUsuarioEjecuta,
string nombreDominio)
{
DbResult<ArchivoGisFraccionamiento> archivo = AbrirArchivo(
cveFraccionamientoEtapa, cveUsuarioEjecuta, nombreDominio);
if (!archivo.Success || archivo.Data == null)
{
return CopiarFallo<ArchivoGisFraccionamiento, List<CapaGisFraccionamiento>>(
archivo, "No fue posible leer las capas del GIS.");
}
try
{
JObject contenido;
using (StreamReader lector = new StreamReader(archivo.Data.Contenido))
{
contenido = JObject.Parse(lector.ReadToEnd());
}
string[] colores =
{
"#1976D2", "#D84315", "#388E3C", "#8E24AA", "#00838F",
"#C2185B", "#827717", "#5D4037", "#455A64", "#F9A825"
};
List<CapaGisFraccionamiento> capas = new List<CapaGisFraccionamiento>();
foreach (JToken figura in contenido["features"] ?? new JArray())
{
JToken propiedades = figura["properties"];
string nombre = (string)(propiedades == null ? null :
propiedades["_sigCapa"] ?? propiedades["Capa"] ?? propiedades["capa"]);
nombre = string.IsNullOrWhiteSpace(nombre) ? "GIS" : nombre.Trim();
string geometria = (string)figura.SelectToken("geometry.type") ?? string.Empty;
CapaGisFraccionamiento capa = capas.FirstOrDefault(
elemento => string.Equals(elemento.NombreCapa, nombre, StringComparison.Ordinal));
if (capa == null)
{
string nombreNormalizado = nombre.ToLowerInvariant();
capa = new CapaGisFraccionamiento
{
NombreCapa = nombre,
TipoCapa = nombreNormalizado.Contains("lotific") ? "Lotificacion" :
nombreNormalizado.Contains("pozo") ? "Pozos" :
nombreNormalizado.Contains("drenaje") ? "Drenaje" :
nombreNormalizado.Contains("agua") ? "Agua" : "Otros",
Color = colores[capas.Count % colores.Length],
EsVisible = true,
Geometria = geometria
};
capas.Add(capa);
}
else if (capa.Geometria != geometria)
{
capa.Geometria = "Mixta";
}
capa.Elementos++;
}
return DbResult<List<CapaGisFraccionamiento>>.Ok(capas);
}
catch (Exception ex)
{
const string mensaje = "No fue posible identificar las capas del archivo GIS.";
ExceptionLogger.Log(ex, "ServicioGisFraccionamiento.LeerCapasArchivo", mensaje);
return DbResult<List<CapaGisFraccionamiento>>.Fail(mensaje, ex.Message, ex);
}
}
public DbResult<VistaGisFraccionamiento> Obtener(
int cveFraccionamientoEtapa,
int cveUsuarioEjecuta,
@@ -160,25 +475,7 @@ namespace SIG.Web.AppCode.Services.Fraccionamientos
if (!tieneArchivoCargado && !guardarVinculos)
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>(
"Seleccione un archivo .gis antes de guardar.");
}
if (tieneArchivoCargado)
{
if (!string.Equals(
Path.GetExtension(nombreArchivoOriginal),
ExtensionGis,
StringComparison.OrdinalIgnoreCase))
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>(
"El archivo seleccionado debe tener extensión .gis.");
}
if (longitudContenido > TamanoMaximoArchivo)
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>(
"El archivo GIS no puede exceder 30 MB.");
}
"Seleccione un archivo GIS antes de guardar.");
}
DbResult<ContextoGisFraccionamiento> resultadoContexto =
@@ -196,6 +493,75 @@ namespace SIG.Web.AppCode.Services.Fraccionamientos
ContextoGisFraccionamiento contextoGis = resultadoContexto.Data;
ProcesadorArchivoGisFraccionamiento.Resultado archivoProcesado = null;
if (tieneArchivoCargado)
{
string extension = Path.GetExtension(nombreArchivoOriginal) ?? string.Empty;
bool extensionValida =
string.Equals(extension, ExtensionGis, StringComparison.OrdinalIgnoreCase) ||
string.Equals(extension, ExtensionGeoJson, StringComparison.OrdinalIgnoreCase) ||
string.Equals(extension, ExtensionZip, StringComparison.OrdinalIgnoreCase);
if (!extensionValida)
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>(
"El archivo seleccionado debe tener extensión .gis, .geojson o .zip.");
}
if (longitudContenido > TamanoMaximoArchivo)
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>(
"El archivo GIS no puede exceder 30 MB.");
}
Stream originalConservado = null;
bool zipConservado = false;
try
{
if (string.Equals(extension, ExtensionZip, StringComparison.OrdinalIgnoreCase))
{
originalConservado = _almacenArchivos.GuardarOriginalZip(
contextoGis,
contenido,
longitudContenido);
zipConservado = true;
}
archivoProcesado = ProcesadorArchivoGisFraccionamiento.Procesar(
nombreArchivoOriginal,
originalConservado ?? contenido,
longitudContenido);
}
catch (InvalidDataException ex)
{
return DbResult<ResultadoGuardadoGisFraccionamiento>.Fail(
ex.Message + (zipConservado
? " El ZIP original quedó conservado; el mapa anterior no se modificó."
: string.Empty),
ex.Message,
ex);
}
catch (Exception ex)
{
if (zipConservado)
{
const string mensaje = "No fue posible convertir el ZIP. El original quedó conservado y el mapa anterior no se modificó; contacte a Sistemas.";
ExceptionLogger.Log(ex, "ServicioGisFraccionamiento.Guardar.Procesar", mensaje);
return DbResult<ResultadoGuardadoGisFraccionamiento>.Fail(mensaje, ex.Message, ex);
}
return CrearFalloArchivo<ResultadoGuardadoGisFraccionamiento>(
ex,
"ServicioGisFraccionamiento.Guardar.Procesar");
}
finally
{
if (originalConservado != null)
{
originalConservado.Dispose();
}
}
}
DbResult<List<VinculoLoteGisFraccionamiento>> resultadoVinculosAnteriores =
_repositorio.ListarVinculos(
cveFraccionamientoEtapa,
@@ -229,7 +595,7 @@ namespace SIG.Web.AppCode.Services.Fraccionamientos
if (!tieneArchivoCargado && !teniaArchivo)
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>(
"Seleccione un archivo .gis antes de guardar.");
"Seleccione un archivo GIS antes de guardar.");
}
byte[] anteriorArchivo = null;
@@ -262,7 +628,10 @@ namespace SIG.Web.AppCode.Services.Fraccionamientos
try
{
using (var transaccion = new TransactionLogic())
using (var transaccion = new TransactionLogic(
System.Transactions.Transaction.Current == null
? System.Transactions.IsolationLevel.ReadCommitted
: System.Transactions.Transaction.Current.IsolationLevel))
{
ModeloOperacionBitacora operacionBitacora = ModeloOperacionBitacora.Crear(
"GuardarGisEtapa",
@@ -297,7 +666,20 @@ namespace SIG.Web.AppCode.Services.Fraccionamientos
if (tieneArchivoCargado)
{
_almacenArchivos.Guardar(contextoGis, contenido);
if (archivoProcesado == null ||
archivoProcesado.ContenidoGis == null ||
archivoProcesado.ContenidoGis.Length == 0)
{
return CrearFallo<ResultadoGuardadoGisFraccionamiento>(
"No fue posible preparar el archivo GIS para guardarlo.");
}
using (var contenidoNormalizado = new MemoryStream(
archivoProcesado.ContenidoGis,
false))
{
_almacenArchivos.Guardar(contextoGis, contenidoNormalizado);
}
archivoFueEscrito = true;
string nombreArchivoFisico = Path.GetFileName(
@@ -311,13 +693,13 @@ namespace SIG.Web.AppCode.Services.Fraccionamientos
DbResult<SIG.Web.AppCode.Models.Documentos.TramiteDocumentoSaveResultModel> resultadoDocumento =
_servicioDocumentoTramite.RegisterExternalStageFile(
cveFraccionamientoEtapa,
1,
2,
nombreArchivoOriginal,
0,
1016,
archivoProcesado.NombreArchivoGis,
nombreArchivoFisico,
rutaRelativa,
TipoContenidoGis,
longitudContenido,
archivoProcesado.TipoContenido ?? TipoContenidoGis,
archivoProcesado.ContenidoGis.LongLength,
cveUsuarioEjecuta,
nombreDominio,
operacionBitacora);
@@ -503,8 +885,8 @@ namespace SIG.Web.AppCode.Services.Fraccionamientos
DbResult<bool> resultadoEliminacionDocumento =
_servicioDocumentoTramite.RemoveExternalStageFile(
cveFraccionamientoEtapa,
1,
2,
0,
1016,
cveUsuarioEjecuta,
nombreDominio,
operacionBitacora);

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Transactions;
using System.Linq;
@@ -644,9 +644,8 @@ namespace SIG.Web.AppCode.Services.Tramites
: null,
Estatus = estatus,
Condiciones = condiciones,
Documentos = resultadoDocumentos.Data
.Where(documento => documento.CveSolicitud == cveSolicitud)
.ToList(),
Documentos = resultadoDocumentos.Data ??
new List<TramiteDocumentoSolicitudModel>(),
Pagos = resultadoPagos.Data ?? new List<ModeloPagoSolicitud>()
});
}
@@ -760,10 +759,16 @@ namespace SIG.Web.AppCode.Services.Tramites
}
}
if (contexto.Documentos.Any(documento => documento.EstaPendiente))
bool requiereDocumentosAprobados =
(destino.EsCliente && destino.EsOK) ||
string.Equals(destino.Codigo, "Autorizado", StringComparison.OrdinalIgnoreCase);
if (requiereDocumentosAprobados &&
contexto.Documentos.Any(documento => documento.ImpideAvanzar))
{
return RequisitosPendientes(
"Documentos", "Existen documentos requeridos pendientes de cargar.");
"Documentos",
"Existen documentos requeridos pendientes de cargar, aprobar o renovar para este trámite.");
}
if (validarPagosRequeridos &&

File diff suppressed because one or more lines are too long

View File

@@ -2,6 +2,7 @@ using System;
using System.Globalization;
using System.Web.UI.WebControls;
using SIG.Web.AppCode.Configuration;
using SIG.Web.AppCode.Infrastructure.WebForms;
using SIG.Web.AppCode.Security;
namespace SIG.Web.Pages.Clientes

View File

@@ -1842,14 +1842,16 @@
class="ADSdropzoneLocal"
data-maxFile="1"
data-maxfilesize="30"
data-acceptedfiles=".gis"
data-message="Arrastra aquí un archivo .gis o haz clic para seleccionarlo." />
data-acceptedfiles=".gis,.geojson,.zip"
data-message="Arrastra aquí un GIS (.gis/.geojson) o un ZIP Shapefile y haz clic para seleccionarlo." />
<span class="help-block">
Guarde el archivo sin necesidad de vincular lotes.
Puede guardar los vínculos por separado y continuar con los pendientes después.
</span>
</div>
<div id="GisCapas" class="sig-gis-layers"></div>
<div id="EstatusVinculosGis"
class="sig-gis-link-status"></div>
@@ -2180,7 +2182,7 @@
<asp:Content ID="ContenidoScripts" ContentPlaceHolderID="J" runat="server">
<script src='<%= ResolveUrl("~/Scripts/CatalogosTramites.js") %>'
type="text/javascript"></script>
<script src='<%= ResolveUrl("~/Scripts/fraccionamiento-gis.js?v=20260918-1") %>'
<script src='<%= ResolveUrl("~/Scripts/fraccionamiento-gis.js?v=20261002-1") %>'
type="text/javascript"></script>
<script>
window.OpcionesGisFraccionamiento = {
@@ -2190,11 +2192,14 @@
idMapa: 'MapaGis',
idTablaVinculos: 'GisVinculos',
idEstatus: 'EstatusVinculosGis',
idCapas: 'GisCapas',
idBotonGuardar: 'BtnGuardarEtapaGis',
idBotonGuardarVinculos: 'BtnGuardarVinculosEtapaGis',
idBotonEliminar: 'BtnEliminarEtapaGis',
idBotonActualizar: 'BtnActualizarEtapaGis',
urlManejador: '<%= ResolveUrl("~/Pages/Fraccionamientos/FraccionamientoGis.ashx") %>'
urlManejador: '<%= ResolveUrl("~/Pages/Fraccionamientos/FraccionamientoGis.ashx") %>',
googleMapsEnabled: <%= string.Equals(System.Configuration.ConfigurationManager.AppSettings["GoogleMapsEnabled"], "true", System.StringComparison.OrdinalIgnoreCase) ? "true" : "false" %>,
googleMapsApiKey: '<%= System.Web.HttpUtility.JavaScriptStringEncode(System.Configuration.ConfigurationManager.AppSettings["GoogleMapsApiKey"] ?? string.Empty) %>'
};
window.SIGDetalle = window.SIGDetalle || {};

View File

@@ -1,11 +0,0 @@
--- ANTES/App_Code/Contracts/Convenios/IRepositorioConvenios.cs
+++ DESPUES/App_Code/Contracts/Convenios/IRepositorioConvenios.cs
@@ -10,6 +10,8 @@
DbResult<ConvenioDetalleCompleto> Obtener(int cveConvenio, int usuario, string dominio);
DbResult<List<ConvenioConceptoCatalogo>> ListarConceptos(int usuario, string dominio);
DbResult<int> Agregar(SolicitudAltaConvenio solicitud, int usuario, string dominio);
+ DbResult<ConvenioLotesConvenio> ObtenerLotesConvenio(int cveConvenio, int usuario, string dominio);
+ DbResult<bool> GuardarLotesConvenio(int cveConvenio, int lotesConvenio, int usuario, string dominio);
DbResult<bool> Eliminar(int cveConvenio, int usuario, string dominio);
}
}

View File

@@ -1,27 +0,0 @@
--- ANTES/App_Code/Models/Convenios/ModelosConvenios.cs
+++ DESPUES/App_Code/Models/Convenios/ModelosConvenios.cs
@@ -49,6 +49,7 @@
public int ViviendasEnConvenio { get; set; }
public int? ViviendasPendientes { get; set; }
public int? ViviendasContratadas { get; set; }
+ public int LotesConvenio { get; set; }
public string Observaciones { get; set; }
public decimal ImporteConvenio { get; set; }
public decimal ImportePagado { get; set; }
@@ -102,9 +103,16 @@
public int ViviendasEnConvenio { get; set; }
public int? ViviendasPendientes { get; set; }
public int? ViviendasContratadas { get; set; }
+ public int LotesConvenio { get; set; }
public DateTime FechaConvenio { get; set; }
public string Observaciones { get; set; }
public List<ConvenioConceptoCaptura> Conceptos { get; set; }
+ }
+
+ public sealed class ConvenioLotesConvenio
+ {
+ public int CveConvenio { get; set; }
+ public int LotesConvenio { get; set; }
}
[Serializable]

View File

@@ -1,10 +0,0 @@
--- ANTES/App_Code/Models/Fraccionamientos/ModelosFraccionamiento.cs
+++ DESPUES/App_Code/Models/Fraccionamientos/ModelosFraccionamiento.cs
@@ -14,6 +14,7 @@
public bool EsFraccionamiento { get; set; }
public string Etapa { get; set; }
public decimal? Hectareas { get; set; }
+ public decimal Avance { get; set; }
public bool Fideicomiso { get; set; }
public bool EsActivo { get; set; }
}

View File

@@ -1,31 +0,0 @@
--- ANTES/App_Code/Models/Tramites/TramiteSolicitudModels.cs
+++ DESPUES/App_Code/Models/Tramites/TramiteSolicitudModels.cs
@@ -49,6 +49,28 @@
public DateTime? FechaAutorizacion { get; set; }
public bool PuedeCambiarEstatus { get; set; }
public bool EsAutorizada { get; set; }
+ public int DocumentosPendientes { get; set; }
+ public int PagosPendientes { get; set; }
+
+ public string TextoDocumentos
+ {
+ get
+ {
+ return DocumentosPendientes == 0
+ ? "Completo"
+ : DocumentosPendientes + " pendiente(s)";
+ }
+ }
+
+ public string TextoPagos
+ {
+ get
+ {
+ return PagosPendientes == 0
+ ? "Sin pendientes"
+ : PagosPendientes + " pendiente(s)";
+ }
+ }
}
[Serializable]

View File

@@ -1,59 +0,0 @@
--- ANTES/App_Code/Repositories/Convenios/RepositorioConvenios.cs
+++ DESPUES/App_Code/Repositories/Convenios/RepositorioConvenios.cs
@@ -19,6 +19,8 @@
private const string ProcedimientoObtener = "dbo.PA_Tra_ConvenioGet";
private const string ProcedimientoListarConceptos = "dbo.PA_Tra_ConvenioConceptoList";
private const string ProcedimientoAgregar = "dbo.PA_Tra_ConvenioAdd";
+ private const string ProcedimientoObtenerLotes = "dbo.PA_Tra_ConvenioLotesGet";
+ private const string ProcedimientoGuardarLotes = "dbo.PA_Tra_ConvenioLotesUpdate";
private const string ProcedimientoEliminar = "dbo.PA_Tra_ConvenioDelete";
public RepositorioConvenios(IDbExecutor ejecutor)
@@ -193,6 +195,47 @@
"@ConceptosXml",
conceptosXml,
DbType.Xml);
+ });
+ }
+
+ public DbResult<ConvenioLotesConvenio> ObtenerLotesConvenio(
+ int cveConvenio,
+ int usuario,
+ string dominio)
+ {
+ return QueryOne<ConvenioLotesConvenio>(
+ ProcedimientoObtenerLotes,
+ usuario,
+ dominio,
+ comando => StoredProcedureCommand.AddInput(
+ comando,
+ "@CveConvenio",
+ cveConvenio,
+ DbType.Int32));
+ }
+
+ public DbResult<bool> GuardarLotesConvenio(
+ int cveConvenio,
+ int lotesConvenio,
+ int usuario,
+ string dominio)
+ {
+ return Execute(
+ ProcedimientoGuardarLotes,
+ usuario,
+ dominio,
+ comando =>
+ {
+ StoredProcedureCommand.AddInput(
+ comando,
+ "@CveConvenio",
+ cveConvenio,
+ DbType.Int32);
+ StoredProcedureCommand.AddInput(
+ comando,
+ "@LotesConvenio",
+ lotesConvenio,
+ DbType.Int32);
});
}

View File

@@ -1,70 +0,0 @@
--- ANTES/App_Code/Services/Convenios/ServicioConvenios.cs
+++ DESPUES/App_Code/Services/Convenios/ServicioConvenios.cs
@@ -69,6 +69,23 @@
null);
}
+ DbResult<ConvenioLotesConvenio> lotes =
+ _repositorio.ObtenerLotesConvenio(
+ cveConvenio,
+ usuario,
+ dominio);
+
+ if (!lotes.Success)
+ {
+ return DbResult<ConvenioDetalleCompleto>.Fail(
+ lotes.UserMessage,
+ lotes.TechnicalMessage,
+ lotes.Exception);
+ }
+
+ resultado.Data.Encabezado.LotesConvenio =
+ lotes.Data == null ? 0 : lotes.Data.LotesConvenio;
+
return resultado;
}
@@ -112,11 +129,26 @@
usuario,
dominio);
- if (resultado.Success)
- {
- transaccion.Commit();
- }
-
+ if (!resultado.Success)
+ {
+ return resultado;
+ }
+
+ DbResult<bool> lotes = _repositorio.GuardarLotesConvenio(
+ resultado.Data,
+ solicitud.LotesConvenio,
+ usuario,
+ dominio);
+
+ if (!lotes.Success)
+ {
+ return DbResult<int>.Fail(
+ lotes.UserMessage,
+ lotes.TechnicalMessage,
+ lotes.Exception);
+ }
+
+ transaccion.Commit();
return resultado;
}
}
@@ -191,6 +223,11 @@
return "La cantidad de viviendas en convenio no es válida.";
}
+ if (solicitud.LotesConvenio < 0)
+ {
+ return "La cantidad de lotes del convenio no es válida.";
+ }
+
if (solicitud.Conceptos == null || solicitud.Conceptos.Count == 0)
{
return "Agregue al menos un concepto al convenio.";

View File

@@ -1,90 +0,0 @@
--- ANTES/App_Code/Services/Fraccionamientos/ServicioFraccionamiento.cs
+++ DESPUES/App_Code/Services/Fraccionamientos/ServicioFraccionamiento.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Linq;
using SIG.Web.AppCode.Contracts.Bitacora;
using SIG.Web.AppCode.Contracts.Fraccionamientos;
using SIG.Web.AppCode.Contracts.Tramites;
@@ -34,7 +35,79 @@
return CrearFallo<List<ModeloFilaDesarrollos>>("Seleccione un desarrollador válido.");
}
- return _repositorio.ListarDesarrollos(cveCliente, cveUsuarioEjecuta, nombreDominio);
+ DbResult<List<ModeloFilaDesarrollos>> resultado =
+ _repositorio.ListarDesarrollos(
+ cveCliente,
+ cveUsuarioEjecuta,
+ nombreDominio);
+
+ if (!resultado.Success || resultado.Data == null)
+ {
+ return resultado;
+ }
+
+ List<ModeloFilaDesarrollos> filas = resultado.Data;
+
+ /*
+ * PA_Fraccionamientos_DesarrolladorEtapasList es el listado
+ * agrupado existente. No se cambia su contrato. El avance ya
+ * existe en PA_Fraccionamientos_EtapaList, por lo que se
+ * complementa aquí para que admin y cliente usen el mismo dato.
+ */
+ foreach (int cveFraccionamiento in filas
+ .Select(x => x.CveFraccionamiento)
+ .Distinct())
+ {
+ DbResult<List<ModeloEtapaFraccionamiento>> etapasResultado =
+ _repositorio.ListarEtapas(
+ cveFraccionamiento,
+ cveUsuarioEjecuta,
+ nombreDominio);
+
+ if (!etapasResultado.Success)
+ {
+ return DbResult<List<ModeloFilaDesarrollos>>.Fail(
+ etapasResultado.UserMessage,
+ etapasResultado.TechnicalMessage,
+ etapasResultado.Exception);
+ }
+
+ List<ModeloEtapaFraccionamiento> etapas =
+ etapasResultado.Data ?? new List<ModeloEtapaFraccionamiento>();
+
+ Dictionary<int, decimal> avances = etapas
+ .ToDictionary(x => x.CveFraccionamientoEtapa, x => x.Avance);
+
+ foreach (ModeloFilaDesarrollos fila in filas.Where(x =>
+ x.CveFraccionamiento == cveFraccionamiento &&
+ !x.EsFraccionamiento &&
+ x.CveFraccionamientoEtapa.HasValue))
+ {
+ decimal avance;
+ if (avances.TryGetValue(
+ fila.CveFraccionamientoEtapa.Value,
+ out avance))
+ {
+ fila.Avance = avance;
+ }
+ }
+
+ ModeloFilaDesarrollos cabecera = filas.FirstOrDefault(x =>
+ x.CveFraccionamiento == cveFraccionamiento &&
+ x.EsFraccionamiento);
+
+ if (cabecera != null)
+ {
+ cabecera.Avance = etapas.Count == 0
+ ? 0m
+ : decimal.Round(
+ etapas.Average(x => x.Avance),
+ 2,
+ MidpointRounding.AwayFromZero);
+ }
+ }
+
+ return resultado;
}
public DbResult<List<OpcionClienteFraccionamiento>> ListarClientes(int cveUsuarioEjecuta, string nombreDominio)

View File

@@ -1,38 +0,0 @@
--- ANTES/Pages/Clientes/Desarrollos.aspx
+++ DESPUES/Pages/Clientes/Desarrollos.aspx
@@ -80,7 +80,7 @@
OnRowDataBound="EnlazarFila"
OnRowCommand="Desarrollos_Comando">
<Columns>
- <asp:TemplateField HeaderText="Fraccionamiento">
+ <asp:TemplateField HeaderText="Fraccionamiento / Etapa">
<ItemTemplate>
<asp:Panel runat="server"
Visible='<%# Convert.ToBoolean(Eval("EsFraccionamiento")) %>'>
@@ -97,11 +97,7 @@
<%#: ResumenFraccionamiento(Container.DataItem) %>
</span>
</asp:Panel>
- </ItemTemplate>
- </asp:TemplateField>
-
- <asp:TemplateField HeaderText="Etapa">
- <ItemTemplate>
+
<asp:HyperLink runat="server"
CssClass="sig-cliente-etapa-enlace"
Visible='<%# !Convert.ToBoolean(Eval("EsFraccionamiento")) %>'
@@ -114,6 +110,13 @@
<ItemTemplate>
<asp:Literal runat="server" Mode="Encode"
Text='<%# FormatearHectareas(Container.DataItem) %>' />
+ </ItemTemplate>
+ </asp:TemplateField>
+
+ <asp:TemplateField HeaderText="Avance">
+ <ItemTemplate>
+ <asp:Literal runat="server" Mode="Encode"
+ Text='<%# FormatearAvance(Container.DataItem) %>' />
</ItemTemplate>
</asp:TemplateField>

View File

@@ -1,18 +0,0 @@
--- ANTES/Pages/Clientes/Desarrollos.aspx.cs
+++ DESPUES/Pages/Clientes/Desarrollos.aspx.cs
@@ -329,6 +329,15 @@
fila.NumeroEtapas);
}
+ protected string FormatearAvance(object objeto)
+ {
+ var fila = objeto as ModeloFilaDesarrollos;
+
+ return fila == null
+ ? string.Empty
+ : fila.Avance.ToString("N2", CultureInfo.CurrentCulture) + " %";
+ }
+
protected string FormatearHectareas(object objeto)
{
var fila = objeto as ModeloFilaDesarrollos;

View File

@@ -1,20 +0,0 @@
--- ANTES/Pages/Clientes/EtapaDetalle.aspx
+++ DESPUES/Pages/Clientes/EtapaDetalle.aspx
@@ -2,7 +2,7 @@
AutoEventWireup="true" CodeFile="EtapaDetalle.aspx.cs"
Inherits="SIG.Web.Pages.Clientes.EtapaDetalle" %>
<%@ Register TagPrefix="cliente" TagName="Tramites" Src="~/UserControl/Clientes/TramitesCliente.ascx" %>
-<%@ Register TagPrefix="cliente" TagName="Documentos" Src="~/UserControl/Clientes/DocumentosCliente.ascx" %>
+<%@ Register TagPrefix="etapa" TagName="DocumentosEtapa" Src="~/UserControl/DocumentosEtapa.ascx" %>
<%@ Register TagPrefix="cliente" TagName="Pagos" Src="~/UserControl/Clientes/PagosCliente.ascx" %>
<asp:Content ID="ContenidoEncabezado" ContentPlaceHolderID="H" runat="server">
@@ -75,7 +75,7 @@
<ajax:TabPanel ID="PestanaDocumentos" runat="server" HeaderText="Documentos">
<ContentTemplate>
- <cliente:Documentos ID="UcDocumentos" runat="server" />
+ <etapa:DocumentosEtapa ID="UcDocumentos" runat="server" OnCambiado="Documentos_Cambiados" />
</ContentTemplate>
</ajax:TabPanel>

View File

@@ -1,53 +0,0 @@
--- ANTES/Pages/Clientes/EtapaDetalle.aspx.cs
+++ DESPUES/Pages/Clientes/EtapaDetalle.aspx.cs
@@ -16,6 +16,12 @@
{
get { return (int?)ViewState["CveFraccionamientoEtapaActual"] ?? 0; }
set { ViewState["CveFraccionamientoEtapaActual"] = value; }
+ }
+
+ private int CveFraccionamientoActual
+ {
+ get { return (int?)ViewState["CveFraccionamientoActual"] ?? 0; }
+ set { ViewState["CveFraccionamientoActual"] = value; }
}
#endregion
@@ -45,6 +51,19 @@
CveFraccionamientoEtapaActual = cveFraccionamientoEtapa;
Cargar();
+ }
+
+ protected void Documentos_Cambiados(object origen, EventArgs argumentos)
+ {
+ if (CveFraccionamientoActual <= 0 ||
+ CveFraccionamientoEtapaActual <= 0)
+ {
+ return;
+ }
+
+ UcTramites.Cargar(
+ CveFraccionamientoActual,
+ CveFraccionamientoEtapaActual);
}
private void Cargar()
@@ -85,6 +104,7 @@
ModeloEtapaFraccionamiento datosEtapa = etapa.Data;
ModeloFraccionamiento datosFraccionamiento = fraccionamiento.Data;
+ CveFraccionamientoActual = datosFraccionamiento.CveFraccionamiento;
LitEtapa.Text = datosEtapa.Etapa;
LitHectareas.Text = datosEtapa.Hectareas.HasValue
@@ -112,8 +132,7 @@
datosEtapa.CveFraccionamientoEtapa);
UcDocumentos.Cargar(
datosFraccionamiento.CveFraccionamiento,
- datosEtapa.CveFraccionamientoEtapa,
- false);
+ datosEtapa.CveFraccionamientoEtapa);
UcPagos.Cargar(
datosFraccionamiento.CveFraccionamiento,
datosEtapa.CveFraccionamientoEtapa,

View File

@@ -1,218 +0,0 @@
--- ANTES/Pages/Desarrolladores/DesarrolladorDetalle.aspx
+++ DESPUES/Pages/Desarrolladores/DesarrolladorDetalle.aspx
@@ -20,27 +20,33 @@
margin-bottom: 15px;
}
- .desarrollador-listado > tbody > tr.desarrollador-grupo > td {
- background: #edf4f8;
- padding: 10px 12px;
- }
-
- .desarrollador-cabecera {
- display: flex;
+ .desarrollador-fila-fraccionamiento > td {
+ background: #eef6fb;
+ vertical-align: middle !important;
+ }
+
+ .desarrollador-fila-etapa > td:first-child {
+ padding-left: 30px;
+ }
+
+ .desarrollador-fraccionamiento-resumen {
+ color: #7f8c8d;
+ font-size: 12px;
+ margin-left: 8px;
+ }
+
+ .desarrollador-etapa-enlace {
+ font-weight: 600;
+ }
+
+ .desarrollador-accion-icono {
align-items: center;
- gap: 12px;
- }
-
- .desarrollador-descripcion {
- flex: 1;
- display: flex;
- flex-wrap: wrap;
- align-items: center;
- gap: 8px 20px;
- }
-
- .desarrollador-alternar {
- background: transparent;
+ display: inline-flex;
+ height: 28px;
+ justify-content: center;
+ margin: 0 2px;
+ padding: 0;
+ width: 28px;
}
.desarrollador-credenciales {
@@ -162,55 +168,88 @@
<ContentTemplate>
<div class="table-responsive">
<asp:GridView ID="GvFraccionamientos" runat="server" AutoGenerateColumns="false"
- GridLines="None" CssClass="table table-hover Widthall desarrollador-listado"
- DataKeyNames="CveFraccionamiento,CveFraccionamientoEtapa"
+ GridLines="None" CssClass="table table-hover Widthall sig-grid-agrupado"
+ DataKeyNames="CveFraccionamiento,CveFraccionamientoEtapa,EsFraccionamiento"
OnRowCommand="Fraccionamientos_Comando"
OnRowDataBound="Fraccionamientos_FilaEnlazada"
EmptyDataText="Este desarrollador no tiene fraccionamientos activos.">
<Columns>
- <asp:TemplateField HeaderText="Etapa">
- <ItemTemplate>
- <asp:Panel runat="server" CssClass="desarrollador-cabecera"
+ <asp:TemplateField HeaderText="Fraccionamiento / Etapa">
+ <ItemTemplate>
+ <asp:Panel runat="server"
Visible='<%# Convert.ToBoolean(Eval("EsFraccionamiento")) %>'>
- <div class="desarrollador-descripcion">
- <asp:HyperLink runat="server"
- Text='<%# Server.HtmlEncode(Convert.ToString(Eval("Fraccionamiento"))) %>'
- NavigateUrl='<%# ObtenerUrlFraccionamiento(Eval("CveFraccionamiento")) %>' />
- <span>
- <asp:Literal runat="server" Mode="Encode"
- Text='<%# DescribirFraccionamiento(Container.DataItem) %>' />
- </span>
- </div>
- <asp:LinkButton runat="server" CommandName="AgregarEtapa"
- CausesValidation="false" CssClass="btn btn-primary btn-circle btn-sm"
- ToolTip="Agregar etapa" aria-label="Agregar etapa">
- <i class="fa fa-plus" aria-hidden="true"></i>
- </asp:LinkButton>
- <button type="button" class="btn default desarrollador-alternar"
- title="Mostrar u ocultar etapas" aria-label="Mostrar u ocultar etapas"
+ <button type="button"
+ class="btn btn-circle btn-xs default sig-grid-alternar-grupo-accion desarrollador-accion-icono"
+ title="Mostrar u ocultar etapas"
+ aria-label="Mostrar u ocultar etapas"
aria-expanded="true">
- <i class="fa fa-chevron-up" aria-hidden="true"></i>
+ <i class="fa fa-chevron-up sig-grid-icono-agrupacion" aria-hidden="true"></i>
</button>
+ <asp:HyperLink runat="server"
+ Text='<%# Server.HtmlEncode(Convert.ToString(Eval("Fraccionamiento"))) %>'
+ NavigateUrl='<%# ObtenerUrlFraccionamiento(Eval("CveFraccionamiento")) %>' />
+ <span class="desarrollador-fraccionamiento-resumen">
+ <%#: DescribirFraccionamiento(Container.DataItem) %>
+ </span>
</asp:Panel>
- <asp:Literal runat="server" Mode="Encode" Text='<%# Eval("Etapa") %>'
- Visible='<%# !Convert.ToBoolean(Eval("EsFraccionamiento")) %>' />
- </ItemTemplate>
- </asp:TemplateField>
- <asp:BoundField DataField="Hectareas" HeaderText="Hectáreas de la etapa" DataFormatString="{0:N2}" />
- <asp:CheckBoxField DataField="Fideicomiso" HeaderText="Fideicomiso" />
- <asp:CheckBoxField DataField="EsActivo" HeaderText="Activa" />
+
+ <asp:HyperLink runat="server"
+ CssClass="desarrollador-etapa-enlace"
+ Visible='<%# !Convert.ToBoolean(Eval("EsFraccionamiento")) %>'
+ Text='<%# Server.HtmlEncode(Convert.ToString(Eval("Etapa"))) %>'
+ NavigateUrl='<%# ObtenerUrlEtapa(Eval("CveFraccionamientoEtapa")) %>' />
+ </ItemTemplate>
+ </asp:TemplateField>
+
+ <asp:TemplateField HeaderText="Hectáreas">
+ <ItemTemplate>
+ <asp:Literal runat="server" Mode="Encode"
+ Text='<%# FormatearHectareas(Container.DataItem) %>' />
+ </ItemTemplate>
+ </asp:TemplateField>
+
+ <asp:TemplateField HeaderText="Avance">
+ <ItemTemplate>
+ <asp:Literal runat="server" Mode="Encode"
+ Text='<%# FormatearAvance(Container.DataItem) %>' />
+ </ItemTemplate>
+ </asp:TemplateField>
+
+ <asp:TemplateField HeaderText="Fideicomiso">
+ <ItemTemplate>
+ <asp:CheckBox runat="server" Enabled="false"
+ Visible='<%# !Convert.ToBoolean(Eval("EsFraccionamiento")) %>'
+ Checked='<%# Convert.ToBoolean(Eval("Fideicomiso")) %>' />
+ </ItemTemplate>
+ </asp:TemplateField>
+
+ <asp:TemplateField HeaderText="Activa">
+ <ItemTemplate>
+ <asp:CheckBox runat="server" Enabled="false"
+ Checked='<%# Convert.ToBoolean(Eval("EsActivo")) %>' />
+ </ItemTemplate>
+ </asp:TemplateField>
+
<asp:TemplateField HeaderText="Acciones"
HeaderStyle-CssClass="sig-columna-acciones"
ItemStyle-CssClass="sig-columna-acciones">
<ItemTemplate>
+ <asp:LinkButton runat="server" CommandName="AgregarEtapa"
+ Visible='<%# Convert.ToBoolean(Eval("EsFraccionamiento")) %>'
+ CausesValidation="false"
+ CssClass="btn btn-circle btn-xs blue desarrollador-accion-icono"
+ ToolTip="Agregar etapa" aria-label="Agregar etapa">
+ <i class="fa fa-plus" aria-hidden="true"></i>
+ </asp:LinkButton>
+
<asp:HyperLink runat="server"
- CssClass="btn btn-circle btn-sm btn-primary sig-accion-icono"
+ CssClass="btn btn-circle btn-xs blue desarrollador-accion-icono"
ToolTip="Ver etapa"
aria-label="Ver etapa"
NavigateUrl='<%# ObtenerUrlEtapa(Eval("CveFraccionamientoEtapa")) %>'
Visible='<%# !Convert.ToBoolean(Eval("EsFraccionamiento")) %>'>
- <i class="fa fa-eye" aria-hidden="true"></i>
- </asp:HyperLink>
+ <i class="fa fa-eye" aria-hidden="true"></i>
+ </asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
@@ -312,40 +351,4 @@
</div>
</asp:Content>
<asp:Content ID="ContenidoScripts" ContentPlaceHolderID="J" runat="server">
- <script>
- (function () {
- var gruposContraidos = {};
- function aplicarGrupo(tabla, boton, contraido) {
- var clave = boton.closest("tr").getAttribute("data-fraccionamiento");
- boton.setAttribute("aria-expanded", contraido ? "false" : "true");
- boton.querySelector("i").className = contraido ? "fa fa-chevron-down" : "fa fa-chevron-up";
- tabla.querySelectorAll('tr[data-cabecera="0"]').forEach(function (fila) {
- if (fila.getAttribute("data-fraccionamiento") === clave) {
- fila.style.display = contraido ? "none" : "";
- }
- });
- }
- function iniciarDesarrollos() {
- document.querySelectorAll(".desarrollador-listado").forEach(function (tabla) {
- if (tabla.getAttribute("data-desarrollos-inicializado") === "1") {
- return;
- }
- tabla.setAttribute("data-desarrollos-inicializado", "1");
- tabla.querySelectorAll(".desarrollador-alternar").forEach(function (boton) {
- var clave = boton.closest("tr").getAttribute("data-fraccionamiento");
- aplicarGrupo(tabla, boton, gruposContraidos[clave] === true);
- boton.addEventListener("click", function () {
- gruposContraidos[clave] = boton.getAttribute("aria-expanded") === "true";
- aplicarGrupo(tabla, boton, gruposContraidos[clave]);
- });
- });
- });
- }
- if (window.Sys && Sys.Application) {
- Sys.Application.add_load(iniciarDesarrollos);
- } else {
- document.addEventListener("DOMContentLoaded", iniciarDesarrollos);
- }
- }());
- </script>
</asp:Content>

View File

@@ -1,85 +0,0 @@
--- ANTES/Pages/Desarrolladores/DesarrolladorDetalle.aspx.cs
+++ DESPUES/Pages/Desarrolladores/DesarrolladorDetalle.aspx.cs
@@ -24,27 +24,69 @@
return;
}
- var desarrollo = (ModeloFilaDesarrollos)argumentos.Row.DataItem;
- argumentos.Row.Attributes["data-fraccionamiento"] =
+ var desarrollo = argumentos.Row.DataItem as ModeloFilaDesarrollos;
+ if (desarrollo == null)
+ {
+ return;
+ }
+
+ string grupo = "desarrollo-" +
desarrollo.CveFraccionamiento.ToString(CultureInfo.InvariantCulture);
- argumentos.Row.Attributes["data-cabecera"] = desarrollo.EsFraccionamiento ? "1" : "0";
+
if (desarrollo.EsFraccionamiento)
{
- argumentos.Row.CssClass = "desarrollador-grupo";
- argumentos.Row.Cells[0].ColumnSpan = GvFraccionamientos.Columns.Count;
- for (int indice = 1; indice < argumentos.Row.Cells.Count; indice++)
- {
- argumentos.Row.Cells[indice].Visible = false;
- }
- }
+ argumentos.Row.CssClass =
+ (argumentos.Row.CssClass +
+ " sig-grid-grupo desarrollador-fila-fraccionamiento").Trim();
+ argumentos.Row.Attributes["data-sig-group-row"] = "1";
+ argumentos.Row.Attributes["data-sig-group-id"] = grupo;
+ argumentos.Row.Attributes["data-sig-level"] = "2";
+ argumentos.Row.Attributes["data-sig-expanded-default"] = "true";
+ return;
+ }
+
+ argumentos.Row.CssClass =
+ (argumentos.Row.CssClass +
+ " sig-grid-fila-dato desarrollador-fila-etapa").Trim();
+ argumentos.Row.Attributes["data-sig-item-row"] = "1";
+ argumentos.Row.Attributes["data-sig-parent-group"] = grupo;
+ argumentos.Row.Attributes["data-sig-level"] = "1";
}
protected string DescribirFraccionamiento(object objeto)
{
var fila = (ModeloFilaDesarrollos)objeto;
- return string.Format(CultureInfo.CurrentCulture,
- "{0} · {1:N2} ha · {2} etapas · {3}",
- fila.Ubicacion, fila.HectareasFraccionamiento, fila.NumeroEtapas, fila.Estatus);
+ return string.Format(
+ CultureInfo.CurrentCulture,
+ "{0} · {1} etapa(s)",
+ fila.Estatus,
+ fila.NumeroEtapas);
+ }
+
+ protected string FormatearHectareas(object objeto)
+ {
+ var fila = objeto as ModeloFilaDesarrollos;
+ if (fila == null)
+ {
+ return string.Empty;
+ }
+
+ decimal? hectareas = fila.EsFraccionamiento
+ ? fila.HectareasFraccionamiento
+ : fila.Hectareas;
+
+ return hectareas.HasValue
+ ? hectareas.Value.ToString("N2", CultureInfo.CurrentCulture)
+ : string.Empty;
+ }
+
+ protected string FormatearAvance(object objeto)
+ {
+ var fila = objeto as ModeloFilaDesarrollos;
+
+ return fila == null
+ ? string.Empty
+ : fila.Avance.ToString("N2", CultureInfo.CurrentCulture) + " %";
}
protected void Etapa_Cambiada(object origen, EventArgs argumentos)

View File

@@ -1,79 +0,0 @@
--- ANTES/UserControl/ConveniosListado.ascx
+++ DESPUES/UserControl/ConveniosListado.ascx
@@ -133,7 +133,7 @@
</div>
</div>
- <div class="sig-convenio-seccion-titulo">Viviendas en desarrollo</div>
+ <div class="sig-convenio-seccion-titulo">Viviendas en desarrollo <span class="text-muted">· Calculados</span></div>
<div class="row">
<div class="col-md-3">
@@ -146,6 +146,8 @@
ID="TxtViviendasAutorizadas"
runat="server"
CssClass="form-control"
+ ReadOnly="true"
+ Text="0"
MaxLength="9" />
</div>
</div>
@@ -160,6 +162,8 @@
ID="TxtViviendasEnConvenio"
runat="server"
CssClass="form-control"
+ ReadOnly="true"
+ Text="0"
MaxLength="9" />
</div>
</div>
@@ -174,6 +178,8 @@
ID="TxtViviendasPendientes"
runat="server"
CssClass="form-control"
+ ReadOnly="true"
+ Text="0"
MaxLength="9" />
</div>
</div>
@@ -188,6 +194,8 @@
ID="TxtViviendasContratadas"
runat="server"
CssClass="form-control"
+ ReadOnly="true"
+ Text="0"
MaxLength="9" />
</div>
</div>
@@ -240,12 +248,31 @@
<div class="form-group">
<asp:Label
runat="server"
+ AssociatedControlID="TxtLotesConvenio"
+ Text="Lotes convenio" />
+ <asp:TextBox
+ ID="TxtLotesConvenio"
+ runat="server"
+ CssClass="form-control"
+ Text="0"
+ MaxLength="9" />
+ </div>
+ </div>
+ </div>
+
+ <div class="row">
+ <div class="col-md-12">
+ <div class="form-group">
+ <asp:Label
+ runat="server"
AssociatedControlID="TxtObservacionesConvenio"
Text="Observaciones" />
<asp:TextBox
ID="TxtObservacionesConvenio"
runat="server"
CssClass="form-control"
+ TextMode="MultiLine"
+ Rows="2"
MaxLength="1000" />
</div>
</div>

View File

@@ -1,80 +0,0 @@
--- ANTES/UserControl/ConveniosListado.ascx.cs
+++ DESPUES/UserControl/ConveniosListado.ascx.cs
@@ -136,7 +136,7 @@
return;
}
- DdlClienteCaptura.Enabled = !cveCliente.HasValue;
+ DdlClienteCaptura.Enabled = true;
if (cveCliente.HasValue && cveCliente.Value > 0)
{
@@ -150,7 +150,7 @@
LimpiarEtapasCaptura();
}
- DdlEtapaCaptura.Enabled = !cveEtapa.HasValue;
+ DdlEtapaCaptura.Enabled = true;
if (!CargarConceptosCatalogo())
{
@@ -430,18 +430,14 @@
CveFraccionamientoEtapa = cveEtapa,
NumeroConvenio = numeroConvenio,
NumeroOficio = TextoNulo(TxtNumeroOficio.Text),
- ViviendasAutorizadas = LeerEnteroOpcional(
- TxtViviendasAutorizadas.Text,
- "Capture una cantidad válida de viviendas autorizadas."),
- ViviendasEnConvenio = LeerEntero(
- TxtViviendasEnConvenio.Text,
- "Capture una cantidad válida de viviendas en convenio."),
- ViviendasPendientes = LeerEnteroOpcional(
- TxtViviendasPendientes.Text,
- "Capture una cantidad válida de viviendas pendientes."),
- ViviendasContratadas = LeerEnteroOpcional(
- TxtViviendasContratadas.Text,
- "Capture una cantidad válida de viviendas contratadas."),
+ // Estos cuatro valores quedan reservados para el cálculo posterior.
+ ViviendasAutorizadas = 0,
+ ViviendasEnConvenio = 0,
+ ViviendasPendientes = 0,
+ ViviendasContratadas = 0,
+ LotesConvenio = LeerEntero(
+ TxtLotesConvenio.Text,
+ "Capture una cantidad válida de lotes del convenio."),
FechaConvenio = LeerFecha(
TxtFechaConvenio.Text,
"Capture una fecha válida para el convenio."),
@@ -579,7 +575,7 @@
"<div class=\"col-md-4\"><strong>Oficio:</strong> {3}</div>" +
"</div>" +
"<div class=\"row\">" +
- "<div class=\"col-md-4\"><strong>Viviendas:</strong> {4}</div>" +
+ "<div class=\"col-md-4\"><strong>Lotes convenio:</strong> {4}</div>" +
"<div class=\"col-md-4\"><strong>Importe:</strong> {5:N2}</div>" +
"<div class=\"col-md-4\"><strong>Saldo pendiente:</strong> {6:N2}</div>" +
"</div>",
@@ -587,7 +583,7 @@
HttpUtility.HtmlEncode(encabezado.Fraccionamiento),
HttpUtility.HtmlEncode(encabezado.Etapa),
HttpUtility.HtmlEncode(encabezado.NumeroOficio),
- encabezado.ViviendasEnConvenio,
+ encabezado.LotesConvenio,
encabezado.ImporteConvenio,
encabezado.SaldoPendiente);
@@ -761,10 +757,11 @@
private void ReiniciarCaptura()
{
ConceptosCaptura = new List<ConvenioConceptoCaptura>();
- TxtViviendasAutorizadas.Text = string.Empty;
+ TxtViviendasAutorizadas.Text = "0";
TxtViviendasEnConvenio.Text = "0";
- TxtViviendasPendientes.Text = string.Empty;
- TxtViviendasContratadas.Text = string.Empty;
+ TxtViviendasPendientes.Text = "0";
+ TxtViviendasContratadas.Text = "0";
+ TxtLotesConvenio.Text = "0";
TxtNumeroConvenio.Text = string.Empty;
TxtNumeroOficio.Text = string.Empty;
TxtFechaConvenio.Text = DateTime.Today.ToString(

View File

@@ -1,23 +0,0 @@
--- ANTES/UserControl/DetalleEtapa.ascx
+++ DESPUES/UserControl/DetalleEtapa.ascx
@@ -58,6 +58,20 @@
<asp:BoundField DataField="Folio" HeaderText="Folio" />
<asp:BoundField DataField="TipoTramite" HeaderText="Trámite" />
<asp:BoundField DataField="EstatusSolicitud" HeaderText="Estatus" />
+ <asp:TemplateField HeaderText="Documentos">
+ <ItemTemplate>
+ <span class='<%# Convert.ToInt32(Eval("DocumentosPendientes")) > 0 ? "text-danger" : "text-success" %>'>
+ <%#: Eval("TextoDocumentos") %>
+ </span>
+ </ItemTemplate>
+ </asp:TemplateField>
+ <asp:TemplateField HeaderText="Pagos">
+ <ItemTemplate>
+ <span class='<%# Convert.ToInt32(Eval("PagosPendientes")) > 0 ? "text-danger" : "text-success" %>'>
+ <%#: Eval("TextoPagos") %>
+ </span>
+ </ItemTemplate>
+ </asp:TemplateField>
<asp:BoundField DataField="FechaInicio" HeaderText="Fecha de inicio" />
<asp:TemplateField HeaderText="Acciones"
HeaderStyle-CssClass="sig-columna-acciones"

View File

@@ -1,43 +0,0 @@
--- ANTES/UserControl/DetalleEtapa.ascx.cs
+++ DESPUES/UserControl/DetalleEtapa.ascx.cs
@@ -328,7 +328,39 @@
return;
}
- GvTramites.DataSource = consulta.Data;
+ List<TramiteSolicitudModel> tramites =
+ consulta.Data ?? new List<TramiteSolicitudModel>();
+
+ foreach (TramiteSolicitudModel tramite in tramites)
+ {
+ var contexto = AppServices.TramiteSolicitudService
+ .ObtenerContextoCambioEstatus(
+ tramite.CveSolicitud,
+ CurrentUser.CveUsuario,
+ CurrentUser.NombreDominio);
+
+ if (!contexto.Success || contexto.Data == null)
+ {
+ Avisar(
+ contexto.Success
+ ? "No fue posible consultar los pendientes del trámite."
+ : contexto.UserMessage);
+ return;
+ }
+
+ tramite.DocumentosPendientes =
+ (contexto.Data.Documentos ??
+ new List<SIG.Web.AppCode.Models.Documentos.TramiteDocumentoSolicitudModel>())
+ .Count(documento =>
+ documento.EsRequerido &&
+ (!documento.TieneArchivo || documento.FechaExpirada));
+
+ tramite.PagosPendientes =
+ (contexto.Data.Pagos ?? new List<ModeloPagoSolicitud>())
+ .Count(pago => pago.EstaPendiente);
+ }
+
+ GvTramites.DataSource = tramites;
GvTramites.DataBind();
}

View File

@@ -1,43 +0,0 @@
--- ANTES/UserControl/DocumentosEtapa.ascx.cs
+++ DESPUES/UserControl/DocumentosEtapa.ascx.cs
@@ -152,9 +152,13 @@
bool hayDocumentosParaCargar = DocumentosActuales.Any(documento =>
documento.PuedeActualizarArchivo && !documento.EsGis);
- DescargarTodos.Visible = hayArchivos;
- DescargarTodos.NavigateUrl = hayArchivos ? UrlDescargaTodos() : string.Empty;
+ bool esDesarrollador = Usuario != null && Usuario.EsDesarrollador;
+ DescargarTodos.Visible = hayArchivos && !esDesarrollador;
+ DescargarTodos.NavigateUrl = DescargarTodos.Visible
+ ? UrlDescargaTodos()
+ : string.Empty;
CargarArchivos.Visible = hayDocumentosParaCargar;
+ VisualizadorDocumento.PermitirDescarga = !esDesarrollador;
MensajeVacio.Text = etapasVisibles.Count == 0 ? "No hay etapas para mostrar." : string.Empty;
Listado.Update();
@@ -452,7 +456,10 @@
case "Descargar":
return documento.TieneArchivo;
case "AdministrarGis":
- return documento.EsGis;
+ return Usuario != null &&
+ !Usuario.EsDesarrollador &&
+ documento.EsGis &&
+ documento.PuedeAdministrarGis;
case "Cargar":
return documento.PuedeActualizarArchivo;
case "Aprobar":
@@ -479,7 +486,11 @@
return Usuario != null && !Usuario.EsDesarrollador &&
documento.TieneVigencia && documento.TieneArchivo;
case "Eliminar":
- return documento.TieneArchivo && documento.PuedeActualizarArchivo;
+ return documento.TieneArchivo &&
+ documento.PuedeActualizarArchivo &&
+ (Usuario == null ||
+ !Usuario.EsDesarrollador ||
+ documento.EsAprobado != true);
default:
return false;
}

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
@@ -49,6 +49,7 @@
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Transactions" />
<Reference Include="System.Web" />

Binary file not shown.

View File

@@ -1,4 +1,4 @@
(function (window, document) {
(function (window, document) {
'use strict';
if (window.SIGDocumentosEtapaCargaMasiva) {
@@ -773,8 +773,6 @@
var destino =
opcion.CveFraccionamientoEtapa +
'|' +
opcion.CveSolicitud +
'|' +
opcion.CveTipoDocumento;
if (destinos[destino]) {
@@ -793,8 +791,6 @@
Incluir: true,
CveFraccionamientoEtapa:
opcion.CveFraccionamientoEtapa,
CveSolicitud:
opcion.CveSolicitud,
CveTipoDocumento:
opcion.CveTipoDocumento,
FechaDocumento:

View File

@@ -1,69 +1,327 @@
(function (window, document, $) {
(function (ventana, documento, $) {
'use strict';
if (window.SIGLotesEtapa) {
if (ventana.SIGLotesEtapa) {
return;
}
function init(context) {
var $ctx = $(context || document);
var instancias = Object.create(null);
var resguardando = false;
$ctx.find('.sig-lotes-etapa .select2me').each(function () {
var $el = $(this);
if (typeof $el.select2 !== 'function') {
return;
}
/*
* Compatible con el Select2 que ya usa la plataforma.
* No reinicializa controles que ya tienen Select2.
*/
if ($el.data('select2') ||
$el.hasClass('select2-hidden-accessible')) {
return;
}
$el.select2({
width: '100%'
});
});
$ctx.find('.sig-lotes-etapa .btn-group.open')
.removeClass('open');
function buscarPropietario(selector, clave) {
return $(selector).filter(function () {
return $(this).attr('data-lotes-propietario') === clave;
}).first();
}
$(function () {
init(document);
});
/*
* WebForms / UpdatePanel
*
* REGLA DEL PROYECTO:
* No inspeccionar paneles actualizados; usar endRequest.
*
* Después de cualquier postback parcial simplemente revisamos
* los controles de Lotes. init() ya evita reinicializar Select2.
*/
if (window.Sys &&
Sys.WebForms &&
Sys.WebForms.PageRequestManager) {
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (!prm._sigLotesEtapaRegistrado) {
prm.add_endRequest(function () {
init(document);
});
prm._sigLotesEtapaRegistrado = true;
function redimensionar(estado) {
if (estado.mapa && ventana.SIGVisorGis) {
ventana.SIGVisorGis.redimensionar(estado.mapa);
}
}
window.SIGLotesEtapa = {
inicializar: init
};
function devolverMapa(estado) {
if (estado.mapa && estado.origen.length) {
estado.mapa.detach().appendTo(estado.origen);
estado.origen.removeClass('sig-lotes-mapa-reservado').css('height', '');
redimensionar(estado);
}
}
function moverAlPanel(estado) {
if (!estado.mapa || !estado.mapa.length) {
return;
}
if (!estado.origen.hasClass('sig-lotes-mapa-reservado')) {
estado.altoOrigen = estado.origen.outerHeight();
}
estado.origen.height(estado.altoOrigen).addClass('sig-lotes-mapa-reservado');
estado.mapa.detach().appendTo(estado.panel.find('[data-lotes-mapa-panel]'));
redimensionar(estado);
}
function actualizarSeleccion(estado) {
var raiz = buscarPropietario('.sig-lotes-etapa', estado.clave);
raiz.find('[data-lotes-fila]').each(function () {
var seleccionada = String($(this).attr('data-lotes-fila')) === String(estado.lote || '');
$(this).toggleClass('sig-lotes-fila-seleccionada', seleccionada)
.attr('aria-selected', seleccionada ? 'true' : 'false');
});
var fila = raiz.find('[data-lotes-fila]').filter(function () {
return String($(this).attr('data-lotes-fila')) === String(estado.lote || '');
}).first();
var contenedor = estado.panel.find('[data-lotes-menu-panel]').empty();
var acciones = fila.find('.sig-menu-acciones').clone(false);
// Los enlaces conservan el destino de postback del grid y sus permisos de servidor.
acciones.find('[id]').removeAttr('id');
acciones.find('.sig-menu-acciones-boton').attr('aria-expanded', 'false');
acciones.find('.sig-lotes-ver-mapa').closest('li').remove();
acciones.appendTo(contenedor);
}
function consultarDetalle(estado) {
if (!estado.panel.hasClass('sig_panel_open') || !estado.pendiente) {
return;
}
var gestor = ventana.Sys && Sys.WebForms && Sys.WebForms.PageRequestManager.getInstance();
if (gestor && gestor.get_isInAsyncPostBack()) {
return;
}
var boton = documento.getElementById(estado.panel.attr('data-lotes-consultar'));
var campo = documento.getElementById(estado.panel.attr('data-lotes-campo'));
if (!boton || !campo) {
return;
}
campo.value = estado.pendiente;
estado.pendiente = null;
boton.click();
}
function abrirDetalle(estado, lote) {
estado.panel[0].click();
estado.lote = lote.CveFraccionamientoLote;
estado.vinculo = lote.GISPoligonoClave;
estado.panel.find('[data-lotes-titulo]').text(lote.Nombre || ('Lote ' + estado.lote));
estado.panel.find('[data-lotes-estado]').text('Consultando información del lote...');
estado.panel.find('[data-lotes-detalle]').hide();
estado.panel.find('[data-lotes-desvincular]').toggle(!!estado.vinculo);
actualizarSeleccion(estado);
ventana.SIGPanelLateral.abrir(estado.panel);
moverAlPanel(estado);
estado.pendiente = estado.lote;
consultarDetalle(estado);
}
function conectarMapa(estado) {
if (!estado.mapa || estado.mapa.is('[data-sig-lotes-mapa-inicializado]')) {
return;
}
estado.mapa.on('sig:loteSeleccionado', function (evento, lote) {
abrirDetalle(estado, lote);
});
estado.mapa.attr('data-sig-lotes-mapa-inicializado', '1');
}
function conectarPanel(estado) {
var panel = estado.panel;
if (panel.is('[data-sig-lotes-panel-inicializado]')) {
return;
}
estado.anclaPanel = $('<span class="sig-lotes-ancla-panel" hidden></span>').insertBefore(panel);
// El origen del panel también queda fuera de los UpdatePanel.
panel.detach().appendTo($('form').first());
panel.on('cerrado.sig.panel', function () {
estado.pendiente = null;
if (!resguardando) {
devolverMapa(estado);
}
});
panel.on('click.sigLotes', '[data-lotes-desvincular]', function () {
var boton = $(this);
if (!estado.vinculo || boton.prop('disabled')) {
return;
}
boton.prop('disabled', true);
var lote = estado.lote;
var clave = estado.vinculo;
panel.find('[data-lotes-estado]').text('Desvinculando lote...');
$.ajax({
url: estado.mapa.attr('data-gis-url'),
type: 'POST',
dataType: 'json',
timeout: 30000,
data: {
metodo: 'DesvincularLote',
CveFraccionamientoEtapa: estado.etapa,
CveFraccionamientoLote: lote,
ClavePoligono: clave
}
}).done(function (respuesta) {
if (!respuesta.success) {
panel.find('[data-lotes-estado]').text(respuesta.message || 'No fue posible desvincular.');
return;
}
if (estado.lote === lote && estado.vinculo === clave) {
estado.vinculo = '';
boton.hide();
panel.find('[data-lotes-estado]').text('Lote desvinculado. Puede seleccionar el polígono para vincular otro lote.');
estado.lote = null;
actualizarSeleccion(estado);
}
ventana.SIGVisorGis.limpiarSeleccion(estado.mapa, lote);
}).fail(function (respuesta) {
panel.find('[data-lotes-estado]').text(
respuesta.responseJSON && respuesta.responseJSON.message ||
'No se pudo confirmar la desvinculación. Seleccione nuevamente el polígono.');
}).always(function () {
boton.prop('disabled', false);
});
});
panel.attr('data-sig-lotes-panel-inicializado', '1');
}
function restaurarMapas() {
if (resguardando) {
return;
}
$('.sig-lotes-mapa-origen').each(function () {
var origen = $(this);
var clave = origen.attr('data-lotes-propietario');
var etapa = origen.attr('data-lotes-etapa');
var estado = instancias[clave];
var paneles = $('.sig-lotes-panel').filter(function () {
return $(this).attr('data-lotes-propietario') === clave;
});
if (!estado) {
estado = instancias[clave] = { clave: clave, etapa: etapa, panel: paneles.first(), origen: origen };
}
var nuevoPanel = paneles.filter(function () {
return this !== estado.panel[0];
}).first();
if (nuevoPanel.length) {
ventana.SIGPanelLateral.cerrar(estado.panel);
estado.panel.remove();
estado.panel = nuevoPanel;
}
var reemplazoOrigen = estado.origen[0] !== origen[0];
estado.origen = origen;
var nuevoMapa = origen.find('.sig-visor-gis').first();
if (estado.etapa !== etapa || (reemplazoOrigen && !nuevoMapa.length)) {
ventana.SIGPanelLateral.cerrar(estado.panel);
if (estado.mapa) {
estado.mapa.remove();
}
estado.mapa = null;
estado.lote = null;
estado.pendiente = null;
estado.reabrirPanel = false;
estado.etapa = etapa;
origen.removeClass('sig-lotes-mapa-reservado').css('height', '');
}
if (estado.mapa && nuevoMapa.length && nuevoMapa[0] !== estado.mapa[0]) {
nuevoMapa.remove();
}
if (!estado.mapa || !estado.mapa.length) {
estado.mapa = nuevoMapa;
}
conectarPanel(estado);
conectarMapa(estado);
if (estado.reabrirPanel) {
estado.reabrirPanel = false;
ventana.SIGPanelLateral.abrir(estado.panel);
}
if (estado.mapa) {
estado.mapa.removeClass('sig-lotes-mapa-resguardado');
}
if (estado.panel.hasClass('sig_panel_open')) {
moverAlPanel(estado);
} else {
devolverMapa(estado);
}
actualizarSeleccion(estado);
});
$.each(instancias, function (clave, estado) {
if (buscarPropietario('.sig-lotes-mapa-origen', clave).length) {
return;
}
ventana.SIGPanelLateral.cerrar(estado.panel);
if (estado.mapa) {
estado.mapa.remove();
}
estado.panel.remove();
delete instancias[clave];
});
}
function resguardarMapas(emisor, argumentos) {
// pageLoading ocurre después de recibir la respuesta y antes de reemplazar el DOM.
resguardando = true;
$.each(instancias, function (clave, estado) {
if (!estado.mapa || !estado.mapa.length) {
return;
}
estado.altoOrigen = estado.origen.hasClass('sig-lotes-mapa-reservado') ?
estado.altoOrigen : estado.origen.outerHeight();
estado.origen.height(estado.altoOrigen).addClass('sig-lotes-mapa-reservado');
estado.mapa.detach().appendTo($('form').first()).addClass('sig-lotes-mapa-resguardado');
});
var reemplazos = argumentos && argumentos.get_panelsUpdating ? argumentos.get_panelsUpdating() : [];
var eliminados = argumentos && argumentos.get_panelsDeleting ? argumentos.get_panelsDeleting() : [];
$.each(instancias, function (clave, estado) {
var ancla = estado.anclaPanel && estado.anclaPanel[0];
var reemplazaPanel = $.grep([].concat(reemplazos, eliminados), function (panel) {
return ancla && (panel === ancla || $.contains(panel, ancla));
}).length > 0;
if (reemplazaPanel) {
// El mapa ya está a salvo. WebForms debe disponer las pestañas y controles
// del panel que el servidor va a reemplazar para no duplicar componentes AJAX.
estado.reabrirPanel = estado.panel.hasClass('sig_panel_open');
ventana.SIGPanelLateral.cerrar(estado.panel);
estado.panel.detach().insertAfter(estado.anclaPanel);
}
});
resguardando = false;
}
function inicializar() {
restaurarMapas();
$.each(instancias, function (clave, estado) {
if (estado.mapa) {
estado.mapa.removeClass('sig-lotes-mapa-resguardado');
}
var contenido = estado.panel.find('[data-lotes-detalle]');
var coincide = !estado.pendiente &&
String(contenido.attr('data-lotes-detalle')) === String(estado.lote);
contenido.toggle(coincide);
if (coincide) {
estado.panel.find('[data-lotes-estado]').text('');
} else if (estado.lote && !estado.pendiente && estado.panel.hasClass('sig_panel_open')) {
estado.panel.find('[data-lotes-estado]').text('No fue posible mostrar el lote. Selecciónelo nuevamente.');
}
ventana.setTimeout(function () { consultarDetalle(estado); }, 0);
});
$('.sig-lotes-etapa .select2me:not([data-sig-lotes-select-inicializado])').each(function () {
var elemento = $(this);
if (typeof elemento.select2 !== 'function') {
return;
}
if (!elemento.data('select2') && !elemento.hasClass('select2-hidden-accessible')) {
elemento.select2({ width: '100%' });
}
elemento.attr('data-sig-lotes-select-inicializado', '1');
});
}
$(documento).on('click.sigLotes', '.sig-lotes-ver-mapa', function (evento) {
evento.preventDefault();
var boton = $(this);
var lote = boton.attr('data-lote');
// El menú puede estar temporalmente en el formulario, fuera del grid.
var estado;
$.each(instancias, function (clave, candidata) {
if (buscarPropietario('.sig-lotes-etapa', clave)
.find('[data-lotes-fila="' + lote + '"]').length) {
estado = candidata;
return false;
}
});
if (!estado || !estado.mapa || !estado.mapa.length) {
if (ventana.SIGAlerts) {
ventana.SIGAlerts.enqueue({ type: 4, message: 'La etapa no tiene un mapa disponible.' });
}
return;
}
ventana.SIGVisorGis.verLote(estado.mapa, lote);
});
ventana.SIGLotesEtapa = {
inicializar: inicializar,
restaurarMapas: restaurarMapas
};
$(inicializar);
if (ventana.Sys && Sys.WebForms && Sys.WebForms.PageRequestManager) {
var gestor = Sys.WebForms.PageRequestManager.getInstance();
gestor.add_pageLoading(resguardarMapas);
gestor.add_endRequest(inicializar);
}
}(window, document, jQuery));

Some files were not shown because too many files have changed in this diff Show More