Cambios de pdf de imprimir

This commit is contained in:
2025-09-01 11:54:40 +02:00
parent 0423f4bf11
commit 74a7bbbe62
9 changed files with 142 additions and 70 deletions

View File

@@ -325,8 +325,8 @@
Format = PuppeteerSharp.Media.PaperFormat.A4,
MarginOptions = new PuppeteerSharp.Media.MarginOptions
{
Top = "20mm",
Bottom = "20mm",
Top = "15mm",
Bottom = "10mm",
},
DisplayHeaderFooter=true,
HeaderTemplate = @"
@@ -349,7 +349,7 @@
</table>
</div>",
FooterTemplate = @"
<div style='font-size:10px; width:100%; text-align:center;'>
<div style='font-size:10px; width:100%; text-align:center;margin-bottom:5px;'>
Página <span class='pageNumber'></span> de <span class='totalPages'></span>
</div>"
});

View File

@@ -304,8 +304,8 @@
Format = PuppeteerSharp.Media.PaperFormat.A4,
MarginOptions = new PuppeteerSharp.Media.MarginOptions
{
Top = "20mm",
Bottom = "20mm"
Top = "15mm",
Bottom = "10mm"
},
DisplayHeaderFooter = true,
HeaderTemplate = @"
@@ -328,7 +328,7 @@
</table>
</div>",
FooterTemplate = @"
<div style='font-size:10px; width:100%; text-align:center;'>
<div style='font-size:10px; width:100%; text-align:center;margin-bottom:5px;'>
Página <span class='pageNumber'></span> de <span class='totalPages'></span>
</div>"
});

View File

@@ -86,13 +86,10 @@
<label style="color: #078b98 !important"><b>Trabajo Profesional</b></label>
</div>
@if (objetoCASA.TrabajoProfesional.Usos.Count != 0)
{
<div class="col-11 mx-auto" style="align-items: flex-end;">
<div style="height: 49px;">
<b>Usos/Tipologías</b>
</div>
<div class="table-responsive">
<table class="table tablaCACOA tablaCACOA2 mb-0">
@@ -105,7 +102,8 @@
</tr>
</thead>
<tbody>
@if (objetoCASA.TrabajoProfesional.Usos.Count != 0)
{
@foreach(var uso in objetoCASA.TrabajoProfesional.Usos){
<tr>
<td class="text-end">@uso.superficie.MilesYDecimales()</td>
@@ -114,10 +112,17 @@
<td>@objetoCASA.Enumerados.Intervenciones?.FirstOrDefault(x => x.idEnumeracion == uso.idTipoIntervencion)?.ValorAlfabetico1</td>
</tr>
}
</tbody>
}
else
{
<tr>
<td colspan="4" class="text-center">No hay registros</td>
</tr>
}
</tbody>
<tfoot>
<tr>
<td colspan="4" class="text-end fw-bold colorC TotalesTabla">
<td rowspan="4" class="text-end fw-bold colorC TotalesTabla">
<div style="height:28px; align-content:center;">
Total superficie: <span> @objetoCASA.TrabajoProfesional.Usos.Sum(x=>x.superficie).MilesYDecimales()</span>
</div>
@@ -126,10 +131,9 @@
</tfoot>
</table>
</div>
</div>
}
<div class="col-10 mx-auto" style="align-items: flex-end;">
<div class="d-flex justify-content-center">

View File

@@ -95,7 +95,11 @@
<label class="tituloLbl">Tipo de Documento:</label>
@if (objetoURBAN.TrabajoProfesional.idTipoDocumentacion != 0)
{
<label>@CultureInfo.CurrentCulture.TextInfo.ToTitleCase(@objetoURBAN.Enumerados.TiposDeDocumentos.First(x => x.idEnumeracion == objetoURBAN.TrabajoProfesional.idTipoDocumentacion).Descripcion.ToLower())</label>
<label>@CultureInfo.CurrentCulture.TextInfo.ToTitleCase(@objetoURBAN.Enumerados.TiposDeDocumentos.First(x => x.idEnumeracion == objetoURBAN.TrabajoProfesional.idTipoDocumentacion).Descripcion.ToLower())</label>
}
else
{
<label>No Seleccionado</label>
}
</div>
<div class="formatoCampos pt-2">
@@ -104,6 +108,10 @@
{
<label>@objetoURBAN.Enumerados.ProyectosPorTipo(objetoURBAN.TrabajoProfesional.idTipoDocumentacion).First(x => x.idtipoproyectos == objetoURBAN.TrabajoProfesional.idTipoProyecto).Descripcion</label>
}
else
{
<label>No Seleccionado</label>
}
</div>
</div>
@* TABLAS DE DATOS MINIMOS Y OPCIONALES *@
@@ -121,10 +129,20 @@
</tr>
</thead>
<tbody>
@foreach (var item in objetoURBAN.TrabajoProfesional.DocumentacionMinima)
@if (objetoURBAN.TrabajoProfesional.DocumentacionMinima.Count > 0)
{
@foreach (var item in objetoURBAN.TrabajoProfesional.DocumentacionMinima)
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
</tr>
}
}
else
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
<td class="colorB w4 text-center">No hay registros</td>
</tr>
}
</tbody>
@@ -136,8 +154,6 @@
<div style="height: 49px; margin-top:50px;">
<b>Documentación Opcional:</b>
</div>
@if (objetoURBAN.TrabajoProfesional.DocumentacionOpcional.Count != 0)
{
<div class="table-responsive">
<table class="table tablaCACOA tablaCACOA2 mb-0">
<thead>
@@ -147,11 +163,14 @@
</tr>
</thead>
<tbody>
@foreach (var item in objetoURBAN.TrabajoProfesional.DocumentacionOpcional)
@if (objetoURBAN.TrabajoProfesional.DocumentacionOpcional.Count != 0)
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
<td class="colorB w4 text-end">
@foreach (var item in objetoURBAN.TrabajoProfesional.DocumentacionOpcional)
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
<td class="colorB w4 text-end">
@if (@item.Checkeada)
{
@@ -167,17 +186,19 @@
</svg>
}
</td>
</td>
</tr>
}
}
else
{
<tr>
<td colspan="2" class="colorB text-center">No hay registros</td>
</tr>
}
</tbody>
</table>
</div>
}
else
{
<label>Sin documentación</label>
}
</div>
@* TABLA DE DATOS NECESARIOS *@
<div class="col-11 mx-auto">
@@ -193,20 +214,30 @@
</tr>
</thead>
<tbody>
@foreach (var item in objetoURBAN.TrabajoProfesional.DatosNecesarios)
@if (objetoURBAN.TrabajoProfesional.DatosNecesarios.Count != 0)
{
@foreach (var item in objetoURBAN.TrabajoProfesional.DatosNecesarios)
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
<td class="colorB w4 text-end">@item.ValorNecesario</td>
</tr>
}
}
else
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
<td class="colorB w4 text-end">@item.ValorNecesario</td>
<td colspan="2" class="colorB text-center">No hay registros</td>
</tr>
}
</tbody>
</table>
</div>
</div>
<div class="col-11 mx-auto">
<div style="height: 49px; margin-top:50px;">
<b>Datos Necesarios:</b>
<b>Fases:</b>
</div>
<div class="table-responsive">
<table class="table tablaCACOA tablaCACOA2 mb-0">

View File

@@ -21,14 +21,22 @@
</tr>
</thead>
<tbody>
@foreach (var uso in objetoLicitaciones.Usos)
@if (objetoLicitaciones.Usos.Count != 0)
{
@foreach (var uso in objetoLicitaciones.Usos)
{
<tr>
<td class="text-end">@uso.superficie.MilesYDecimales()</td>
<td>@objetoLicitaciones.Enumerados.GruposTipologias?.FirstOrDefault(x => x.idEnumeracion == uso.idGrupoTipologia)?.ValorAlfabetico1</td>
<td>@objetoLicitaciones.Enumerados.Tipologias?.FirstOrDefault(x => x.idTipologia == uso.idTipologia)?.Descripcion</td>
<td>@objetoLicitaciones.Enumerados.Intervenciones?.FirstOrDefault(x => x.idEnumeracion == uso.idTipoIntervencion)?.ValorAlfabetico1</td>
</tr>
}
}
else
{
<tr>
<td class="text-end">@uso.superficie.MilesYDecimales()</td>
<td>@objetoLicitaciones.Enumerados.GruposTipologias?.FirstOrDefault(x => x.idEnumeracion == uso.idGrupoTipologia)?.ValorAlfabetico1</td>
<td>@objetoLicitaciones.Enumerados.Tipologias?.FirstOrDefault(x => x.idTipologia == uso.idTipologia)?.Descripcion</td>
<td>@objetoLicitaciones.Enumerados.Intervenciones?.FirstOrDefault(x => x.idEnumeracion == uso.idTipoIntervencion)?.ValorAlfabetico1</td>
<td colspan="4" class="text-center">No hay registros</td>
</tr>
}
</tbody>
@@ -66,7 +74,7 @@
<tr>
<td>@fase.Denominacion</td>
<td class="text-end">
<div >
<div>
<span style="margin-right:5px;">@fase.Porcentaje</span>
@if (fase.Seleccionado)
{

View File

@@ -10,7 +10,11 @@
<label class="tituloLbl">Tipo de Documento:</label>
@if (objetoLicitacionUrban.TrabajoProfesional.idTipoDocumentacion != 0)
{
<label>@CultureInfo.CurrentCulture.TextInfo.ToTitleCase(@objetoLicitacionUrban.Enumerados.TiposDeDocumentos.First(x => x.idEnumeracion == objetoLicitacionUrban.TrabajoProfesional.idTipoDocumentacion).Descripcion.ToLower())</label>
<label>@CultureInfo.CurrentCulture.TextInfo.ToTitleCase(@objetoLicitacionUrban.Enumerados.TiposDeDocumentos.First(x => x.idEnumeracion == objetoLicitacionUrban.TrabajoProfesional.idTipoDocumentacion).Descripcion.ToLower())</label>
}
else
{
<label>No Seleccionado</label>
}
</div>
<div class="formatoCampos pt-2">
@@ -19,6 +23,10 @@
{
<label>@objetoLicitacionUrban.Enumerados.ProyectosPorTipo(objetoLicitacionUrban.TrabajoProfesional.idTipoDocumentacion).First(x => x.idtipoproyectos == objetoLicitacionUrban.TrabajoProfesional.idTipoProyecto).Descripcion</label>
}
else
{
<label>No Seleccionado</label>
}
</div>
</div>
@* TABLAS DE DATOS MINIMOS Y OPCIONALES *@
@@ -36,12 +44,20 @@
</tr>
</thead>
<tbody>
@foreach (var item in objetoLicitacionUrban.TrabajoProfesional.DocumentacionMinima)
@if (objetoLicitacionUrban.TrabajoProfesional.DocumentacionMinima.Count > 0)
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
</tr>
@foreach (var item in objetoLicitacionUrban.TrabajoProfesional.DocumentacionMinima)
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
</tr>
}
} else
{
<tr><td class="text-center">No hay registros</td></tr>
}
</tbody>
</table>
</div>
@@ -51,8 +67,6 @@
<div style="height: 49px; margin-top:50px;">
<b>Documentación Opcional:</b>
</div>
@if (objetoLicitacionUrban.TrabajoProfesional.DocumentacionOpcional.Count != 0)
{
<div class="table-responsive">
<table class="table tablaCACOA tablaCACOA2 mb-0">
<thead>
@@ -62,6 +76,8 @@
</tr>
</thead>
<tbody>
@if (objetoLicitacionUrban.TrabajoProfesional.DocumentacionOpcional.Count != 0)
{
@foreach (var item in objetoLicitacionUrban.TrabajoProfesional.DocumentacionOpcional)
{
<tr>
@@ -84,20 +100,19 @@
</td>
</tr>
}
</tbody>
}
else
{
<tr><td class="text-center" colspan="2">No hay registros</td></tr>
}
</tbody>
</table>
</div>
}
else
{
<label>Sin documentación</label>
}
</div>
@* TABLA DE DATOS NECESARIOS Y FASES *@
<div class="col-12 d-flex justify-content-center" style="gap:20px;">
<div class="col-12 d-flex justify-content-center" >
@* DATOS NECESARIOS *@
<div class="col-6">
<div class="col-6" style="padding-left:20px;">
<div class="col-11 mx-auto">
<div style="height: 49px; margin-top:50px;">
<b>Datos Necesarios:</b>
@@ -111,12 +126,19 @@
</tr>
</thead>
<tbody>
@if (objetoLicitacionUrban.TrabajoProfesional.DatosNecesarios.Count != 0)
{
@foreach (var item in objetoLicitacionUrban.TrabajoProfesional.DatosNecesarios)
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
<td class="colorB w4 text-end">@item.ValorNecesario</td>
</tr>
}
}
else
{
<tr><td class="text-center" colspan="2">No hay registros</td></tr>
}
</tbody>
</table>
@@ -124,7 +146,7 @@
</div>
</div>
@* FASES *@
<div class="col-6">
<div class="col-6" style="padding-right:20px;">
<div class="col-11 mx-auto">
<div style="height: 49px; margin-top:50px;">
@@ -230,15 +252,23 @@
</tr>
</thead>
<tbody>
@foreach (var otroTrabajo in objetoLicitacionUrban.ListaSolvenciaTecnica)
@if (objetoLicitacionUrban.ListaSolvenciaTecnica.Count>0)
{
@foreach (var otroTrabajo in objetoLicitacionUrban.ListaSolvenciaTecnica)
{
<tr>
<td>@otroTrabajo.Descripcion</td>
<td class="text-end">@otroTrabajo.Cantidad</td>
<td>@otroTrabajo.TipoConvenio</td>
</tr>
}
} else
{
<tr>
<td>@otroTrabajo.Descripcion</td>
<td class="text-end">@otroTrabajo.Cantidad</td>
<td >@otroTrabajo.TipoConvenio</td>
<td colspan="3" class="text-center">No hay registros</td>
</tr>
}
</tbody>
<tfoot>
<tr>

View File

@@ -434,8 +434,8 @@
Format = PuppeteerSharp.Media.PaperFormat.A4,
MarginOptions = new PuppeteerSharp.Media.MarginOptions
{
Top = "20mm",
Bottom = "20mm"
Top = "15mm",
Bottom = "10mm"
},
DisplayHeaderFooter = true,
HeaderTemplate = @"
@@ -458,7 +458,7 @@
</table>
</div>",
FooterTemplate = @"
<div style='font-size:10px; width:100%; text-align:center;'>
<div style='font-size:10px; width:100%; text-align:center;margin-bottom:5px;'>
Página <span class='pageNumber'></span> de <span class='totalPages'></span>
</div>"
});

View File

@@ -513,8 +513,8 @@
Format = PuppeteerSharp.Media.PaperFormat.A4,
MarginOptions = new PuppeteerSharp.Media.MarginOptions
{
Top = "20mm",
Bottom = "20mm"
Top = "15mm",
Bottom = "10mm"
},
DisplayHeaderFooter = true,
HeaderTemplate = @"
@@ -537,7 +537,7 @@
</table>
</div>",
FooterTemplate = @"
<div style='font-size:10px; width:100%; text-align:center;'>
<div style='font-size:10px; width:100%; text-align:center;margin-bottom:5px;'>
Página <span class='pageNumber'></span> de <span class='totalPages'></span>
</div>"
});

View File

@@ -14,7 +14,6 @@ window.mostrarPdf = function (base64Data) {
window.obtenerPDFImprimir = function (paginaImprimir) {
let DespachoImprimir = document.getElementById(paginaImprimir);
let html = DespachoImprimir.outerHTML + "<br>";
let html = DespachoImprimir.outerHTML;
return html;
};