Contratos Autorizacion

This commit is contained in:
Rakcsle Supertramp
2020-11-27 19:41:47 -07:00
parent 8c803b4a99
commit 113e2bc431
10 changed files with 1745 additions and 984 deletions

View File

@@ -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"

View File

@@ -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'

View File

@@ -63,11 +63,11 @@
<label class="col-md-1 truncate">Contrato:</label>
<div class="col-md-6 col-lg-4">
<div class="ddls">
<asp:DropDownList ID="DdlContratos" runat="server" AutoPostBack="true" DataTextField="ContratoCompleto" DataValueField="CveContrato" Class=" form-control input-inline select2me" Width="100%">
<asp:DropDownList ID="DdlContratos" runat="server" DataTextField="ContratoCompleto" DataValueField="CveContrato" Class=" form-control input-inline select2me" Width="100%">
</asp:DropDownList>
</div>
</div>
<div class="col-md-2 col-lg-2">
<div class="col-md-2 col-lg-2 " style="display:none!important">
<asp:DropDownList ID="DdlAvances" runat="server" DataTextField="Name" DataValueField="Fecha" Class=" form-control input-inline select2me" Width="100%">
</asp:DropDownList>
</div>
@@ -117,6 +117,7 @@
<th style="width: 100px;"></th>
<th style="width: 100px;"></th>
<th style="width: 100px;"></th>
<th style="width: 100px;"></th>
</tr>
<tr>
<th>Producto / Servicio</th>
@@ -124,106 +125,114 @@
<th colspan="2">Ultimo Avance</th>
<th colspan="2">Levantamiento</th>
<th style="text-align: right;">Anexo</th>
<th style="text-align: right;"> </th>
</tr>
</table>
<div class="row">
<div class="col-md-12">
<div class="col-md-12">
<asp:GridView ID="Gv" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron partidas para levantar avance"
DataKeyNames="CveFamilias,CveSubFamilias,CveContratoDetalle,PS,Cantidad,Importe,Cantidad_Ultima,Importe_Ultima,PU,CantidadMax,Avance"
CssClass="table GVEstimacion table-advance table-hover" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:LinkButton ID="Producto" runat="server" CssClass="Texto" Text='<%# Eval("PS")%>' Visible="false" ></asp:LinkButton>
<asp:Label ID="LinkButton1" runat="server" CssClass="Texto" Text='<%# Eval("PS")%>' ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<span><%# Eval("Cantidad", "{0:N2}")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Importe">
<ItemTemplate>
<span><%# Eval("Importe", "{0:N2}")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<span><%# Eval("Cantidad_Ultima", "{0:N2}")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Importe">
<ItemTemplate>
<span><%# Eval("Importe_Ultima", "{0:N2}")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<asp:TextBox ID="TxtCantidad" Text="" CssClass="txtcant" onkeyup="ValidateCant(this)" type="number" step="any" data-cantidad='<%# Eval("CantidadMax")%>' data-pu='<%# Eval("PU")%>' data-cve='<%# Eval("CveContratoDetalle") %>' Width="90" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Importe">
<ItemTemplate>
<asp:TextBox ID="TxtImporte" Text="" data-cve='<%# Eval("CveContratoDetalle") %>' CssClass="txtimporte" type="number" step="any" Width="90" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=" ">
<ItemTemplate>
<asp:LinkButton ID="LnkAnexo" runat="server" OnClick="GetAnexos" AlternateText="Agregar Anexo" CssClass="btn btn-circle btn-sm btn-success anexo" Text="<i class='fa fa-folder'></i>" />
<asp:LinkButton runat="server" CssClass="btn btn-circle btn-sm btn-success" ID="LnkModalDropzone" Visible="false"> <i class='fa fa-plus'></i></asp:LinkButton>
<%-- <a class="btn btn-circle btn-sm btn-success hidden linkfile">
<i class='fa fa-plus'></i><asp:TextBox ID="TXTAnexo" CssClass="hidden" runat="server"></asp:TextBox>
</a>--%>
<div runat="server" id="ModalAnexoEvidencia" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Cargar Evidencia</h4>
</div>
<div class="modal-body">
<div style="text-align:left">
<asp:TextBox ID="TXTAnexo" CssClass="ADSdropzone hidden" data-maxFile="10" Text="" runat="server"></asp:TextBox>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:GridView ID="Gv" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron partidas para levantar avance"
DataKeyNames="CveFamilias,CveSubFamilias,CveContratoDetalle,PS,Cantidad,Importe,Cantidad_Ultima,Importe_Ultima,PU,CantidadMax,Avance"
CssClass="table GVEstimacion table-advance table-hover" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:LinkButton ID="Producto" runat="server" CssClass="Texto" Text='<%# Eval("PS")%>' Visible="false"></asp:LinkButton>
<asp:Label ID="LinkButton1" runat="server" CssClass="Texto" Text='<%# Eval("PS")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</div>
<asp:TemplateField HeaderText="UM">
<ItemTemplate>
<span><%# Eval("Abreviatura")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<span><%# Eval("Cantidad", "{0:N2}")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Importe">
<ItemTemplate>
<span><%# Eval("Importe", "{0:N2}")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<span><%# Eval("Cantidad_Ultima", "{0:N2}")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Importe">
<ItemTemplate>
<span><%# Eval("Importe_Ultima", "{0:N2}")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<asp:TextBox ID="TxtCantidad" Text="" CssClass="txtcant" onkeyup="ValidateCant(this)" type="number" step="any" data-cantidad='<%# Eval("CantidadMax")%>' data-pu='<%# Eval("PU")%>' data-cve='<%# Eval("CveContratoDetalle") %>' Width="90" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Importe">
<ItemTemplate>
<asp:TextBox ID="TxtImporte" Text="" data-cve='<%# Eval("CveContratoDetalle") %>' CssClass="txtimporte" type="number" step="any" Width="90" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=" ">
<ItemTemplate>
<asp:LinkButton ID="LnkAnexo" runat="server" OnClick="GetAnexos" AlternateText="Agregar Anexo" CssClass="btn btn-circle btn-sm btn-success anexo" Text="<i class='fa fa-folder'></i>" />
<asp:LinkButton runat="server" CssClass="btn btn-circle btn-sm btn-success" ID="LnkModalDropzone" Visible="false"> <i class='fa fa-plus'></i></asp:LinkButton>
<div runat="server" id="ModalAnexoEvidencia" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Cargar Evidencia</h4>
</div>
<div class="modal-body">
<div style="text-align: left">
<asp:TextBox ID="TXTAnexo" CssClass="ADSdropzone hidden" data-maxFile="10" Text="" runat="server"></asp:TextBox>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:LinkButton ID="LnkGuardarAvance" Text="Guardar" CssClass="btn btn-primary" runat="server" OnClick="LnkGuardarAvance_Click" Visible="false" ValidationGroup="GrpGuardar" ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
<div class="text-center">
<div class="text-center" runat="server" visible ="false">
<asp:Button id="BtnGuardar" CssClass="btn btn-primary" runat="server" Text="Guardar" Visible="false" ValidationGroup="GrpGuardar" />
</div>
@@ -234,7 +243,7 @@
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabEstimación" runat="server" HeaderText="Estimación">
<ajax:TabPanel ID="TabEstimación" runat="server" HeaderText="Estimación" visible ="false">
<ContentTemplate>
<asp:UpdatePanel runat="server" ID="UpEstimaciones" UpdateMode="Conditional">
@@ -254,7 +263,7 @@
<label class="col-md-1 truncate">Contrato:</label>
<div class="col-md-6 col-lg-4">
<div class="ddls">
<asp:DropDownList ID="DDlContratosEstimaciones" runat="server" AutoPostBack="true" DataTextField="NumeroContrato" DataValueField="CveContrato" Class=" form-control input-inline select2me" Width="100%">
<asp:DropDownList ID="DDlContratosEstimaciones" runat="server" AutoPostBack="true" DataTextField="ContratoCompleto" DataValueField="CveContrato" Class=" form-control input-inline select2me" Width="100%">
</asp:DropDownList>
</div>
</div>

View File

@@ -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

View File

@@ -110,17 +110,7 @@
</ContentTemplate>
<Triggers>
<%-- <asp:PostBackTrigger ControlID="LbDescargarExcel" />
<asp:PostBackTrigger ControlID="LBImprimir" />
<asp:PostBackTrigger ControlID="LBImprimirGastos" />
<asp:PostBackTrigger ControlID="LbImprimirSuministros" />
<asp:PostBackTrigger ControlID="LBImprimirInformacionG" />
<asp:PostBackTrigger ControlID="lbImprimirAvance" />
<asp:PostBackTrigger ControlID="LbImprimirPresupuesto" />
<asp:PostBackTrigger ControlID="LbImprmirAF" />
<asp:PostBackTrigger ControlID="LbImprmirAFExcel" />
<asp:PostBackTrigger ControlID="LbImprimirPedDev" />
<asp:PostBackTrigger ControlID="LbImprimirPedDevExcel" />--%>
</Triggers>
</asp:UpdatePanel>
</asp:Content>
@@ -132,80 +122,169 @@
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<%-- <asp:UpdatePanel ID="UPTipo" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="DivTipoContrato" class="row" runat="server" visible="true">
<div class="col-md-12">
<div class="portlet light portlet-fit Withall">
<div class="portlet-title">
<div class="caption">
<span class="caption-subject font-green bold uppercase">
<h1>Tipo de Contrato</h1>
</span>
</div>
<div class="actions">
</div>
</div>
<div class="portlet-body">
<br />
<br />
<div class="row">
<div class="col-sm-6" style="text-align: right">
<asp:RadioButton ID="rdventa" runat="server" GroupName="rdTipo" AutoPostBack="true" Text="Venta" />
</div>
<div class="col-sm-6" style="text-align: left">
<asp:RadioButton ID="rpCompra" runat="server" GroupName="rdTipo" AutoPostBack="true" Text="Compra" />
</div>
</div>
<br />
<div class="row" id="dvDetContrato" runat="server" visible="false">
<div class="col-md-4" style="text-align: right!important">Tipo Contrato:</div>
<div class="col-md-4">
<asp:DropDownList ID="DdlTipoContrato" DataValueField="CveContratoTipo" DataTextField="ContratoTipo" runat="server" AutoPostBack="true" CssClass="select2me" Width="90%" OnSelectedIndexChanged="DdlTipoContrato_SelectedIndexChanged">
</asp:DropDownList>
</div>
<div class="row" style="text-align: center!important">
<br />
<br />
<br />
<asp:Button Text="Aceptar" runat="server" ID="BtnTipoContrato" Height="30px" Width="150px" class="btn btn-primary" />
<br />
<br />
<br />
<div style="width: 500px; margin: 0 auto;">
<asp:Label ID="TxtDescripcionTipoContrato" Text="" runat="server" />
</div>
</div>
</div>
<br />
<div class="row ">
<asp:TextBox Visible="false" runat="server" ID="TextBox5" TextMode="MultiLine" Rows="5" Enabled="false" Wrap="false" Width="500px" Height="50px" />
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>--%>
<asp:UpdatePanel UpdateMode="Conditional" ID="UpGral" runat="server">
<ContentTemplate>
<div runat="server" id="DivContent" visible="true" style="min-height: 500px">
<asp:UpdatePanel runat="server">
<asp:UpdatePanel ID="UpGrafica" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row" runat="server" id="DVGraficas" visible="false">
<div class="col-xs-3">
<div class="dashboard-stat2 " style="border: 2px solid #DDD; margin-bottom: 0px; height: 141.8px!important">
<div class="display">
<div class="number" style="display: none!important">
<small>Contratos</small>
<h3 class="font-purple-soft">
<span>
<asp:Literal Text="0" ID="LblImporteOculto" runat="server" /></span>
</h3>
</div>
<div class="number">
<small>Total Contratado</small>
<h3 class="font-purple-soft">
<span>$<asp:Literal Text="0" ID="LblImporte" runat="server" /></span>
</h3>
</div>
<div class="icon">
<i class="fa fa-list-ol"></i>
</div>
</div>
</div>
</div>
<div class="col-xs-3">
<div class="dashboard-stat2 " style="border: 2px solid #DDD; margin-bottom: 0px;">
<div class="display">
<div class="number" style="width: 80%!important">
<table style="width: 100%!important">
<td>
<small>Ventas</small>
<h3 class="font-green-sharp">
<span style="font-size: large">
<asp:Literal Text="0" ID="LtlAvanceImporte" runat="server" />
</span>
<small class="font-green-sharp"></small>
</h3>
</td>
<td>
<small>Porcentaje</small>
<h3 class="font-green-sharp">
<span style="font-size: large">
<asp:Literal Text="0" ID="LtlAvanceImporteProcentaje1" runat="server" />
</span>
<small class="font-green-sharp"></small>
</h3>
</td>
</table>
</div>
<div class="icon">
<i class="icon-pie-chart"></i>
</div>
</div>
<div class="progress-info">
<div class="progress">
<span runat="server" id="SPAvance1" style="width: 76%;" class="progress-bar progress-bar-success green-sharp">
<%--<span runat="server" id="SPAvance2" class="sr-only">76% Avance</span>--%>
</span>
</div>
<div class="status">
<div class="status-title">Avance </div>
<div class="status-number">
<asp:Literal Text="0" ID="LtlAvanceImporteProcentaje2" runat="server" />
</div>
</div>
</div>
</div>
</div>
<div class="col-xs-3">
<div class="dashboard-stat2 " style="border: 2px solid #DDD; margin-bottom: 0px;">
<div class="display">
<div class="number" style="width: 80%!important">
<table style="width: 100%!important">
<td>
<small>Interno</small>
<h3 class="font-red-haze">
<span style="font-size: large">
<asp:Literal Text="0" ID="LtlAvanceInternoImporte" runat="server" />
</span>
<small class="font-red-haze"></small>
</h3>
</td>
<td>
<small>Porcentaje</small>
<h3 class="font-red-haze">
<span style="font-size: large">
<asp:Literal Text="0" ID="LtlAvanceInternoImportePorcentaje1" runat="server" />
</span>
<small class="font-red-haze"></small>
</h3>
</td>
</table>
</div>
<div class="icon">
<i class="icon-pie-chart"></i>
</div>
</div>
<div class="progress-info">
<div class="progress">
<span runat="server" id="SPFaltante" style="width: 76%;" class="progress-bar progress-bar-success red-haze">
<%--<span class="sr-only">76% Avance</span>--%>
</span>
</div>
<div class="status">
<div class="status-title">Faltante </div>
<div class="status-number">
<asp:Literal Text="0" ID="LtlAvanceInternoImportePorcentaje2" runat="server" />
</div>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%-- <asp:UpdatePanel runat="server">
<ContentTemplate>
<table runat="server" id="TableDatosCabecera" visible="false" width="100%">
<tr>
<td style="width: 250px;">Importe Contratado: $
<asp:Label ID="LblImporte" Font-Size="18px" Font-Bold="True" runat="server" Text=""></asp:Label></td>
<asp:Label Font-Size="18px" Font-Bold="True" runat="server" Text=""></asp:Label></td>
<td style="width: 225px;">Facturado: $
<asp:Label ID="LblFacturado" Font-Size="18px" Font-Bold="True" runat="server" Text="0.00"></asp:Label></td>
@@ -219,14 +298,20 @@
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</asp:UpdatePanel>--%>
<ajax:TabContainer ID="Tab" runat="server" Width="100%" CssClass="tabBodyOverride" ActiveTabIndex="0">
<ajax:TabPanel ID="TabInformacionGeneral" runat="server" HeaderText="Información General">
<ContentTemplate>
<div class="row">
<div class="col-md-8">
<div class="col-md-6">
<div class="portlet smmallpadding light bordered">
<div class="portlet-title">
<div class="tools">
@@ -236,6 +321,12 @@
<div class="caption uppercase" style="position: relative;"><i class="fa fa-info-circle"></i>Datos del Contrato</div>
</div>
<div class="portlet-body rowpadding">
<div class="row">
<label class="col-md-2 truncate">No. Contrato:</label>
<div class="col-md-10">
@@ -306,187 +397,8 @@
</div>
</div>
<%-- <div class="row" id="RowFlexible" runat="server">
<label class="col-md-2 truncate ">Flexible:</label>
<div class="col-md-10">
<asp:CheckBox ID="chkDetalleContrato" AutoPostBack="True" OnCheckedChanged="chkDetalleContrato_CheckedChanged" runat="server"></asp:CheckBox>
</div>
</div>
<div class="row" runat="server" id="RowAlmacenOrigen" visible="False">
<label class="col-md-2 truncate ">Almacén origen:</label>
<div class="col-md-10">
<asp:DropDownList ID="DdlAlmacenOrigen" runat="server" AppendDataBoundItems="True" DataTextField="Almacen" DataValueField="CveAlmacen" Class="form-control input-sm select2me" Width="400px" ValidationGroup="GrpGuardar"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacenOrigen" runat="server" ControlToValidate="DdlAlmacenOrigen" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacén''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEAlmacenOrigen" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacenOrigen" Width="300px" BehaviorID="_content_VCEAlmacenOrigen"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row" runat="server" id="RowAlmacen" visible="False">
<label class="col-md-2 truncate ">Almacén destino:</label>
<div class="col-md-10">
<asp:DropDownList ID="DdlAlmacenDestino" runat="server" AppendDataBoundItems="True" DataTextField="Almacen" DataValueField="CveAlmacen" Class="form-control input-sm select2me" Width="400px" ValidationGroup="GrpGuardar"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacenDestino" runat="server" ControlToValidate="DdlAlmacenDestino" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacén''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEAlmacenDestino" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacenDestino" Width="300px" BehaviorID="_content_VCEAlmacenDestino"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row" runat="server" id="RowPorcentajeComision" visible="False">
<label class="col-md-2 truncate ">Porcentaje de Comisión:</label>
<div class="col-md-10">
<asp:TextBox runat="server" Text="" ID="TxtPorcentajeComision" MaxLength="2"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender9" runat="server" TargetControlID="TxtPorcentajeComision" FilterType="Numbers" BehaviorID="_content_SoloNumeros" />
</div>
</div>--%>
</div>
</div>
</div>
<div class="col-md-4">
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="UpProyecto">
<ContentTemplate>
<div class="portlet smmallpadding light bordered">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="C_chkexpand3" class=" collapse" data-original-title="" title=""></a><span class="hidden">
<input id="C_chkexpand3" type="checkbox" name="ctl00$C$chkexpand" checked="checked"></span>
</div>
<div class="caption uppercase" style="position: relative;"><i class="fa fa-info-circle"></i> <asp:Label runat="server" ID="LblCentroCosto"></asp:Label> </div>
</div>
<div class="portlet-body rowpadding">
<div class="row" id="DVddlproyecto" runat="server">
<asp:Label runat="server" ID="LblProyecto" class="col-md-4 truncate">Proyecto:</asp:Label>
<div class="col-md-8">
<asp:DropDownList ID="DdlProyecto" runat="server" AppendDataBoundItems="true" DataTextField="Proyecto" DataValueField="CveProyecto" Class="table-group-action-input form-control input-inline input-sm select2me" Style="width: 200px;" ValidationGroup="GrpGuardar">
<asp:ListItem Selected="True" Text="Sin Proyecto asignado" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVDdlProyecto" runat="server" ControlToValidate="DdlProyecto" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="CVERFVDdlProyecto" runat="server" HighlightCssClass="vco" TargetControlID="RFVDdlProyecto" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row" id="DVSubProyecto" runat="server" visible ="false">
<asp:Label runat="server" ID="LblSubProyectoTitulo" class="col-md-4 truncate"></asp:Label>
<asp:Label runat="server" ID="LblSubProyecto" class="col-md-8 truncate">:</asp:Label>
</div>
<%-- <div class="row">
<label class="col-md-4 truncate">
<asp:Label ID="lblsubproyecto" runat="server" Text="Proyecto Contrato:"></asp:Label></label><div class="col-md-8">
<asp:DropDownList ID="DdlProyectoContrato" runat="server" AppendDataBoundItems="true" AutoPostBack="false" DataTextField="Proyecto" DataValueField="CveProyecto" Class="table-group-action-input form-control input-inline input-sm select2me" Style="width: 200px;" ValidationGroup="GrpGuardar">
<asp:ListItem Selected="True" Text="Sin SubProyectoContrato asignado" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVProyecto" runat="server" ControlToValidate="DdlProyectoContrato" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCERFVProyecto" runat="server" HighlightCssClass="vco" TargetControlID="RFVProyecto" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>--%>
<%-- <div class="row" runat="server" id="dvAddendum">
<label class="col-md-4 truncate">Addendum:</label>
<div class="col-md-8">
<asp:DropDownList ID="DdlContratoPadre" runat="server" AppendDataBoundItems="true" AutoPostBack="false" DataTextField="NumeroContrato" DataValueField="CveContrato" Class="table-group-action-input form-control input-inline input-sm select2me" Style="width: 200px;" ValidationGroup="GrpGuardar"></asp:DropDownList>
</div>
</div>--%>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<div class="row">
<div class="col-md-8">
<div class="portlet smmallpadding light bordered">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="C_chkexpand2" class=" collapse" data-original-title="" title=""></a><span class="hidden">
<input id="C_chkexpand2" type="checkbox" name="ctl00$C$chkexpand" checked="checked"></span>
</div>
<div class="caption uppercase" style="position: relative;"><i class="fa fa-info-circle"></i>Información</div>
</div>
<div class="portlet-body rowpadding">
<div class="row" id="TrCliente" runat="server" visible="False">
<label class="col-md-2 truncate">
<asp:Label ID="Label1" runat="server" Text="Cliente:"></asp:Label></label><div class="col-md-10">
</div>
</div>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row" id="TrClienteSucursal" runat="server" visible="False">
<label class="col-md-2 truncate">
<asp:Label ID="Label2" runat="server" Text="Sucursal Cliente:"></asp:Label></label><div class="col-md-10">
<asp:DropDownList ID="DdlSucursalCliente" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" DataTextField="SucursalCliente" DataValueField="CveClienteSucursal" Width="75%">
<asp:ListItem Selected="true" Text="Matriz" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%-- <asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row" id="DivVendedor" runat="server">
<label class="col-md-2 truncate">
<asp:Label ID="LblVendedor" runat="server" Text="Vendedor:"></asp:Label></label><div class="col-md-10">
<asp:DropDownList ID="DdlVendedor" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" DataTextField="Vendedor" DataValueField="CveVendedor" Width="75%">
<asp:ListItem Selected="true" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>--%>
<%-- <asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row" id="DivClienteDireccion" runat="server" visible="false">
<label class="col-md-2 truncate">
<asp:Label ID="LblClienteDireccion" runat="server" Text="Dirección Envío:"></asp:Label></label><div class="col-md-10">
<asp:DropDownList ID="DdlClienteDireccionEnvio" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" DataTextField="DireccionEnvio" DataValueField="CveDireccionEnvio" Width="75%">
<asp:ListItem Selected="true" Text="-" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="row" id="TrCtaEquipo" runat="server" visible="False">
<label class="col-md-2 truncate">
<asp:Label ID="Label3" runat="server" Text="Cuenta Equipo:"></asp:Label></label><div class="col-md-10">
<asp:DropDownList ID="DdlCuentaEquipo" runat="server" AppendDataBoundItems="True" DataTextField="devID" DataValueField="CveDispositivo" Class="table-group-action-input form-control input-inline input-sm select2me" Width="75%">
<asp:ListItem Selected="true" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class="row" id="TrContratoPlantilla" runat="server" visible="False">
<label class="col-md-2 truncate">
<asp:Label ID="Label4" runat="server" Text="Plantilla de Contrato:"></asp:Label></label><div class="col-md-10">
<asp:DropDownList ID="DdlPlantillaContrato" AppendDataBoundItems="true" runat="server" DataValueField="CveContratoPlantilla" DataTextField="NombrePlantilla" CssClass="form-control select2me js-Impuesto-programmatic" Width="75%">
<asp:ListItem Selected="true" Value="-1" Text="Seleccione"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class="row" id="TrPeriodo" runat="server" visible="False">
<label class="col-md-2 truncate">
<asp:Label ID="Label5" runat="server" Text="Periodo:"></asp:Label></label><div class="col-md-10">
<asp:DropDownList ID="DdlPeriodo" runat="server" AppendDataBoundItems="True" DataTextField="Nombre" DataValueField="CvePeriodo" Class="table-group-action-input form-control input-inline input-sm select2me" Width="75%">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>--%>
<div class="row">
<div class="row">
<label class="col-md-2 truncate">Tipo Contrato:</label>
<div class="col-md-10">
@@ -526,6 +438,81 @@
<ajax:ValidatorCalloutExtender ID="VCOFechaFinal2" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaFinal" Width="350px" BehaviorID="_content_VCOFechaFinal2"></ajax:ValidatorCalloutExtender>
</div>
</div>
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="UpProyecto">
<ContentTemplate>
<div class="row" id="DVddlproyecto" runat="server">
<asp:Label runat="server" ID="LblProyecto" class="col-md-2 truncate">Proyecto:</asp:Label>
<div class="col-md-10">
<asp:DropDownList ID="DdlProyecto" runat="server" AppendDataBoundItems="true" DataTextField="Proyecto" DataValueField="CveProyecto" Class="table-group-action-input form-control input-inline input-sm select2me" Style="width: 200px;" ValidationGroup="GrpGuardar">
<asp:ListItem Selected="True" Text="Sin Proyecto asignado" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVDdlProyecto" runat="server" ControlToValidate="DdlProyecto" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="CVERFVDdlProyecto" runat="server" HighlightCssClass="vco" TargetControlID="RFVDdlProyecto" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row" id="DVSubProyecto" runat="server" visible="false">
<asp:Label runat="server" ID="LblSubProyectoTitulo" class="col-md-2 truncate"></asp:Label>
<asp:Label runat="server" ID="LblSubProyecto" class="col-md-10 truncate"></asp:Label>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
<div class="col-md-6">
<div class="portlet smmallpadding light bordered">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="C_chkexpand2" class=" collapse" data-original-title="" title=""></a><span class="hidden">
<input id="C_chkexpand2" type="checkbox" name="ctl00$C$chkexpand" checked="checked"></span>
</div>
<div class="caption uppercase" style="position: relative;"><i class="fa fa-info-circle"></i>Información</div>
</div>
<div class="portlet-body rowpadding">
<div class="row" id="TrCliente" runat="server" visible="False">
<label class="col-md-2 truncate">
<asp:Label ID="Label1" runat="server" Text="Cliente:"></asp:Label></label><div class="col-md-10">
</div>
</div>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row" id="TrClienteSucursal" runat="server" visible="False">
<label class="col-md-2 truncate">
<asp:Label ID="Label2" runat="server" Text="Sucursal Cliente:"></asp:Label></label><div class="col-md-10">
<asp:DropDownList ID="DdlSucursalCliente" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" DataTextField="SucursalCliente" DataValueField="CveClienteSucursal" Width="75%">
<asp:ListItem Selected="true" Text="Matriz" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="row">
<label class="col-md-2 truncate">Moneda:</label>
<div class="col-md-10">
@@ -563,18 +550,7 @@
<asp:TextBox ID="TxtPorGarantia" runat="server" MaxLength="12" Width="150px"></asp:TextBox>
</div>
</div>
<%-- <div class="row" id="DvMin" runat="server">
<label class="col-md-2 truncate ">Minimo:</label>
<div class="col-md-10">
<asp:TextBox ID="txtMinimo" runat="server" MaxLength="12" Width="150px"></asp:TextBox><ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender3" runat="server" TargetControlID="txtMinimo" FilterType="Custom, Numbers" ValidChars=",." BehaviorID="_content_SoloNumeros" />
</div>
</div>
<div class="row" id="DvMax" runat="server">
<label class="col-md-2 truncate ">Maximo:</label>
<div class="col-md-10">
<asp:TextBox ID="txtMaximo" runat="server" MaxLength="12" Width="150px"></asp:TextBox><ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender4" runat="server" TargetControlID="txtMaximo" FilterType="Custom, Numbers" ValidChars=",." BehaviorID="_content_SoloNumeros" />
</div>
</div>--%>
<div class="row" runat="server">
<label class="col-md-2 truncate ">% Limite de Gastos:</label>
@@ -604,9 +580,17 @@
</div>
</div>
<div class="col-md-4">
<div class="row" runat="server" id="RowEstatus">
</div>
<div class="row">
<div class="col-md-6" runat="server" id="RowEstatus" >
<div class="row" >
<div class="col-md-12">
<div class="portlet smmallpadding light bordered">
<div class="portlet-title">
@@ -624,54 +608,6 @@
</div>
</div>
<%-- <div class="row" runat="server" id="DivTipoGarantia">
<label class="col-md-4 truncate">Tipo Garantía:</label>
<div class="col-md-8">
<asp:DropDownList ID="DdlTipoGarantia" runat="server" AppendDataBoundItems="True" Class="table-group-action-input form-control input-inline input-sm select2me" Style="width: 200px;" ValidationGroup="GrpGuardar">
<asp:ListItem Text="Ninguno" Value="-1" Selected="True"></asp:ListItem>
<asp:ListItem Text="Fianza" Value="1"></asp:ListItem>
<asp:ListItem Text="Cheque" Value="2"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="DdlTipoGarantia" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo Garantía''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator><ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="RFVEstatus" Width="300px" BehaviorID="_content_VCOEstatus"></ajax:ValidatorCalloutExtender>
</div>
</div>--%>
<%-- <div class="row" style="display: none;">
<label class="col-md-4 truncate">Estatus Fianza:</label>
<div class="col-md-8">
<asp:DropDownList ID="DdlEstatusFianza" runat="server" AppendDataBoundItems="True" Class="table-group-action-input form-control input-inline input-sm select2me" Style="width: 200px;" ValidationGroup="GrpGuardar">
<asp:ListItem Text="Activa" Value="1" Selected="True"></asp:ListItem>
<asp:ListItem Text="Liberada" Value="2"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class="row" style="display: none;">
<label class="col-md-4 truncate">Folio:</label>
<div class="col-md-8">
<asp:TextBox runat="server" ID="TxtFolio"></asp:TextBox>
</div>
</div>
<div class="row" style="display: none;">
<div class="col-md-4 truncate">
Fecha Venc.:
</div>
<div class="col-md-8">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 100px !important; padding: 0px;">
<asp:TextBox Width="110px" ID="txtFechaVenc" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="txtFechaVenc" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="txtFechaVenc" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="txtFechaVenc" Display="None" ErrorMessage="El campo <b>''Fecha Venc.''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="txtFechaVenc" Display="None" ErrorMessage="El campo <b>''Fecha Venc.''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>--%>
</div>
@@ -679,59 +615,25 @@
</div>
</div>
<%-- AGREGAR FIANZA --%>
<%-- <div class="row" runat="server" id="DivFianzas">
<div class="col-md-12">
<div class="portlet smmallpadding light bordered">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="C_chkexpand6" class=" collapse" data-original-title="" title=""></a><span class="hidden">
<input id="C_chkexpand6" type="checkbox" name="ctl00$C$chkexpand" checked="checked"></span>
</div>
<div class="caption uppercase" style="position: relative;"><i class="fa fa-info-circle"></i>Fianzas</div>
<div class="actions">
<div class="btn-group">
<asp:LinkButton ID="btnAgregarFianza" runat="server" OnClick="btnAgregarFianza_Click" data-toggle="tooltip" data-placement="right" title="" CssClass="btn btn-circle btn-default" Text="<i class='fa fa-plus'></i> Agregar"></asp:LinkButton>
</div>
</div>
</div>
<div class="portlet-body rowpadding">
<div class="row">
<div class="col-md-12" style="text-align: center;">
<asp:UpdatePanel ID="UpGvFianzas" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvFianzas" runat="server" OnRowDataBound="GvFianzas_RowDataBound" DataKeyNames="CveContratoFianza, Folio, CveEstatusFianza, EstatusFianza, FechaVencimiento,Adjunto" GridLines="None" CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" data-sort="true" BorderWidth="1" BorderColor="#D3D3D3" CellSpacing="0" Width="100%" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros" OnRowDeleting="GvFianzas_RowDeleting">
<Columns>
<asp:BoundField DataField="Folio" HeaderText="Folio" ItemStyle-Width="25%" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="EstatusFianza" HeaderText="Estatus" ItemStyle-Width="25%" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="FechaVencimiento" HeaderText="Fecha Ven." ItemStyle-Width="25%" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:TemplateField ItemStyle-Width="25%" HeaderText="Acciones" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="imgEFianzaGv" runat="server" Visible="true" AlternateText="Editar" OnClick="imgEFianzaGv_Click" CausesValidation="False" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
<asp:LinkButton ID="imgD" runat="server" Visible="true" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Desea eliminar esta fianza?" data-btn-ok-label="si" />
<asp:LinkButton data-toggle="tooltip" ClientIDMode="AutoID" title="Descargar Adjunto" ToolTip="Descargar Adjunto" Visible="false" ID="LnkDescargaAdjunto" OnClick="LnkDescargaAdjunto_Click" CssClass="btn btn-circle btn-xs green " runat="server"><i class="fa fa-arrow-circle-down" aria-hidden="true"></i></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<%-- <div class="row">
<div class="col-md-12" style="vertical-align: middle;" align="center">
<div style="z-index: 5; position: relative;">
<div id="DivAdvertencia" clientidmode="Static" runat="server" class="alert alert-warning" style="padding: 5px; margin-bottom: 5px; padding-right: 25px;">
<button type="button" class="close" data-dismiss="alert" style="margin-top: 5px;" aria-hidden="true"></button>
<asp:Literal Text="En las observaciones se puede generar una plantilla a partir de diferentes etiquetas: {DIA},{MES},{AÑO},{TC}" runat="server" ID="LtlAdvertencia"></asp:Literal>
</div>
</div>
</div>
</div>--%>
<%-- --%>
<div class="row" runat="server" id="Div4">
<div class="col-md-12">
</div>
<div runat="server" id="Div4" class="col-md-6" >
<div class="portlet smmallpadding light bordered">
<div class="portlet-title">
<div class="tools">
@@ -751,14 +653,7 @@
<button type="button" class="btn btn-primary" runat="server" clientidmode="Static" id="A1" data-toggle="modal" data-target="#ModalUpload" visible="true"><i class="fa fa-upload" aria-hidden="true"></i>Subir Archivo</button>
<%-- <a class="Texto" runat="server" clientidmode="Static" id="A1" data-toggle="modal" data-target="#ModalUpload" visible="true">
<img id="ImgArchivo" runat="server" alt="Archivo" src="/Imagenes/attachment_icon.gif" style="width: 16px; height: 16px; border: 0px none white" />
</a>--%>
<%-- <a class="Texto" runat="server" clientidmode="Static" id="A2" target="_blank" visible="false">
<img id="Img1" alt="Archivo" src="/Imagenes/descargar.png" style="width: 16px; height: 16px; border: 0px none white" />
</a>--%>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="BtnDescargar" />
@@ -768,73 +663,11 @@
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12" style="vertical-align: middle;" align="center">
<div style="z-index: 5; position: relative;">
<div id="DivAdvertencia" clientidmode="Static" runat="server" class="alert alert-warning" style="padding: 5px; margin-bottom: 5px; padding-right: 25px;">
<button type="button" class="close" data-dismiss="alert" style="margin-top: 5px;" aria-hidden="true"></button>
<asp:Literal Text="En las observaciones se puede generar una plantilla a partir de diferentes etiquetas: {DIA},{MES},{AÑO},{TC}" runat="server" ID="LtlAdvertencia"></asp:Literal>
</div>
</div>
</div>
</div>
<%-- <div class="row" runat="server" id="DivImpuestosLocales">
<div class="col-md-12">
<div class="portlet smmallpadding light bordered">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="C_chkexpand4" class=" collapse" data-original-title="" title=""></a>
<span class="hidden">
<input id="C_chkexpand7" type="checkbox" name="ctl00$C$chkexpand" checked="checked">
</span>
</div>
<div class="caption uppercase" style="position: relative;">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Impuestos Locales:</span>
<div class="row" id="RowImpuestosLocales" runat="server">
<div class="col-md-10">
<asp:CheckBox ID="ChkImpuestosLocales" AutoPostBack="True" OnCheckedChanged="ChkImpuestosLocales_CheckedChanged" runat="server"></asp:CheckBox>
</div>
</div>
</div>
</div>
<div class="portlet-body rowpadding">
<div class="row">
<div class="col-md-12">
<asp:UpdatePanel ID="UpImpuestos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvImpuestosLocales" ShowHeader="true" runat="server" horizontal-align="Right" GridLines="None" DataKeyNames="CveImpuestoLocal" CssClass="table table-striped table-hover Widthall" Visible="false" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros">
<Columns>
<asp:TemplateField HeaderText="" ItemStyle-Width="25px">
<ItemTemplate>
<asp:CheckBox runat="server" ID="ChkDeduccion" Checked='<%# Eval("Seleccionado") %>'></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Impuesto" ItemStyle-Width="300px">
<ItemTemplate>
<asp:Literal ID="LtDeduccion" runat="server" Text='<%# Eval("ImpuestoLocal")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Porcentaje" ItemStyle-Width="90px" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Literal ID="LtPorcentaje" runat="server" Text='<%# Eval("Porcentaje", "{0:N4}%") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</div>
</div>--%>
</div>
</div>
</div>

View File

@@ -357,6 +357,40 @@ Partial Class Contratos_ContratoObra
End Property
Property TotalAvanceVentas As Decimal
Get
If ViewState("TotalAvanceVentas") Is Nothing Then
Return 0D
Else
Return ViewState("TotalAvanceVentas").ToString.ToDecimal
End If
End Get
Set(value As Decimal)
ViewState("TotalAvanceVentas") = value
End Set
End Property
Property TotalAvanceInterno As Decimal
Get
If ViewState("TotalAvanceInterno") Is Nothing Then
Return 0D
Else
Return ViewState("TotalAvanceInterno").ToString.ToDecimal
End If
End Get
Set(value As Decimal)
ViewState("TotalAvanceInterno") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
@@ -417,6 +451,8 @@ Partial Class Contratos_ContratoObra
End If
Indicadores()
Else
'Configuración de Modalidad Insert
LblFechaCaptura.Text = Now.ToShortDateString()
@@ -440,7 +476,7 @@ Partial Class Contratos_ContratoObra
CargaPS()
CargaPSInsumos()
ConfiguraTipos()
CargaDatosEncabezado()
'CargaDatosEncabezado()
End If
@@ -620,9 +656,9 @@ Partial Class Contratos_ContratoObra
DvTotal.Visible = True
If CveContrato > 0 AndAlso CveTipoContrato <> 25 Then
TableDatosCabecera.Visible = True
End If
'If CveContrato > 0 AndAlso CveTipoContrato <> 25 Then
' TableDatosCabecera.Visible = True
'End If
If CveTipoContrato = 25 Then
@@ -638,9 +674,9 @@ Partial Class Contratos_ContratoObra
DvTotal.Visible = True
If CveContrato > 0 AndAlso CveTipoContrato <> 25 Then
TableDatosCabecera.Visible = True
End If
'If CveContrato > 0 AndAlso CveTipoContrato <> 25 Then
' TableDatosCabecera.Visible = True
'End If
@@ -668,8 +704,8 @@ Partial Class Contratos_ContratoObra
msjpresupuestos.Visible = False
If ArchivoUpdate = ObjContratos.Archivo.ToString Then
LinkArchivo.Visible = True
LinkArchivo.HRef = String.Format("{0}{1}", Ruta, ObjContratos.Archivo.ToString)
'LinkArchivo.Visible = True
'LinkArchivo.HRef = String.Format("{0}{1}", Ruta, ObjContratos.Archivo.ToString)
End If
Titulo = $"{ObjContratos.NumeroContrato} - {ObjContratos.DescripcionContrato} ({ObjContratos.DtResultados.Rows(0)("ContratoTipo")})"
TituloCorto = $"{ObjContratos.NumeroContrato} - {ObjContratos.DescripcionContrato} "
@@ -719,7 +755,7 @@ Partial Class Contratos_ContratoObra
TabPVInsumos.Visible = False
RowEstatus.Visible = False
TabPres.HeaderText = "Partidas"
TableDatosCabecera.Visible = False
'TableDatosCabecera.Visible = False
TabAvanveDocumento.Visible = False
TabSistema.Visible = False
TabContratosGastos.Visible = False
@@ -862,9 +898,15 @@ Partial Class Contratos_ContratoObra
UpGV.Update()
UpGVInsumos.Update()
UPGVInt.Update()
UPGVInt.Update()
TotalAvanceVentas = TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").ToDecimal
TotalAvanceInterno = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").ToDecimal
LbTotalGeneral.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero()
LbTotalGeneralInsumos.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero()
LbTotalGeneralInt.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero()
'LblImporte.Text = "$" & TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero()
End If
@@ -1116,7 +1158,7 @@ Partial Class Contratos_ContratoObra
LblProyecto.Visible = True
LblCentroCosto.Text = LblSubProyectoTitulo.Text
'LblCentroCosto.Text = LblSubProyectoTitulo.Text
LblSubProyectoTitulo.Text = LblSubProyectoTitulo.Text & ":"
'If UsuarioActual.Empresa.GralSoloProyecto Then
@@ -2841,22 +2883,22 @@ Partial Class Contratos_ContratoObra
End If
ObjVentas.Dispose()
End Sub
Public Sub CargaDatosEncabezado()
TablaUtilidad.Visible = True
LblUtilidad.Text = $"$ {(SumaAvance - SumaGasto).ToString.FormatoNumero()}"
If (SumaAvance - SumaGasto) < 0 Then LblUtilidad.ForeColor = Drawing.Color.Red
LblFacturado.Text = SumaAvance.FormatoNumero
LblPorFacturar.Text = (LblImporte.Text.ToDouble - SumaAvance).FormatoNumero
End Sub
'Public Sub CargaDatosEncabezado()
' TablaUtilidad.Visible = True
' LblUtilidad.Text = $"$ {(SumaAvance - SumaGasto).ToString.FormatoNumero()}"
' If (SumaAvance - SumaGasto) < 0 Then LblUtilidad.ForeColor = Drawing.Color.Red
' LblFacturado.Text = SumaAvance.FormatoNumero
' LblPorFacturar.Text = (LblImporte.Text.ToDouble - SumaAvance).FormatoNumero
'End Sub
#End Region
#End Region
@@ -3063,176 +3105,10 @@ Partial Class Contratos_ContratoObra
End While
Return dataTable
End Function
'Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String)
' Dim dt As New DataTable
' dt = ReadExcelFile(Ruta + FileName, True)
' Dim ErrorArchivo = False
' 'Dim Conexion As Odbc.OdbcConnection = Nothing
' 'Try
' ' Select Case Tipo
' ' Case "EXCEL"
' ' Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";")
' ' Conexion.Open()
' ' Dim cmd = Conexion.CreateCommand()
' ' cmd.CommandType = CommandType.Text
' ' cmd.CommandText = "SELECT * FROM [Hoja1$]"
' ' Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd)
' ' DataAdapter.Fill(dt)
' ' Case Else
' ' Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError)
' ' Exit Sub
' ' End Select
' 'Catch ex As Exception
' ' ErrorArchivo = True
' ' OnError("Ocurrio un error al leer el archivo <br/>" & ex.Message, ex)
' 'End Try
' 'Conexion.Close()
' If Not ErrorArchivo AndAlso dt IsNot Nothing Then
' If Not dt.Columns(0).ColumnName = "OC Interna" Then
' Alert("El nombre de la primera columna debe ser 'OC Interna'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(1).ColumnName = "Cantidad" Then
' Alert("El nombre de la primera columna debe ser 'Cantidad'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(2).ColumnName = "Clave Interna Cliente" Then
' Alert("El nombre de la segunda columna debe ser 'Clave Interna'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(3).ColumnName = "Código" Then
' Alert("El nombre de la tercera columna debe ser 'Código'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(4).ColumnName = "Código Barras" Then
' Alert("El nombre de la cuarta columna debe ser 'Código Barras'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(5).ColumnName = "Producto/Servicio" Then
' Alert("El nombre de la quinta columna debe ser 'Producto/Servicio'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(6).ColumnName = "UM" Then
' Alert("El nombre de la sexta columna debe ser 'U.M'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(7).ColumnName = "Precio Unitario" Then
' Alert("El nombre de la septima columna debe ser 'Precio Unitario'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' dt.TableName = "Datos"
' If Not ErrorArchivo Then
' NumRow = 1
' Dim RowNoEncontrados As String = String.Empty
' Dim NumAgregados As Integer = 0
' For Each Row As DataRow In dt.Rows
' Dim Cantidad As Integer = Row("Cantidad").ToString.ToEntero
' Dim Codigo As String = Row("Código").ToString.Trim.ToUpper
' Dim CodigoBarras As String = Row("Código Barras").ToString.Trim.ToUpper
' Dim UM As String = Row("UM").ToString
' Dim ClaveInterna As String = Row("Clave Interna Cliente").ToString.Trim.ToUpper
' Dim OCInterna As String = Row("OC Interna").ToString.Trim.ToUpper
' Dim ProductoServicio As String = Row("Producto/Servicio").ToString.Trim.ToUpper
' Dim PrecioUnitario As Double = Row("Precio Unitario").ToString.ToDouble
' Dim CvePS As Integer = 0
' Dim CveUM As Integer = 0 ' GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveUnidadMedida", $"CvePS = '{CvePS}'").ToString.ToEntero
' Dim CodigoPS As Integer = 0
' Dim Total As Double = (Cantidad * PrecioUnitario)
' NumRow = NumRow + 1
' If Codigo.Length > 0 Then
' Dim StrArray() As String = GetPS("Codigo", Codigo).Split("|"c)
' If StrArray.Length > 0 Then
' If CBool(StrArray(0)) = True Then
' CvePS = StrArray(1).ToEntero
' Else
' RowNoEncontrados &= StrArray(1) & "<\BR>"
' End If
' End If
' ElseIf CodigoBarras.Length > 0 Then
' Dim StrArray() As String = GetPS("CodigoBarras", CodigoBarras).Split("|"c)
' If StrArray.Length > 0 Then
' If CBool(StrArray(0)) = True Then
' CvePS = StrArray(1).ToEntero
' Else
' RowNoEncontrados &= StrArray(1) & "<\BR>"
' End If
' End If
' ElseIf ProductoServicio.Length > 0 Then
' Dim StrArray() As String = GetPS("PS", ProductoServicio).Split("|"c)
' If StrArray.Length > 0 Then
' If CBool(StrArray(0)) = True Then
' CvePS = StrArray(1).ToEntero
' Else
' RowNoEncontrados &= StrArray(1) & "<\BR>"
' End If
' End If
' Else
' RowNoEncontrados &= "<\BR>&nbsp;&nbsp;&nbsp;&nbsp;- En la fila " & NumRow & " no se especificó código, código de barras ó descripción."
' End If
' CveUM = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveUnidadMedida", "").ToString.ToEntero
' If TmpDT IsNot Nothing AndAlso CvePS > 0 Then
' Dim dr As DataRow = TmpDT.NewRow
' dr("Cantidad") = Cantidad
' dr("CantidadContratada") = Cantidad
' dr("CveUM") = CveUM
' dr("UM") = UM
' dr("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion", "").ToString.ToEntero
' dr("Clasificacion") = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = '{dr("CveClasificacion")}'").ToString
' dr("CvePS") = CvePS
' dr("PS") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("PS", "").ToString
' dr("CodigoPS") = dr("PS")
' dr("PU") = PrecioUnitario
' dr("Total") = Cantidad * PrecioUnitario
' dr("CveTipoPresupuesto") = 2
' dr("NoIdentificacion") = ClaveInterna
' dr("OCInterna") = OCInterna
' dr("LimitarCantidad") = 0
' If CvePS > 0 Then
' Dim ObjContratos As New ClsContratos
' If ObjContratos.AddContratosDetalle(CveContrato, dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDouble, dr("PU").ToString.ToDouble, UsuarioActual.CveUsuario, dr("CveTipoPresupuesto").ToString.ToEntero, dr("NoIdentificacion").ToString, dr("LimitarCantidad").ToString.ToEntero = 1, dr("OCInterna").ToString) Then
' Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", dr("Cantidad"), dr("UM"), dr("PS"), dr("PU"))
' guardarBitacora(msj)
' dr("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle")
' TmpDT.Rows.Add(dr)
' Dim TotalRow = dr("Total").ToString.ToDouble
' CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
' LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero
' LblImporte.Text = LbTotalGeneral.Text
' Else
' Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError)
' End If
' ObjContratos.Dispose()
' End If
' End If
' Next
' 'Cargo el GridView
' Gv.DataSource = TmpDT
' Gv.DataBind()
' UpGV.Update()
' If RowNoEncontrados.Length > 0 Then
' Alert("Los siguientes Productos o Servicios no se encontraron en la Base de Datos.<\BR>" & RowNoEncontrados, TipoMensaje.MsgAdvertencia)
' Else
' Alert("Se Cargaron " & NumRow & " Productos o Servicios correctamente.")
' End If
' End If
' End If
'End Sub
End Function
Private Function GetPS(Opt As String, Valor As String) As String
Dim StrReturn As String = String.Empty
Dim CvePS As Integer = 0
@@ -3260,34 +3136,7 @@ Partial Class Contratos_ContratoObra
#End Region
#Region " GPS "
'Private Sub CargaCuentasEquipos()
' Dim GPS As New ClsGPS
' If GPS.DispositivosGet(-1, -1, DdlCliente.SelectedValue.ToEntero) Then
' DdlCuentaEquipo.DataSource = GPS.DtResultados
' Else
' DdlCuentaEquipo.DataSource = Nothing
' End If
' GPS.Dispose()
' DdlCuentaEquipo.DataBind()
' UpGral.Update()
'End Sub
'Private Sub CargaPeriodos()
' Dim ObjContratos As New ClsContratos
' If ObjContratos.GetPeriodos(-1, UsuarioActual.CveEmpresa) Then
' DtPeriodo = ObjContratos.DtResultados
' Else
' DtPeriodo = Nothing
' End If
' DdlPeriodo.DataSource = DtPeriodo
' ObjContratos.Dispose()
' DdlPeriodo.DataBind()
' UpGral.Update()
'End Sub
#End Region
#Region " IMPRESION "
@@ -3322,57 +3171,7 @@ Partial Class Contratos_ContratoObra
ImprimirPDF("Empresas/Grales/Formatos/RepContratoAvanceDocumento.rdlc", dt, params, $"{Nombre}-AvanceDocumento", Formato:=Formato)
End Sub
'Private Sub LBImprimirInformacionG_Click(sender As Object, e As EventArgs) Handles LBImprimirInformacionG.Click
' Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
' Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
' Dim dt As DataTable = DtAvanceDocumento
' Dim params As New List(Of ReportParameter)
' params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
' params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
' params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
' params.Add(New ReportParameter("Contrato", Titulo))
' 'DATOS DEL CONTRATO
' params.Add(New ReportParameter("NoContrato", TxtNumeroContrato.Text.Trim))
' params.Add(New ReportParameter("Descripcion", TxtDescripcionContrato.Text.Trim))
' params.Add(New ReportParameter("Proveedor", If(TrProveedor.Visible = True, DdlContratista.SelectedItem.Text.Trim, "-")))
' params.Add(New ReportParameter("Ubicacion", TxtUbicacion.Text.Trim))
' params.Add(New ReportParameter("Responsable", TxtResponsable.Text.Trim))
' params.Add(New ReportParameter("Almacen", "-"))
' params.Add(New ReportParameter("Porcentaje", "-"))
' 'CENTRO DE COSTOS
' params.Add(New ReportParameter("Proyecto", If(DVddlproyecto.Visible = True, DdlProyecto.SelectedItem.Text.Trim, "-")))
' params.Add(New ReportParameter("SubProyecto", CveSubProyecto.ToString))
' params.Add(New ReportParameter("Addendum", ""))
' 'INFORMACION
' params.Add(New ReportParameter("Cliente", If(TrCliente.Visible = True, DdlCliente.SelectedItem.Text.Trim, "-")))
' params.Add(New ReportParameter("Sucursal", If(TrClienteSucursal.Visible = True, DdlSucursalCliente.SelectedItem.Text.Trim, "-")))
' params.Add(New ReportParameter("FechaInicial", TxtFechaInicial.Text.Trim))
' params.Add(New ReportParameter("FechaFinal", TxtFechaFinal.Text.Trim))
' params.Add(New ReportParameter("Moneda", DdlMoneda.SelectedItem.Text.Trim))
' params.Add(New ReportParameter("TipoCambio", If(tipoCambio.Visible = True, TxtTipoCambio.Text.Trim, "-")))
' params.Add(New ReportParameter("IVA", TxtPorIVA.Text.Trim))
' params.Add(New ReportParameter("Anticipo", TxtPorAnticipo.Text.Trim))
' params.Add(New ReportParameter("Amortizacion", TxtPorAmortizacionAnticipo.Text.Trim))
' params.Add(New ReportParameter("Garantia", TxtPorGarantia.Text.Trim))
' params.Add(New ReportParameter("Minimo", "-"))
' params.Add(New ReportParameter("Maximo", "-"))
' params.Add(New ReportParameter("Total", If(DvTotal.Visible = True, TxtTotal.Text.Trim, "-")))
' 'Estatus
' params.Add(New ReportParameter("Estatus", DdlEstatus.SelectedItem.Text.Trim))
' params.Add(New ReportParameter("TipoGarantia", ""))
' params.Add(New ReportParameter("EstatusFianza", ""))
' params.Add(New ReportParameter("Folio", "0"))
' params.Add(New ReportParameter("FechaVencimiento", ""))
' If Imagen.Exists Then
' params.Add(New ReportParameter("LogoPath", logouri))
' Else
' params.Add(New ReportParameter("LogoPath", ""))
' End If
' ImprimirPDF("Empresas/Grales/Formatos/Contrato.rdlc", dt, params, $"Contrato-{Titulo}", Formato:="PDF")
'End Sub
#End Region
@@ -3384,10 +3183,10 @@ Partial Class Contratos_ContratoObra
Private Sub GenerarPDFGastos(Optional Formato As String = "PDF")
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim UtilidadGastos As String = IIf(LblUtilidad.Text <> "", LblUtilidad.Text, "-").ToString
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
' Dim UtilidadGastos As String = IIf(LblUtilidad.Text <> "", LblUtilidad.Text, "-").ToString
Dim dt As DataTable = DtGastos
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
@@ -3400,9 +3199,9 @@ Partial Class Contratos_ContratoObra
params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim))
params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim))
params.Add(New ReportParameter("TipoContrato", TipoDocumento))
params.Add(New ReportParameter("TotalContrato", LblImporte.Text))
params.Add(New ReportParameter("Utilidad", UtilidadGastos))
params.Add(New ReportParameter("TotalContrato", LblImporte.Text))
' params.Add(New ReportParameter("Utilidad", UtilidadGastos))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
@@ -3898,59 +3697,12 @@ Partial Class Contratos_ContratoObra
LnkDescargar.Visible = False
'BtnGuardarFianza.Text = "Guardar"
UPModalFianza.Update()
Me.RegistraScript("$('#DvModalFianza').modal();")
'GvFianzas.DataSource = DtTmpFianzas
'GvFianzas.DataBind()
'UpGvFianzas.Update()
End Sub
'Protected Sub BtnGuardarFianza_Click(sender As Object, e As EventArgs)
' Dim dr As DataRow = DtTmpFianzas.NewRow()
' Dim Folio As String = txtFolioFianza.Text
' Dim CveEstatus As Integer = DdlFianza.SelectedValue.ToEntero()
' Dim Estatus As String = DdlFianza.SelectedItem.Text
' Dim TieneError As Boolean = False
' Dim Adjunto As String = ""
' If TxtModalAdjuntoArchivo.getfiles.Archivos.Count > 0 Then
' Dim ArchivoAdjunto As Archivo = TxtModalAdjuntoArchivo.getfiles.Archivos(0)
' Adjunto = ArchivoAdjunto.filenameO
' End If
' If EsEditarFianza Then
' DtTmpFianzas.Rows.RemoveAt(IndexFianzaEditar)
' dr("CveContratoFianza") = GvFianzas.Rows(IndexFianzaEditar).DataKey("CveContratoFianza").ToString
' dr("Folio") = Folio
' dr("EstatusFianza") = Estatus
' dr("CveEstatusFianza") = CveEstatus
' dr("FechaVencimiento") = txtFechaVenFianza.Text
' dr("Adjunto") = If(Adjunto = "", GvFianzas.Rows(IndexFianzaEditar).DataKey("Adjunto").ToString, Adjunto)
' Else
' dr("CveContratoFianza") = "-1"
' dr("Folio") = Folio
' dr("EstatusFianza") = Estatus
' dr("CveEstatusFianza") = CveEstatus
' dr("FechaVencimiento") = txtFechaVenFianza.Text
' dr("Adjunto") = Adjunto
' End If
' DtTmpFianzas.Rows.Add(dr)
' GuardaAdjunto($"{Folio} - {txtFechaVenFianza.Text}")
' GvFianzas.DataSource = DtTmpFianzas
' GvFianzas.DataBind()
' UpGvFianzas.Update()
' LimpiarCamposModalFianzas()
' Me.RegistraScript("$('#DvModalFianza').modal('hide');")
'End Sub
Me.RegistraScript("$('#DvModalFianza').modal();")
End Sub
Private Sub GuardaAdjunto(FolioFechaVencimiento As String)
If Not TxtModalAdjuntoArchivo.getfiles.Archivos.Count > 0 Then
Exit Sub
@@ -3972,39 +3724,13 @@ Partial Class Contratos_ContratoObra
Catch ex As Exception
Alert("Ocurrió un error al guardar el archivo Adjunto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End Try
End Sub
'Private Sub DescargarAdjunto()
' Dim filename As String = GvFianzas.Rows(IndexFianzaEditar).DataKey("Adjunto").ToString
' If Not String.IsNullOrEmpty(filename) Then
' Dim rutaAplicacion As String = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath)
' Dim Path As String = String.Format("{0}\\{1}\\{2}\\{3}", UsuarioActual.Empresa.Ruta, "Contratos", "Fianzas", $"{GvFianzas.Rows(IndexFianzaEditar).DataKey("Folio").ToString} - {GvFianzas.Rows(IndexFianzaEditar).DataKey("FechaVencimiento").ToDate.ToShortDateString}")
' Dim ArchivoDestino As String = String.Format("{0}\\{1}", Path, GvFianzas.Rows(IndexFianzaEditar).DataKey("Adjunto").ToString)
' Dim toDownload As System.IO.FileInfo = New System.IO.FileInfo(ArchivoDestino)
' If toDownload.Exists Then
' Response.ClearContent()
' Response.ClearHeaders()
' Response.AddHeader("Content-Disposition", "attachment; filename=" + filename)
' Response.ContentType = "application/octet-stream"
' Response.WriteFile(ArchivoDestino)
' Response.Flush()
' Response.Close()
' Response.End()
' HttpContext.Current.ApplicationInstance.CompleteRequest()
' End If
' End If
'End Sub
End Sub
Protected Sub LnkDescargar_Click(sender As Object, e As EventArgs)
'DescargarAdjunto()
End Sub
'Protected Sub GvFianzas_RowDeleting(sender As Object, e As GridViewDeleteEventArgs)
' DtTmpFianzas.Rows.RemoveAt(e.RowIndex)
' GvFianzas.DataSource = DtTmpFianzas
' GvFianzas.DataBind()
' UpGvFianzas.Update()
'End Sub
End Sub
Protected Sub imgEFianzaGv_Click(sender As Object, e As EventArgs)
LimpiarCamposModalFianzas()
EsEditarFianza = True
@@ -4018,13 +3744,11 @@ Partial Class Contratos_ContratoObra
txtFechaVenFianza.Text = GvRow.DataKey("FechaVencimiento").ToString()
LnkDescargar.Visible = GvRow.DataKey("Adjunto").ToString <> ""
txth4Fianza.InnerText = "Editar Fianza"
'BtnGuardarFianza.Text = "Actualizar"
txth4Fianza.InnerText = "Editar Fianza"
UPModalFianza.Update()
Me.RegistraScript("$('#DvModalFianza').modal();")
'GvFianzas.DataSource = DtTmpFianzas
'GvFianzas.DataBind()
'UpGvFianzas.Update()
Me.RegistraScript("$('#DvModalFianza').modal();")
End Sub
Protected Sub CreaDtTmpFianzas()
DtTmpFianzas = New DataTable()
@@ -4037,11 +3761,8 @@ Partial Class Contratos_ContratoObra
DtTmpFianzas.Columns.Add("FechaVencimiento", GetType(String))
DtTmpFianzas.Columns.Add("Adjunto", GetType(String))
DtTmpFianzasInicial = DtTmpFianzas.Copy
'GvFianzas.DataSource = DtTmpFianzas
'GvFianzas.DataBind()
'UpGvFianzas.Update()
DtTmpFianzasInicial = DtTmpFianzas.Copy
End Sub
Protected Function GuardaFianzas(ObjContrato As ClsContratos) As Boolean
@@ -4853,9 +4574,65 @@ Partial Class Contratos_ContratoObra
End Sub
Private Sub Indicadores()
Dim Con As New ClsContratos
Dim DTDatos As New DataTable
If Con.GetContratosObraRepAvances(MinFecha, MaxFecha, DdlCliente.SelectedValue.ToEntero, CveContrato, UsuarioActual.CveEmpresa) Then
DTDatos = Con.DtResultados
End If
Con.Dispose()
If DTDatos.Rows.Count > 0 Then
Dim CantidadAvance As Decimal = DTDatos.Rows(0)("Cantidad").ToString.ToDecimal
Dim ImporteAvance As Decimal = DTDatos.Rows(0)("AvanceImporte").ToString.ToDecimal
Dim TotalAvancePorcentaje As Decimal = (ImporteAvance * 100 / TotalAvanceVentas).RoundSQL(2)
Dim CantidadInterno As Decimal = DTDatos.Rows(0)("CantidadInterno").ToString.ToDecimal
Dim ImporteInterno As Decimal = DTDatos.Rows(0)("ImporteInterno").ToString.ToDecimal
Dim TotalFaltantePorcentaje As Decimal = (ImporteInterno * 100 / TotalAvanceInterno).RoundSQL(2)
LtlAvanceImporte.Text = $"$ { ImporteAvance.ToString("###,###,###.00") }"
LtlAvanceImporteProcentaje1.Text = $"{TotalAvancePorcentaje.ToString("###.00")} %"
LtlAvanceImporteProcentaje2.Text = $"{TotalAvancePorcentaje.ToString("###.00")}%"
SPAvance1.Attributes.Add("style", $"width:{TotalAvancePorcentaje.ToString.ToEntero}%")
LtlAvanceInternoImporte.Text = $"$ {DTDatos.Rows(0)("ImporteInterno").ToString.ToDecimal.ToString("###,###,###.00")}"
LtlAvanceInternoImportePorcentaje1.Text = $"{TotalFaltantePorcentaje.ToString("###.00")} %"
LtlAvanceInternoImportePorcentaje2.Text = $"{TotalFaltantePorcentaje.ToString("###.00")}%"
SPFaltante.Attributes.Add("style", $"width:{TotalFaltantePorcentaje.ToString.ToEntero}%")
End If
'Dim TotalContratos As Decimal = DTDatos.SUM("Importe")
'Dim TotalAvance As Decimal = DTDatos.SUM("AvanceImporte")
'Dim TotalFaltante As Decimal = TotalContratos - TotalAvance
'Dim TotalAvancePorcentaje As Decimal = ((TotalAvance * 100) / TotalContratos).RoundAD(2)
'Dim TotalFaltantePorcentaje As Decimal = (100 - TotalAvancePorcentaje).RoundAD(2)
' LtlGrafNumeroContratos.Text = NumeroContratos.ToString
'LtlGrafTotal.Text = TotalContratos.ToString("###,###,###.00")
DVGraficas.Visible = True
UpGrafica.Update()
End Sub
End Class

View File

@@ -0,0 +1,324 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="ContratoObraAutorizacion.aspx.vb" Inherits="Contratos_ContratoObraAutorizacion" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" Runat="Server">
<style>
table.GVEstimacion{
width:100%;
}
.txtimporte{
background: transparent;
border: none;
}
.txtcant,.txtimporte,
table.GVEstimacion > tbody > tr > td,
table.GVEstimacion > tbody > tr > th{
text-align:right;
}
table.GVEstimacion > tbody > tr > th,
table.GVEstimacion > tbody > tr > td{
width:100px;
}
table.GVEstimacion > tbody > tr > th:nth-child(1),
table.GVEstimacion > tbody > tr > td:nth-child(1){
width:300px;
text-align:left;
}
.ddls {
max-width:220px;
}
.linkfile input{
display:none
}
</style>
<link href="/Metronic/assets/global/plugins/dropzone/css/dropzone.css" rel="stylesheet"/>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" Runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" Runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" Runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<ajax:TabContainer ID="Tab" runat="server" Width="100%" CssClass="tabBodyOverride" ActiveTabIndex="0">
<ajax:TabPanel ID="TabEstimación" runat="server" HeaderText="Estimación">
<ContentTemplate>
<asp:UpdatePanel runat="server" ID="UpEstimaciones" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultarEstimaciones" runat="server" Text="Consultar" class="btn btn-default" />
</div>
<div class="titlefiltros caption" style="position: relative;">
<asp:UpdatePanel class="row" ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<label class="col-md-1 truncate">Contrato:</label>
<div class="col-md-6 col-lg-4">
<div class="ddls">
<asp:DropDownList ID="DDlContratosEstimaciones" runat="server" DataTextField="ContratoCompleto" DataValueField="CveContrato" Class=" form-control input-inline select2me" Width="100%">
</asp:DropDownList>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvEstimaciones" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron partidas para levantar avance"
DataKeyNames="CveContratoAvance,CveFamilias,CveSubFamilias,CveContratoDetalle,PS,Cantidad,Importe,Cantidad_Ultima,Importe_Ultima,PU,CantidadMax,Avance,Fecha"
CssClass="table GVEstimacion table-advance table-hover mysmallbtn" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="" ItemStyle-Width="60%">
<ItemTemplate>
<asp:LinkButton ID="Producto" runat="server" CssClass="Texto" Text='<%# Eval("PS")%>' Visible="false" ></asp:LinkButton>
<asp:Label ID="LinkButton1" runat="server" CssClass="Texto" Text='<%# Eval("PS")%>' ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<span><%# Eval("Cantidad", "{0:N2}")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Importe">
<ItemTemplate>
<span><%# Eval("Importe", "{0:N2}")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<span><%# Eval("Cantidad_Ultima", "{0:N2}")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Importe">
<ItemTemplate>
<span><%# Eval("Importe_Ultima", "{0:N2}")%></span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Acciones">
<ItemTemplate>
<table style="width:120px!important">
<tr>
<td>
<asp:LinkButton ID="LnkAnexo" runat="server" OnClick="GetAnexos" AlternateText="Agregar Anexo" CssClass="btn btn-circle btn-sm btn-success anexo" Text="<i class='fa fa-folder'></i>" Visible="false" />
</td>
<td>
<asp:LinkButton ID="LnkEliminarAvance" runat="server" OnClick="LnkEliminarAvance_Click" AlternateText="Agregar Anexo" Visible="false"
CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Confimra la elimiancion del avance?" data-btn-ok-label="si"
/>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="text-center">
<asp:Button id="BtnAutoriza" CssClass="btn btn-primary" runat="server" Text="Autorizar" Visible="false"/>
<asp:Button id="BtnGuardarEstimacion" CssClass="btn btn-primary" runat="server" Text="Generar Estimacion" Visible="false"/>
<asp:Button id="BtnDescargarGenerado" CssClass="btn btn-primary" runat="server" Text="Descarga Generador" Visible="false"/>
</div>
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="BtnDescargarGenerado" />
</Triggers>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
</ajax:TabContainer>
<div class="modal fade " id="dropmodal">
<div class="modal-dialog">
<div class="modal-content ">
<div class="portlet light smmallpadding bordered ">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Cargar Evidencia</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
<a href="javascript:$('#dropmodal').modal('hide');" style="color:gray;" ><i class="fa fa-remove"></i></a>
</div>
</div>
<div class="portlet-body ">
<div id="my-dropzone" class="">
</div>
</div>
<div style="text-align: center!important">
<br />
<button id="btnCerrarModal" runat="server" type="button" class="btn default" data-dismiss="modal">Cerrar</button>
<br />
</div>
</div>
</div>
</div>
</div>
<div id="ModalAnexos" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpModalAnexos" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label runat="server" ID="LblTituloModalAnexo"></asp:Label></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12" style="text-align:center!important;text-align:center!important" >
<asp:GridView ID="GvAnexos" AutoGenerateColumns="false" runat="server" ShowHeaderWhenEmpty="true" EmptyDataText="No se encontraron archivos" Width="250px"
DataKeyNames="Archivo" CssClass="table GVEstimacion table-advance table-hover" GridLines ="None">
<Columns>
<asp:TemplateField HeaderText="Anexos">
<ItemTemplate>
<asp:LinkButton ID="LnkArchivo" runat="server" OnClick="LnkArchivo_Click"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<script src="/Metronic/assets/global/plugins/dropzone/dropzone.js"></script>
<%--<script src="../Scripts/dropzone/dropzone.min.js"></script>--%>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" Runat="Server">
<script>
jQuery(document).ready(function () {
$(".linkfile").click(function () {
showmodalFile($(this).find('input').attr('id'));
});
Sys.Application.add_load(function (s, e) {
$(".linkfile").click(function () {
showmodalFile($(this).find('input').attr('id'));
});
});
});
function showmodalFile(obj) {
$('#' + obj).data("append", 'my-dropzone');<% Dim url = Request.Url.AbsoluteUri.Replace(Request.Url.AbsolutePath, "")%>
$('#' + obj).data("urlup", '<%= url%>/Ashx/SIGWeb.ashx?Metodo=Uploadfile');
$('#' + obj).data("urldown", '<%= url%>/Ashx/SIGWeb.ashx');
$('#' + obj).data("urlget", '<%= url %>/Temp/');
ADDropzone(obj);
$('#dropmodal').modal();
}
function ValidateCant(variable) {
var txt = $(variable);
var max = txt.data('cantidad');
var value = parseInt(txt.val());
if (value > max) {
txt.val(max);
}
if (value < 0) {
txt.val(0);
}
var importe = $('.txtimporte[data-cve="' + txt.data('cve') + '"]');
importe.val(parseFloat(txt.val()) * parseFloat(txt.data('pu')));
//FormatoMoneda2(importe);
//if (parseInt(txt.val()) > 0) {
// $($(txt.parent()).parent()).find(".linkfile").removeClass("hidden");
//} else {
// var ocultar = $($(txt.parent()).parent()).find(".linkfile");
// if (!ocultar.hasClass("hidden")) {
// ocultar.addClass("hidden");
// }
//}
}
//);
</script>
</asp:Content>

View File

@@ -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

View File

@@ -43,7 +43,7 @@
<div class="col-md-12">
<asp:GridView ID="GVDatos" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron contratos con los Filtros seleccionados"
DataKeyNames="CveContrato,CveEstimacion,Fecha,PS,CveContratoDetalle" ShowHeader="True"
DataKeyNames="CveContrato,CveContratoAvance,CveEstimacion,Fecha,PS,CveContratoDetalle" ShowHeader="True"
CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Producto">

View File

@@ -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