diff --git a/App_Code/ClsContratos.vb b/App_Code/ClsContratos.vb
index 74b4d1432..c716f91b6 100644
--- a/App_Code/ClsContratos.vb
+++ b/App_Code/ClsContratos.vb
@@ -182,11 +182,16 @@ Public Class ClsContratos
Public Property EstatusFianza As Integer
Public Property Folio As Integer
Public Property FechaVenc As Date
- Public Property AplicaImpuestosLocales As Boolean
-
-
+ Public Property AplicaImpuestosLocales As Boolean
+ Public Property CveEstimacionActual As Integer
+ Public Property NumeroEstimacionActual As Integer
+
+
+
+
+
#End Region
-
+
#Region " C O N T R A T O S "
Public Function GetContratosReporte(CveEmpresa As Integer, FechaInicial As DateTime, FechaFinal As DateTime) As Boolean
Dim Retorno As Boolean = False
@@ -1276,15 +1281,15 @@ Public Class ClsContratos
Return Retorno
End Function
- Public Function GetContratosAvanceAnexos(CveContratoDetalle As Integer, fecha As String, CveUsuario As Integer, Optional CveEstimacion As Integer = -1) As Boolean
+ Public Function GetContratosAvanceAnexos(CveContratoDetalle As Integer, CveUsuario As Integer, Optional CveEstimacion As Integer = -1, Optional CveContratoAvance As Integer = -1) As Boolean
Dim Retorno = False
DataAdapter("PA_Con_ContratosAvanceAnexos")
With SqlAdapter.SelectCommand.Parameters
- .Add("@CveContratoDetalle", SqlDbType.Int).Value = CveContratoDetalle
- .Add("@Fecha", SqlDbType.Date).Value = fecha
+ .Add("@CveContratoDetalle", SqlDbType.Int).Value = CveContratoDetalle
.Add("@CveUsuario", SqlDbType.Float).Value = CveUsuario
.Add("@CveEstimacion", SqlDbType.Float).Value = CveEstimacion
+ .Add("@CveContratoAvance", SqlDbType.Float).Value = CveContratoAvance
End With
Try
@@ -1300,13 +1305,49 @@ Public Class ClsContratos
#Region "ESTIMACION"
- Public Function GetContratosAvanceEstimacion(CveContrato As Integer, CveEmpresa As Integer) As Boolean
+
+ Public Function AddContratosObraAvance(CveContrato As Integer, CveContratoDetalle As Integer, Cantidad As Double, Fecha As Date, CveUsuario As Integer, CveEmpresa As Integer) As Boolean
+ Dim Retorno = False
+
+ CveEstimacionActual = 0
+
+ DataAdapter("PA_Con_ContratosObraAvanceAdd")
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveContrato", SqlDbType.Int).Value = CveContrato
+ .Add("@CveContratoDetalle", SqlDbType.Int).Value = CveContratoDetalle
+ .Add("@Cantidad", SqlDbType.Int).Value = Cantidad
+ .Add("@Fecha", SqlDbType.Date).Value = Fecha
+ .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@CveEstimacionActual", SqlDbType.Int).Direction = ParameterDirection.Output
+ .Add("@NumeroEstimacionActual", SqlDbType.Int).Direction = ParameterDirection.Output
+
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+
+ CveEstimacionActual = SqlAdapter.SelectCommand.Parameters("@CveEstimacionActual").Value.ToString.ToEntero
+ NumeroEstimacionActual = SqlAdapter.SelectCommand.Parameters("@NumeroEstimacionActual").Value.ToString.ToEntero
+
+ Retorno = True
+
+ Catch ex As Exception
+ OnError("Ocurrió un error al agregar el avance.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
+ End Try
+
+ Return Retorno
+ End Function
+
+
+ Public Function GetContratosAvanceEstimacion(CveContrato As Integer, CveEmpresa As Integer, CveEstimacion As Integer) As Boolean
Dim Retorno = False
DataAdapter("PA_Con_ContratosAvanceEstimacionGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveContrato", SqlDbType.Int).Value = CveContrato
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@CveEstimacion", SqlDbType.Int).Value = CveEstimacion
End With
Try
@@ -1374,6 +1415,27 @@ Public Class ClsContratos
+ Public Function RemoveContratosAvance(CveContratoAvance As Integer, CveEmpresa As Integer) As Boolean
+ Dim Retorno = False
+
+ DataAdapter("PA_Con_ContratosAvanceRemove")
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveContratoAvance", SqlDbType.Int).Value = CveContratoAvance
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al eliminar el avance.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
+ End Try
+
+ Return Retorno
+
+ End Function
+
+
#End Region
#Region "CONTRATOS OBRA COMPRAS"
diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb
index b1d582319..58f52703a 100644
--- a/App_Code/ClsPaginas.vb
+++ b/App_Code/ClsPaginas.vb
@@ -5020,6 +5020,9 @@ Public Class ClsPaginas
PaginaDict.Add("/Contratos/RepContratosObraAvances.aspx".ToUpper(), -1)
PaginaDict.Add("/Contratos/RepContratosObraAvancesDetalle.aspx".ToUpper(), -1)
PaginaDict.Add("/Contratos/RepContratosObraAvancesPartida.aspx".ToUpper(), -1)
+ PaginaDict.Add("/Contratos/ContratoObraAutorizacion.aspx".ToUpper(), -1)
+
+
'Orden Produccion'
diff --git a/Contratos/ContratoAvance.aspx b/Contratos/ContratoAvance.aspx
index 45bf7c3d0..f52875650 100644
--- a/Contratos/ContratoAvance.aspx
+++ b/Contratos/ContratoAvance.aspx
@@ -63,11 +63,11 @@
diff --git a/Contratos/ContratoAvance.aspx.vb b/Contratos/ContratoAvance.aspx.vb
index 451b2c4a4..66c961842 100644
--- a/Contratos/ContratoAvance.aspx.vb
+++ b/Contratos/ContratoAvance.aspx.vb
@@ -91,16 +91,43 @@ Partial Class Contratos_ContratoAvance
End Property
+ Property CveEstimacionActual As Integer
+ Get
+ If ViewState("CveEstimacionActual") Is Nothing Then
+ Return -1
+ Else
+ Return ViewState("CveEstimacionActual").ToString.ToEntero
+ End If
+ End Get
+ Set(value As Integer)
+ ViewState("CveEstimacionActual") = value
+ End Set
+ End Property
+
+ Property NuemeroEstimacionActual As Integer
+ Get
+ If ViewState("NuemeroEstimacionActual") Is Nothing Then
+ Return -1
+ Else
+ Return ViewState("NuemeroEstimacionActual").ToString.ToEntero
+ End If
+ End Get
+ Set(value As Integer)
+ ViewState("NuemeroEstimacionActual") = value
+ End Set
+ End Property
+
+
+
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
+
BtnGuardar.Visible = False
-
CargaContrato()
-
End If
End Sub
@@ -112,54 +139,34 @@ Partial Class Contratos_ContratoAvance
DdlContratos.DataBind()
DDlContratosEstimaciones.DataSource = GlobalDTContratos.FiltraParametros(String.Format($"CveContratoTipo in (30,31) AND CveEmpresa = {UsuarioActual.CveEmpresa}"))
- DDlContratosEstimaciones.DataBind()
-
-
- CargaddlAvance()
- End Sub
-
- Protected Sub DdlContratos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlContratos.SelectedIndexChanged
- CargaddlAvance()
- End Sub
- Private Sub CargaddlAvance()
- DdlAvances.Items.Clear()
- Dim ObjContratos As New ClsContratos()
- If ObjContratos.GetContratosAvanceFecha(DdlContratos.SelectedValue.ToEntero, 2) Then
- DdlAvances.DataSource = ObjContratos.DtResultados
- End If
- ObjContratos.Dispose()
- DdlAvances.DataBind()
- DdlAvances.Items.Insert(0, New ListItem(" ---- ", "-1"))
+ DDlContratosEstimaciones.DataBind()
End Sub
+
#End Region
+
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
CveContrato = DdlContratos.SelectedValue.ToEntero
CargaDatosAvance()
End Sub
+
Private Sub CargaDatosAvance()
+
GvAnexos.Visible = False
- Dim ObjContratos As New ClsContratos()
- If DdlAvances.SelectedValue = "-1" Then
- If ObjContratos.GetContratosAvanceTodos(CveContrato, 2) Then
- fecha = ""
- DtDatos = ObjContratos.DtResultados
- If ObjContratos.DtResultados.Rows.Count > 0 Then
- BtnGuardar.Visible = True
+ Dim ObjContratos As New ClsContratos()
- End If
- End If
- Else
- If ObjContratos.GetContratosAvanceHistoricos(CveContrato, 2, DdlAvances.SelectedValue) Then
- fecha = DdlAvances.SelectedValue
- DtDatos = ObjContratos.DtResultados
- BtnGuardar.Visible = False
+ If ObjContratos.GetContratosAvanceTodos(CveContrato, 2) Then
+ fecha = ""
+ DtDatos = ObjContratos.DtResultados
+ If ObjContratos.DtResultados.Rows.Count > 0 Then
+ BtnGuardar.Visible = True
+ End If
+ End If
- End If
- End If
ObjContratos.Dispose()
CargaGrid()
+
End Sub
#Region "GV"
@@ -175,7 +182,8 @@ Partial Class Contratos_ContratoAvance
Alert("no se encontraron productos en el presupuesto")
End If
End Sub
- Protected Sub GV_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles Gv.RowDataBound
+ Protected Sub GV_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles Gv.RowDataBound
+
If e.Row.RowIndex > -1 Then
e.Row.FCTextBox("TxtCantidad").Visible = (fecha = "")
@@ -209,10 +217,12 @@ Partial Class Contratos_ContratoAvance
LnkAnexo.Visible = True
End If
- End If
-
-
-
+ Dim LnkGuardarAvance As LinkButton = e.Row.FCLinkButton("LnkGuardarAvance")
+ LnkGuardarAvance.Visible = True
+
+ End If
+
+
End If
End Sub
Protected Sub GetAnexos(sender As Object, e As System.EventArgs)
@@ -226,7 +236,7 @@ Partial Class Contratos_ContratoAvance
Dim gvr As GridViewRow = DirectCast(btn.NamingContainer, GridViewRow)
Dim CveContratoDetalle As Integer = gvr.DataKey("CveContratoDetalle").ToString.ToEntero
Dim objContrato As New ClsContratos
- If objContrato.GetContratosAvanceAnexos(CveContratoDetalle, fecha, UsuarioActual.CveUsuario) Then
+ If objContrato.GetContratosAvanceAnexos(CveContratoDetalle, UsuarioActual.CveUsuario, -1) Then
GvAnexos.DataSource = objContrato.DtResultados
GvAnexos.DataBind()
GvAnexos.Visible = True
@@ -277,10 +287,13 @@ Partial Class Contratos_ContratoAvance
Dim ObjContratos As New ClsContratos
ObjContratos.IniciaTransacSQL()
+
Dim TieneError = False
Dim CveContratoDetalle As Integer
- Dim Cantidad As Double
- 'Dim filesgral As List(Of Archivo) = AnexoGral.getfiles().Archivos
+ Dim Cantidad As Double
+
+ Dim NumeroEstimacionActual As Integer = 0
+
Dim guardarArchivos As New List(Of Archivo)
For Each gvr As GridViewRow In Gv.Rows
@@ -292,19 +305,14 @@ Partial Class Contratos_ContratoAvance
Cantidad = gvr.FCTextBox("TxtCantidad").Text.ToDouble
If Cantidad > 0 Then
- If ObjContratos.AddContratosAvance(CveContratoDetalle, Cantidad, TxtFecha.Text.ToDateTime, UsuarioActual.CveUsuario) Then
+
+ If ObjContratos.AddContratosObraAvance(DdlContratos.SelectedValue.ToEntero, CveContratoDetalle, Cantidad, TxtFecha.Text.ToDateTime, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+
+ NumeroEstimacionActual = ObjContratos.NumeroEstimacionActual
Dim CveContratoAvance As Integer = ObjContratos.DtResultados.Rows(0)("CveContratoAvance").ToString.ToEntero
- Dim files As List(Of Archivo) = gvr.FCTextBox("TXTAnexo").getfiles().Archivos
-
- 'For Each fileItem As Archivo In filesgral 'GENERAL
- ' guardarArchivos.Add(fileItem)
- ' If Not ObjContratos.AddContratosAvanceAnexo(CveContratoAvance, fileItem.filename, UsuarioActual.CveUsuario) Then
- ' TieneError = True
- ' Exit For
- ' End If
- 'Next
-
+ Dim files As List(Of Archivo) = gvr.FCTextBox("TXTAnexo").getfiles().Archivos
+
For Each fileItem As Archivo In files
guardarArchivos.Add(fileItem)
If Not ObjContratos.AddContratosAvanceAnexo(CveContratoAvance, fileItem.filename, UsuarioActual.CveUsuario) Then
@@ -326,26 +334,100 @@ Partial Class Contratos_ContratoAvance
If TieneError Then
ObjContratos.RollBack()
Alert("No se logro guardar el Presupuesto favor de intentarlo mas tarde o comuniquese con soporte", TipoMensaje.MsgAdvertencia)
- Else
+ Else
+
Dim urlsave As String = String.Format("Empresas\{0}\Contrato\{1}\Anexos", UsuarioActual.CveEmpresa, CveContrato)
- 'For Each fileItem As Archivo In filesgral
- ' fileItem.filename.FilesMove(fileItem.filename, urlsave)
- 'Next
-
For Each fileItem As Archivo In guardarArchivos
fileItem.filename.FilesMove(fileItem.filename.Replace($".{fileItem.Extencion}", ""), urlsave)
- Next
+ Next
+
+
ObjContratos.Commit()
- Alert("se guardo Correctamente")
+
+ 'Alert("se avance guardado correctamente")
+ Alert("se avance guardado correctamente en estimacion numero " & NumeroEstimacionActual)
+
End If
'AnexoGral.Text = "[]"
ObjContratos.Dispose()
- CargaddlAvance()
+ 'CargaddlAvance()
CargaDatosAvance()
End Sub
+ Protected Sub LnkGuardarAvance_Click(sender As Object, e As EventArgs)
+
+ Dim GvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
+
+
+ Dim ObjContratos As New ClsContratos
+ ObjContratos.IniciaTransacSQL()
+ Dim TieneError = False
+ Dim CveContratoDetalle As Integer
+ Dim Cantidad As Double
+ Dim guardarArchivos As New List(Of Archivo)
+
+ Dim NumeroEstimacionActual As Integer = 0
+
+ CveContratoDetalle = GvRow.DataKey("CveContratoDetalle").ToEntero
+
+ If CveContratoDetalle > 0 Then
+
+ Cantidad = GvRow.FCTextBox("TxtCantidad").Text.ToDouble
+
+ If Cantidad > 0 Then
+ If ObjContratos.AddContratosObraAvance(DdlContratos.SelectedValue.ToEntero, CveContratoDetalle, Cantidad, TxtFecha.Text.ToDateTime, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ NumeroEstimacionActual = ObjContratos.NumeroEstimacionActual
+
+ Dim CveContratoAvance As Integer = ObjContratos.DtResultados.Rows(0)("CveContratoAvance").ToString.ToEntero
+ Dim files As List(Of Archivo) = GvRow.FCTextBox("TXTAnexo").getfiles().Archivos
+
+ For Each fileItem As Archivo In files
+ guardarArchivos.Add(fileItem)
+ If Not ObjContratos.AddContratosAvanceAnexo(CveContratoAvance, fileItem.filename, UsuarioActual.CveUsuario) Then
+ TieneError = True
+ Exit For
+ End If
+ Next
+
+ Else
+ TieneError = True
+ End If
+
+
+ If TieneError Then
+ ObjContratos.RollBack()
+ Alert("No se logro guardar el Presupuesto favor de intentarlo mas tarde o comuniquese con soporte", TipoMensaje.MsgAdvertencia)
+ Else
+
+ Dim urlsave As String = String.Format("Empresas\{0}\Contrato\{1}\Anexos", UsuarioActual.CveEmpresa, CveContrato)
+ For Each fileItem As Archivo In guardarArchivos
+ fileItem.filename.FilesMove(fileItem.filename.Replace($".{fileItem.Extencion}", ""), urlsave)
+ Next
+ ObjContratos.Commit()
+
+ 'Alert("se avance guardado correctamente")
+ Alert("se avance guardado correctamente en estimacion numero " & NumeroEstimacionActual)
+ End If
+
+
+
+
+ End If
+ Else
+ ObjContratos.RollBack()
+ End If
+
+
+
+
+ ObjContratos.Dispose()
+ CargaDatosAvance()
+
+ End Sub
+
+
#Region "ESTIMACION"
@@ -355,9 +437,9 @@ Partial Class Contratos_ContratoAvance
Dim ObjContratos As New ClsContratos()
Dim DTEstimaciones As New DataTable
+ Dim NumeroEstimacionActual As Integer = 0
-
- If ObjContratos.GetContratosAvanceEstimacion(DDlContratosEstimaciones.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
+ If ObjContratos.GetContratosAvanceEstimacion(DDlContratosEstimaciones.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1) Then
DTEstimaciones = ObjContratos.DtResultados
CveContratoEstimacion = DDlContratosEstimaciones.SelectedValue.ToEntero
@@ -465,7 +547,6 @@ Partial Class Contratos_ContratoAvance
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"
@@ -683,7 +764,7 @@ Partial Class Contratos_ContratoAvance
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
+ If objContrato.GetContratosAvanceAnexos(Drow("CveContratoDetalle").ToString.ToEntero, UsuarioActual.CveUsuario, CveEstimacion:=CveEstimacion) Then
DTArchivos = objContrato.DtResultados
End If
objContrato.Dispose()
@@ -748,6 +829,10 @@ Partial Class Contratos_ContratoAvance
#End Region
+
+
+
+
End Class
diff --git a/Contratos/ContratoObra.aspx b/Contratos/ContratoObra.aspx
index e3ccfab73..86f5165e3 100644
--- a/Contratos/ContratoObra.aspx
+++ b/Contratos/ContratoObra.aspx
@@ -110,17 +110,7 @@
- <%--
-
-
-
-
-
-
-
-
-
- --%>
+
@@ -132,80 +122,169 @@
-<%--
-
-
-
+
+
+
+
+
+
+ <%----%>
+
+
+
+
+
+
diff --git a/Contratos/ContratoObraAutorizacion.aspx.vb b/Contratos/ContratoObraAutorizacion.aspx.vb
new file mode 100644
index 000000000..bec497e3b
--- /dev/null
+++ b/Contratos/ContratoObraAutorizacion.aspx.vb
@@ -0,0 +1,659 @@
+Option Explicit On
+Option Strict On
+
+Imports Extensiones
+Imports System.IO
+Imports System.Data
+Imports Newtonsoft.Json
+Imports ClosedXML.Excel
+
+Partial Class Contratos_ContratoObraAutorizacion
+ Inherits ClsPaginas
+
+#Region "Propiedades"
+ Private Property DtDatos As DataTable
+ Get
+ If ViewState("DtDatos") Is Nothing Then
+ Return Nothing
+ Else
+ Return CType(ViewState("DtDatos"), DataTable)
+ End If
+ End Get
+ Set(value As DataTable)
+ ViewState("DtDatos") = value
+ End Set
+ End Property
+
+ Private Property CveContrato As Integer
+ Get
+ If ViewState("CveContrato") Is Nothing Then
+ Return Nothing
+ Else
+ Return ViewState("CveContrato").ToString.ToEntero
+ End If
+ End Get
+ Set(value As Integer)
+ ViewState("CveContrato") = value
+ End Set
+ End Property
+
+
+ Private Property CveContratoEstimacion As Integer
+ Get
+ If ViewState("CveContratoEstimacion") Is Nothing Then
+ Return Nothing
+ Else
+ Return ViewState("CveContratoEstimacion").ToString.ToEntero
+ End If
+ End Get
+ Set(value As Integer)
+ ViewState("CveContratoEstimacion") = value
+ End Set
+ End Property
+
+ 'fecha seleccionada del historico de avances
+ Private Property fecha As String
+ Get
+ If ViewState("fecha") Is Nothing Then
+ Return ""
+ Else
+ Return ViewState("fecha").ToString
+ End If
+ End Get
+ Set(value As String)
+ ViewState("fecha") = value
+ End Set
+ End Property
+
+ Property CveEstimacionNueva As Integer
+ Get
+ If ViewState("CveEstimacionNueva") Is Nothing Then
+ Return -1
+ Else
+ Return ViewState("CveEstimacionNueva").ToString.ToEntero
+ End If
+ End Get
+ Set(value As Integer)
+ ViewState("CveEstimacionNueva") = value
+ End Set
+ End Property
+
+ Property NuemeroEstimacionNuevo As Integer
+ Get
+ If ViewState("NuemeroEstimacionNuevo") Is Nothing Then
+ Return -1
+ Else
+ Return ViewState("NuemeroEstimacionNuevo").ToString.ToEntero
+ End If
+ End Get
+ Set(value As Integer)
+ ViewState("NuemeroEstimacionNuevo") = value
+ End Set
+ End Property
+
+
+ Property CveEstimacionActual As Integer
+ Get
+ If ViewState("CveEstimacionActual") Is Nothing Then
+ Return -1
+ Else
+ Return ViewState("CveEstimacionActual").ToString.ToEntero
+ End If
+ End Get
+ Set(value As Integer)
+ ViewState("CveEstimacionActual") = value
+ End Set
+ End Property
+
+ Property NuemeroEstimacionActual As Integer
+ Get
+ If ViewState("NuemeroEstimacionActual") Is Nothing Then
+ Return -1
+ Else
+ Return ViewState("NuemeroEstimacionActual").ToString.ToEntero
+ End If
+ End Get
+ Set(value As Integer)
+ ViewState("NuemeroEstimacionActual") = value
+ End Set
+ End Property
+
+
+
+
+#End Region
+ Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
+
+ If Not IsPostBack Then
+ CargaContrato()
+ End If
+
+ End Sub
+
+
+
+ Private Sub CargaContrato()
+ DDlContratosEstimaciones.DataSource = GlobalDTContratos.FiltraParametros(String.Format($"CveContratoTipo in (30,31) AND CveEmpresa = {UsuarioActual.CveEmpresa}"))
+ DDlContratosEstimaciones.DataBind()
+ End Sub
+
+
+
+
+
+
+ Protected Sub GetAnexos(sender As Object, e As System.EventArgs)
+ Dim GvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
+
+
+ LblTituloModalAnexo.Text = "Anexo " & GvRow.DataKey("PS")
+
+ 'Get the button that raised the event
+ Dim btn As LinkButton = DirectCast(sender, LinkButton)
+ Dim gvr As GridViewRow = DirectCast(btn.NamingContainer, GridViewRow)
+ Dim CveContratoDetalle As Integer = gvr.DataKey("CveContratoDetalle").ToString.ToEntero
+ Dim CveContratoAvance As Integer = gvr.DataKey("CveContratoAvance").ToEntero
+ Dim Fecha As Date = gvr.DataKey("Fecha").ToDate
+
+ Dim objContrato As New ClsContratos
+ If objContrato.GetContratosAvanceAnexos(CveContratoDetalle, UsuarioActual.CveUsuario, CveContratoAvance:=CveContratoAvance) Then
+ GvAnexos.DataSource = objContrato.DtResultados
+ GvAnexos.DataBind()
+ GvAnexos.Visible = True
+ Else
+ GvAnexos.Visible = False
+ End If
+
+ objContrato.Dispose()
+
+ UpModalAnexos.Update()
+
+ RegistraScript("$('#ModalAnexos').modal('show');")
+
+ End Sub
+
+ Protected Sub GvAnexos_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GvAnexos.RowDataBound
+
+ If e.Row.RowIndex > -1 Then
+ Dim Archivo As String = e.Row.DBCampo("Archivo").ToString
+ Dim start As Integer = Len(Archivo.Split("-"c)(0))
+ Dim LnkArchivo As LinkButton = e.Row.FCLinkButton("LnkArchivo")
+
+ LnkArchivo.Text = Archivo.Substring(start + 1)
+
+ ScriptManager.GetCurrent(Me).RegisterPostBackControl(LnkArchivo)
+ End If
+
+ End Sub
+
+
+ Protected Sub LnkArchivo_Click(sender As Object, e As EventArgs)
+
+ Dim GvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
+
+ Dim Archivo As String = GvRow.DataKey("Archivo").ToString
+
+ Response.ContentType = "application/octet-stream"
+ Response.AppendHeader("Content-Disposition", $"attachment; filename={Archivo}")
+ Response.TransmitFile($"{UsuarioActual.Empresa.Ruta}\Contrato\{DDlContratosEstimaciones.SelectedValue.ToEntero}\Anexos\{Archivo}")
+ Response.End()
+
+ End Sub
+
+
+
+#Region "ESTIMACION"
+
+
+ Private Sub CargaAvancesParaEstimar()
+ CveContratoEstimacion = -1
+
+ Dim ObjContratos As New ClsContratos()
+ Dim DTEstimaciones As New DataTable
+ Dim NumeroEstimacionActual As Integer = 0
+
+ If ObjContratos.GetContratosAvanceEstimacion(DDlContratosEstimaciones.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1) Then
+ DTEstimaciones = ObjContratos.DtResultados
+
+ CveContratoEstimacion = DDlContratosEstimaciones.SelectedValue.ToEntero
+
+
+ End If
+
+
+ ObjContratos.Dispose()
+
+
+ If DTEstimaciones.Rows.Count > 0 Then
+ GvEstimaciones.DataSource = DTEstimaciones
+ ' BtnGuardarEstimacion.Visible = True
+ BtnAutoriza.Visible = True
+ Else
+ GvEstimaciones.DataSource = Nothing
+ BtnGuardarEstimacion.Visible = False
+ End If
+ GvEstimaciones.DataBind()
+
+ UpEstimaciones.Update()
+ End Sub
+
+ Private Sub BtnConsultarEstimaciones_Click(sender As Object, e As EventArgs) Handles BtnConsultarEstimaciones.Click
+
+ CargaAvancesParaEstimar()
+
+ End Sub
+
+ Private Sub GvEstimaciones_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEstimaciones.RowDataBound
+
+ If e.Row.RowType = DataControlRowType.DataRow Then
+
+ If e.Row.DBCampo("CveContratoDetalle").ToString.ToEntero = 0 Then
+
+
+ If e.Row.DBCampo("CveSubFamilias").ToString.ToEntero = 0 Then
+ If e.Row.DBCampo("CveFamilias").ToString.ToEntero = 0 Then
+ e.Row.CssClass = "SubTotales"
+ Else
+ e.Row.CssClass = "SubTotales2"
+ End If
+ Else
+ e.Row.CssClass = "SubTotales3"
+ End If
+
+
+
+
+ End If
+
+ If e.Row.DBCampo("CveContratoDetalle").ToString.ToEntero > 0 Then
+ Dim LnkAnexo As LinkButton = e.Row.FCLinkButton("LnkAnexo")
+ Dim LnkEliminarAvance As LinkButton = e.Row.FCLinkButton("LnkEliminarAvance")
+ LnkAnexo.Visible = True
+ LnkEliminarAvance.Visible = True
+ End If
+
+
+
+
+ End If
+
+ End Sub
+
+ Private Sub BtnGuardarEstimacion_Click(sender As Object, e As EventArgs) Handles BtnGuardarEstimacion.Click
+
+ CveEstimacionNueva = -1
+ NuemeroEstimacionNuevo = -1
+
+ Dim ObjContratos As New ClsContratos()
+ Dim ErrorProceso As Boolean = False
+
+ ObjContratos.IniciaTransacSQL()
+
+
+ If ObjContratos.AddContratosAvanceEstimacion(CveContratoEstimacion, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+
+ CveEstimacionNueva = ObjContratos.CveEstimacionNueva
+ NuemeroEstimacionNuevo = ObjContratos.NumeroEstimacionNueva
+
+ For Each GvRow As GridViewRow In GvEstimaciones.Rows
+
+ If GvRow.DataKey("CveContratoAvance").ToEntero > 0 Then
+ If Not ObjContratos.UpdateContratosAvanceEstimacion(GvRow.DataKey("CveContratoAvance").ToEntero, ObjContratos.CveEstimacionNueva, UsuarioActual.CveEmpresa) Then
+ ErrorProceso = True
+ Exit For
+ End If
+ End If
+ Next
+
+ Else
+ ErrorProceso = True
+ End If
+
+ 'AddContratosAvanceEstimacion
+ 'UpdateContratosAvanceEstimacion
+
+
+
+ If Not ErrorProceso Then
+ ObjContratos.Commit()
+ Alert($"Estimación {NuemeroEstimacionNuevo} agregada correctamente.")
+
+ BtnGuardarEstimacion.Visible = False
+ BtnDescargarGenerado.Visible = True
+
+ Else
+ ObjContratos.RollBack()
+ End If
+
+ ObjContratos.Dispose()
+
+ UpEstimaciones.Update()
+ End Sub
+
+ Private Sub BtnDescargarGenerado_Click(sender As Object, e As EventArgs) Handles BtnDescargarGenerado.Click
+
+ GeneraAnexo(CveEstimacionNueva, NuemeroEstimacionNuevo, Now, DDlContratosEstimaciones.SelectedItem.Text)
+
+ 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
+ Dim Lugar As String = ""
+ Dim DescripcionContrato As String = ""
+
+
+ If ObjContratos.GetContratosObraAvancesControlAcumulativo(CveContrato, CveEstimacion, UsuarioActual.CveEmpresa) Then
+ DtControl = ObjContratos.DtResultados
+ If DtControl.Rows.Count > 0 Then
+ Lugar = DtControl(0)("Lugar").ToString
+ DescripcionContrato = DtControl(0)("DescripcionContrato").ToString
+ End If
+ 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("Importe").ToString("###,###,###.00") 'Total
+ WSControl.Cell(19, 8).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Right)
+
+ WSControl.Cell(20, 6).Value = NumeroContrato
+
+ WSControl.Cell(18, 2).Value = Lugar
+ WSControl.Cell(18, 2).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Left)
+ WSControl.Cell(18, 2).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top)
+
+ WSControl.Cell(17, 6).Value = "" 'Periodo Fecha Inicial
+ WSControl.Cell(17, 7).Value = "" 'Periuodo Fecha Final
+ WSControl.Cell(20, 2).Value = DescripcionContrato
+ WSControl.Cell(20, 2).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Left)
+ WSControl.Cell(20, 2).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Top)
+
+ WSControl.Cell(22, 7).Value = "" 'Presupuesto segun contrato
+ WSControl.Cell(19, 5).Value = "" 'Contrtatista
+
+ Dim RowCountControl As Integer = 1
+
+ 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
+
+ WSControl.Cell(CuerrentRow, 9).Style.NumberFormat.Format = "$ ###,###,###.00"
+
+
+ WSControl.Cell(CuerrentRow, 1).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 2).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 3).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 4).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 5).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 6).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 7).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 8).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 9).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+
+
+ WSControl.Cell(CuerrentRow, 1).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 2).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 3).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 4).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 5).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 6).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 7).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 8).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow, 9).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
+
+ 'ultimo Row
+ If DtControl.Rows.Count = RowCountControl Then
+
+
+ WSControl.Cell(CuerrentRow + 1, 1).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 2).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 3).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 4).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 5).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 6).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 7).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 8).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 9).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+
+
+ WSControl.Cell(CuerrentRow + 1, 1).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 2).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 3).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 4).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 5).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 6).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 7).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 8).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ WSControl.Cell(CuerrentRow + 1, 9).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
+
+ WSControl.Cell(CuerrentRow + 1, 8).Value = "Total:"
+ WSControl.Cell(CuerrentRow + 1, 8).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Right)
+ WSControl.Cell(CuerrentRow + 1, 8).Style.Font.Bold = True
+ WSControl.Cell(CuerrentRow + 1, 9).Value = DtControl.SUM("Total")
+ WSControl.Cell(CuerrentRow + 1, 9).Style.Font.Bold = True
+
+ WSControl.Cell(CuerrentRow + 1, 9).Style.NumberFormat.Format = "$ ###,###,###.00"
+
+
+ Dim range = WSControl.Range($"A{CuerrentRow + 3}:D{CuerrentRow + 3}")
+ range.Merge()
+ range.Style.Border.TopBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ range.Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ range.Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ range.Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
+
+ range = WSControl.Range($"E{CuerrentRow + 3}:I{CuerrentRow + 3}")
+ range.Merge()
+ range.Style.Border.TopBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ range.Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ range.Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
+ range.Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
+
+
+
+
+ range = WSControl.Range($"A{CuerrentRow + 4}:D{CuerrentRow + 4}")
+ range.Merge()
+ range.Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ range.Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ range.Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
+ range.Value = "ING. WALTER ROBERTO VILLEGAS LARES"
+
+ range = WSControl.Range($"E{CuerrentRow + 4}:I{CuerrentRow + 4}")
+ range.Merge()
+ range.Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ range.Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
+ range.Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
+ range.Value = "C. SALVADOR SUAREZ"
+
+
+ range = WSControl.Range($"A{CuerrentRow + 5}:D{CuerrentRow + 5}")
+ range.Merge()
+ range.Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ range.Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ range.Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
+ range.Value = "SERVICIOS ELECTRICOS Y CONTROL DE HERMOSILLO S.A. DE C.V."
+ range.Style.Font.Bold = True
+
+ range = WSControl.Range($"E{CuerrentRow + 5}:I{CuerrentRow + 5}")
+ range.Merge()
+ range.Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
+ range.Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
+ range.Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
+ range.Value = "GASERVICIO MATAMOROS SA DE CV"
+ range.Style.Font.Bold = True
+
+
+ End If
+
+ CuerrentRow = CuerrentRow + 1
+ RowCountControl = RowCountControl + 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.Cell(6, 6).Value = DescripcionContrato
+
+ 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, 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 As DataRow In DTArchivos.Rows
+
+ Dim Archivo As String = ""
+ Archivo = 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).ToEntero
+
+ 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
+
+
+
+
+
+
+#End Region
+
+
+
+
+
+ Protected Sub LnkEliminarAvance_Click(sender As Object, e As EventArgs)
+
+ Dim GvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
+
+ Dim CveContratoAvance As Integer = GvRow.DataKey("CveContratoAvance").ToEntero
+ Dim ErrorProceso As Boolean = True
+
+
+
+ Dim ObjContrato As New ClsContratos
+
+ If ObjContrato.RemoveContratosAvance(CveContratoAvance, UsuarioActual.CveEmpresa) Then
+ ErrorProceso = False
+ End If
+
+ ObjContrato.Dispose()
+
+ If Not ErrorProceso Then
+
+ CargaAvancesParaEstimar()
+ Alert("Avance elimiando correctamente.")
+ End If
+
+
+
+ End Sub
+End Class
+
+
+
diff --git a/Contratos/RepContratosObraAvancesPartida.aspx b/Contratos/RepContratosObraAvancesPartida.aspx
index b577c1fb4..a231acd89 100644
--- a/Contratos/RepContratosObraAvancesPartida.aspx
+++ b/Contratos/RepContratosObraAvancesPartida.aspx
@@ -43,7 +43,7 @@
diff --git a/Contratos/RepContratosObraAvancesPartida.aspx.vb b/Contratos/RepContratosObraAvancesPartida.aspx.vb
index 2abb6424b..e016c56b7 100644
--- a/Contratos/RepContratosObraAvancesPartida.aspx.vb
+++ b/Contratos/RepContratosObraAvancesPartida.aspx.vb
@@ -113,8 +113,10 @@ Partial Class RepContratosObraAvancesPartida
Dim CveEstimacion As Integer = GvRow.DataKey("CveEstimacion").ToEntero
Dim CveContratoDetalle As Integer = GvRow.DataKey("CveContratoDetalle").ToEntero
+ Dim CveContratoAvance As Integer = GvRow.DataKey("CveContratoAvance").ToEntero
+
Dim objContrato As New ClsContratos
- If objContrato.GetContratosAvanceAnexos(CveContratoDetalle, Fecha, UsuarioActual.CveUsuario, CveEstimacion:=CveEstimacion) Then
+ If objContrato.GetContratosAvanceAnexos(CveContratoDetalle, Fecha, UsuarioActual.CveUsuario, CveEstimacion:=CveEstimacion, CveContratoAvance:=CveContratoAvance) Then
GvAnexos.DataSource = objContrato.DtResultados
GvAnexos.DataBind()
GvAnexos.Visible = True
@@ -150,11 +152,18 @@ Partial Class RepContratosObraAvancesPartida
Dim GvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
Dim Archivo As String = GvRow.DataKey("Archivo").ToString
+ Dim FI As New IO.FileInfo($"{UsuarioActual.Empresa.Ruta}\Contrato\{CveContrato}\Anexos\{Archivo}")
+
+
+ If FI.Exists Then
+
+ Response.ContentType = "application/octet-stream"
+ Response.AppendHeader("Content-Disposition", $"attachment; filename={Archivo}")
+ Response.TransmitFile(FI.FullName)
+ Response.End()
+
+ End If
- Response.ContentType = "application/octet-stream"
- Response.AppendHeader("Content-Disposition", $"attachment; filename={Archivo}")
- Response.TransmitFile($"{UsuarioActual.Empresa.Ruta}\Contrato\{CveContrato}\Anexos\{Archivo}")
- Response.End()
End Sub