Contratos Generador
This commit is contained in:
@@ -773,6 +773,27 @@ Public Class ClsContratos
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
|
||||
Public Function GetContratosObraAvancesControlAcumulativo(CveContrato As Integer, CveEstimacion As Integer, CveEmpresa As Integer) As Boolean
|
||||
Dim Retorno = False
|
||||
|
||||
DataAdapter("PA_Con_ContratosObraAvancesControlAcumulativo")
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveContrato", SqlDbType.Int).Value = CveContrato
|
||||
.Add("@CveEstimacion", SqlDbType.Int).Value = CveEstimacion
|
||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||
End With
|
||||
|
||||
Try
|
||||
SqlAdapter.Fill(Data)
|
||||
Retorno = True
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al consultar elcontrol acumulativo.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
|
||||
End Try
|
||||
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "C I C L O C O M E R C I A L"
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
<div class="col-md-6">
|
||||
|
||||
<asp:GridView ID="GVDatos" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron contratos con los Filtros seleccionados"
|
||||
DataKeyNames="CveEstimacion,NumeroEstimacion" ShowHeader="True"
|
||||
DataKeyNames="CveEstimacion,NumeroEstimacion,FechaEstimacion,NumeroContrato" ShowHeader="True"
|
||||
CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" GridLines="None">
|
||||
<Columns>
|
||||
<asp:TemplateField HeaderText="# Estimación">
|
||||
@@ -162,6 +162,14 @@
|
||||
</ItemTemplate>
|
||||
<ItemStyle HorizontalAlign="Center"></ItemStyle>
|
||||
</asp:TemplateField>
|
||||
|
||||
|
||||
<asp:TemplateField HeaderText=" ">
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton ID="LnkAnexo" runat="server" OnClick="LnkAnexo_Click" AlternateText="Agregar Anexo" CssClass="btn btn-circle btn-sm btn-success anexo" Text="<i class='fa fa-table'></i>" />
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
Imports Extensiones
|
||||
Imports System.Data
|
||||
|
||||
Imports System.IO
|
||||
|
||||
Partial Class RepContratosObraAvancesDetalle
|
||||
Inherits ClsPaginas
|
||||
|
||||
@@ -87,14 +88,205 @@ Partial Class RepContratosObraAvancesDetalle
|
||||
Dim HplNumeroEstimacion As HyperLink = e.Row.FCHyperLink("HplNumeroEstimacion")
|
||||
HplNumeroEstimacion.NavigateUrl = $"./RepContratosObraAvancesPartida.aspx?CveEstimacion={e.Row.DataKey("CveEstimacion")}&NumeroEstimacion={ e.Row.DataKey("NumeroEstimacion")}&CveContrato={ CveContrato }"
|
||||
|
||||
Dim LnkAnexo As LinkButton = e.Row.FCLinkButton("LnkAnexo")
|
||||
|
||||
ScriptManager.GetCurrent(Me).RegisterPostBackControl(LnkAnexo)
|
||||
' NavigateUrl='<%# Eval("CveEstimacion", "RepContratosObraAvancesPartida.aspx?CveEstimacion={0}")%>'
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
'Protected Sub CmdConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
|
||||
' CargaDatos()
|
||||
End Sub
|
||||
|
||||
'Protected Sub CmdConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
|
||||
' CargaDatos()
|
||||
'End Sub
|
||||
|
||||
|
||||
Protected Sub LnkAnexo_Click(sender As Object, e As EventArgs)
|
||||
|
||||
Dim GvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
|
||||
|
||||
Dim CveEstimacion As Integer = GvRow.DataKey("CveEstimacion").ToEntero
|
||||
Dim NumeroEstimacion As Integer = GvRow.DataKey("NumeroEstimacion").ToEntero
|
||||
Dim FechaEstimacion As Date = GvRow.DataKey("FechaEstimacion").ToDate
|
||||
Dim NumeroContrato As String = GvRow.DataKey("NumeroContrato")
|
||||
|
||||
If CveEstimacion > 0 Then
|
||||
GeneraAnexo(CveEstimacion, NumeroEstimacion, FechaEstimacion, NumeroContrato)
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub GeneraAnexo(CveEstimacion As Integer, NumeroEstimacion As Integer, FechaEstimacion As Date, NumeroContrato As String)
|
||||
|
||||
Dim PlantillaAnexo As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Anexo.xlsx"
|
||||
|
||||
If Not System.IO.File.Exists(PlantillaAnexo) Then
|
||||
Alert("No se encuentra la platilla de anexos.", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim DtControl As New DataTable
|
||||
Dim ObjContratos As New ClsContratos
|
||||
|
||||
|
||||
|
||||
|
||||
If ObjContratos.GetContratosObraAvancesControlAcumulativo(CveContrato, CveEstimacion, UsuarioActual.CveEmpresa) Then
|
||||
DtControl = ObjContratos.DtResultados
|
||||
End If
|
||||
ObjContratos.Dispose()
|
||||
|
||||
If DtControl.Rows.Count > 0 Then
|
||||
|
||||
|
||||
Dim WBAnexo = New ClosedXML.Excel.XLWorkbook(PlantillaAnexo)
|
||||
|
||||
Dim WBAnexoSalvar = New ClosedXML.Excel.XLWorkbook
|
||||
|
||||
Dim WSControl = WBAnexo.Worksheet(1)
|
||||
Dim WSDetalle = WBAnexo.Worksheet(2)
|
||||
|
||||
Dim CuerrentRow As Integer = 28
|
||||
|
||||
WSControl.Cell(17, 2).Value = NumeroEstimacion 'Estimacion
|
||||
WSControl.Cell(20, 9).Value = FechaEstimacion.ToString("dd/MM/yyyy") 'Fecha estimacion
|
||||
WSControl.Cell(19, 8).Value = "$ " & DtControl.SUM("Total").ToString("###,###,###.00") 'Total
|
||||
|
||||
WSControl.Cell(20, 6).Value = NumeroContrato
|
||||
|
||||
WSControl.Cell(18, 2).Value = "" 'Lugar
|
||||
WSControl.Cell(17, 6).Value = "" 'Periodo Fecha Inicial
|
||||
WSControl.Cell(17, 7).Value = "" 'Periuodo Fecha Final
|
||||
WSControl.Cell(20, 2).Value = "" 'Obra
|
||||
WSControl.Cell(22, 7).Value = "" 'Presupuesto segun contrato
|
||||
WSControl.Cell(19, 5).Value = "" 'Contrtatista
|
||||
|
||||
|
||||
|
||||
For Each Drow As DataRow In DtControl.Rows
|
||||
|
||||
WSControl.Cell(CuerrentRow, 1).Value = Drow("Codigo").ToString
|
||||
WSControl.Cell(CuerrentRow, 2).Value = Drow("PS").ToString
|
||||
WSControl.Cell(CuerrentRow, 3).Value = Drow("Abreviatura").ToString
|
||||
WSControl.Cell(CuerrentRow, 4).Value = Drow("Cantidad").ToString.ToDecimal
|
||||
WSControl.Cell(CuerrentRow, 5).Value = Drow("AcumuladoTotal").ToString.ToDecimal
|
||||
WSControl.Cell(CuerrentRow, 6).Value = Drow("AcumuladoAnterior").ToString.ToDecimal
|
||||
WSControl.Cell(CuerrentRow, 7).Value = Drow("CantidadActual").ToString.ToDecimal
|
||||
WSControl.Cell(CuerrentRow, 8).Value = Drow("PU").ToString.ToDecimal
|
||||
WSControl.Cell(CuerrentRow, 9).Value = Drow("Total").ToString.ToDecimal
|
||||
|
||||
CuerrentRow = CuerrentRow + 1
|
||||
Next
|
||||
|
||||
WBAnexo.Worksheet(1).CopyTo(WBAnexoSalvar, "CONTROL")
|
||||
|
||||
|
||||
For Each Drow As DataRow In DtControl.Rows
|
||||
|
||||
|
||||
If Drow("CantidadActual").ToString.ToDecimal > 0 Then
|
||||
|
||||
WSDetalle.Cell(3, 6).Value = NumeroContrato
|
||||
|
||||
WSDetalle.Cell(4, 9).Value = "" 'Fecha de
|
||||
WSDetalle.Cell(4, 10).Value = "" 'Fecha a
|
||||
WSDetalle.Cell(4, 11).Value = NumeroEstimacion
|
||||
|
||||
'WSDetalle.Picture("Logo").Name = $"Logo{Drow("CveContratoDetalle").ToString}"
|
||||
'WSDetalle.Picture("Firma").Name = $"Firma{Drow("CveContratoDetalle").ToString}"
|
||||
|
||||
|
||||
WSDetalle.Cell(14, 2).Value = Drow("Codigo").ToString
|
||||
WSDetalle.Cell(14, 3).Value = Drow("PS").ToString
|
||||
WSDetalle.Cell(14, 4).Value = Drow("Abreviatura").ToString
|
||||
|
||||
|
||||
WSDetalle.Cell(12, 3).Value = "" 'Concepto
|
||||
|
||||
WSDetalle.Cell(14, 10).Value = Drow("CantidadActual").ToString.ToDecimal
|
||||
WSDetalle.Cell(14, 11).Value = Drow("CantidadActual").ToString.ToDecimal
|
||||
'WSDetalle.Cell(61, 6).Value = "" 'Empresario
|
||||
WSDetalle.Cell(61, 9).Value = Drow("Nombre").ToString 'Cliente
|
||||
|
||||
|
||||
|
||||
Dim objContrato As New ClsContratos
|
||||
Dim DTArchivos As New DataTable
|
||||
|
||||
If objContrato.GetContratosAvanceAnexos(Drow("CveContratoDetalle").ToString.ToEntero, Drow("Fecha").ToString, UsuarioActual.CveUsuario, CveEstimacion:=CveEstimacion) Then
|
||||
DTArchivos = objContrato.DtResultados
|
||||
End If
|
||||
objContrato.Dispose()
|
||||
|
||||
Dim Imagenes As New List(Of ClosedXML.Excel.Drawings.IXLPicture)
|
||||
|
||||
Dim CurrectRowImg As Integer = 19 'Row 19 primera imggen
|
||||
Dim RowH As Double = WSDetalle.Row(19).Height
|
||||
|
||||
For Each drowArchivos In DTArchivos.Rows
|
||||
|
||||
Dim Archivo As String = drowArchivos("Archivo").ToString
|
||||
Dim RutaArchivo As String = $"{UsuarioActual.Empresa.Ruta}\Contrato\{CveContrato}\Anexos\{Archivo}"
|
||||
|
||||
If File.Exists(RutaArchivo) Then
|
||||
|
||||
Dim Imagen = WSDetalle.AddPicture(RutaArchivo).MoveTo(WSDetalle.Cell(CurrectRowImg, 3))
|
||||
Imagen.Scale(WSDetalle.Column(3).Width / (Imagen.OriginalWidth * 0.145D))
|
||||
|
||||
Dim ImgWidth As Double = Imagen.Height
|
||||
|
||||
Dim nRowmas As Integer = ImgWidth / RowH
|
||||
|
||||
CurrectRowImg = CurrectRowImg + nRowmas
|
||||
|
||||
Imagenes.Add(Imagen)
|
||||
End If
|
||||
|
||||
Next
|
||||
WBAnexo.Worksheet(2).CopyTo(WBAnexoSalvar, If(Drow("Codigo").ToString.Trim.Length > 0, Drow("Codigo").ToString, Drow("CvePS").ToString))
|
||||
|
||||
For Each img As ClosedXML.Excel.Drawings.IXLPicture In Imagenes
|
||||
img.Delete()
|
||||
Next
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Next
|
||||
|
||||
|
||||
|
||||
|
||||
Dim msB = New MemoryStream()
|
||||
WBAnexoSalvar.SaveAs(msB)
|
||||
|
||||
Dim BB As Byte() = msB.ToArray
|
||||
msB.Dispose()
|
||||
|
||||
Response.Clear()
|
||||
Response.Buffer = True
|
||||
Response.AddHeader("content-disposition", "attachment; filename=Anexo_Estimacion" & NumeroEstimacion & ".xlsx")
|
||||
Response.ContentType = "application/vnd.ms-excel"
|
||||
Response.BinaryWrite(BB)
|
||||
Response.End()
|
||||
|
||||
|
||||
Else
|
||||
Alert("No se encontraron datos des control", TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Public Function GetStream(excelWorkbook As ClosedXML.Excel.XLWorkbook) As Stream
|
||||
|
||||
Dim fs = New MemoryStream()
|
||||
excelWorkbook.SaveAs(fs)
|
||||
fs.Position = 0
|
||||
Return fs
|
||||
|
||||
End Function
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user